概览
本指南介绍如何使用 LangChain 的ChatRunPod 类与托管在 RunPod Serverless 上的聊天模型进行交互。
设置
-
安装软件包
- 部署聊天模型端点:按照 RunPod 提供商指南 中的设置步骤,在 RunPod Serverless 上部署一个兼容的聊天模型端点,并获取其端点 ID。
-
设置环境变量:确保设置了
RUNPOD_API_KEY和RUNPOD_ENDPOINT_ID(或特定的RUNPOD_CHAT_ENDPOINT_ID)。
实例化
初始化ChatRunPod 类。您可以通过 model_kwargs 传递模型特定参数,并配置轮询行为。
调用
使用标准的 LangChain.invoke() 和 .ainvoke() 方法调用模型。还支持通过 .stream() 和 .astream() 进行流式传输(通过轮询 RunPod /stream 端点模拟)。
链接
聊天模型与 LangChain 表达式语言 (LCEL) 链无缝集成。模型功能 (取决于端点)
高级功能的可用性严重依赖于您的 RunPod 端点处理程序的具体实现。ChatRunPod 集成提供了基本框架,但处理程序必须支持底层功能。
| 功能 | 集成支持 | 取决于端点? | 备注 |
|---|---|---|---|
| 工具调用 | ❌ | ✅ | 要求处理程序处理工具定义并返回工具调用(例如,OpenAI 格式)。集成需要解析逻辑。 |
| 结构化输出 | ❌ | ✅ | 要求处理程序支持强制结构化输出(JSON 模式、函数调用)。集成需要解析逻辑。 |
| JSON 模式 | ❌ | ✅ | 要求处理程序接受 json_mode 参数(或类似参数)并保证 JSON 输出。 |
| 图像输入 | ❌ | ✅ | 要求多模态处理程序接受图像数据(例如,base64)。集成不支持多模态消息。 |
| 音频输入 | ❌ | ✅ | 要求处理程序接受音频数据。集成不支持音频消息。 |
| 视频输入 | ❌ | ✅ | 要求处理程序接受视频数据。集成不支持视频消息。 |
| 令牌级流式传输 | ✅ (模拟) | ✅ | 轮询 /stream。要求处理程序在状态响应中用令牌块填充 stream 列表(例如,[{"output": "token"}])。不内置真正的低延迟流式传输。 |
| 原生异步 | ✅ | ✅ | 核心 ainvoke/astream 已实现。依赖于端点处理程序的性能。 |
| Token 用量 | ❌ | ✅ | 要求处理程序在最终响应中返回 prompt_tokens、completion_tokens。集成目前不解析此项。 |
| Logprobs | ❌ | ✅ | 要求处理程序返回对数概率。集成目前不解析此项。 |
API 参考
有关ChatRunPod 类、参数和方法的详细文档,请参阅源代码或生成的 API 参考(如果可用)。 源代码链接:https://github.com/runpod/langchain-runpod/blob/main/langchain_runpod/chat_models.py以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。