ChatPremAI 与不同的聊天模型进行交互。
安装与配置
首先安装langchain 和 premai-sdk,可以输入以下命令进行安装:
在 LangChain 中配置 PremAI 客户端
导入所需模块后,让我们配置客户端。目前假设我们的project_id 为 8,请确保使用您自己的项目 ID,否则会报错。
使用 langchain 与 prem 时,无需传入任何模型名称或为聊天客户端设置参数。默认情况下,它将使用在 LaunchPad 中配置的模型名称和参数。
注意:如果在设置客户端时修改了model或其他参数(如temperature或max_tokens),将会覆盖在 LaunchPad 中使用的现有默认配置。
聊天补全
ChatPremAI 支持两种方法:invoke(与 generate 相同)和 stream。
前者返回静态结果,后者逐 token 流式返回。以下是生成聊天补全的方式:
Always sound like a pirate。您也可以根据需要覆盖默认的系统提示,方法如下:
如果在此处传入系统提示,它将覆盖在平台上部署应用程序时固定的系统提示。
通过 Prem 仓库支持原生 RAG
Prem 仓库允许用户上传文档(.txt、.pdf 等)并将这些仓库连接到 LLM。您可以将 Prem 仓库视为原生 RAG,每个仓库可视为一个向量数据库。您可以连接多个仓库。更多关于仓库的信息请参阅这里。 langchain premai 也支持仓库功能,使用方法如下:请注意:类似于现在,将仓库与聊天对象连接,以调用基于 RAG 的生成。model_name,当您调用repositories参数时,您将覆盖在 LaunchPad 中连接的仓库。
理想情况下,您无需在此处连接仓库 ID 即可获得检索增强生成。如果您已在 Prem 平台上连接了仓库,仍然可以获得相同的结果。
Prem 模板
编写提示模板可能非常繁琐。提示模板通常很长、难以管理,并且需要不断调整以提升效果,同时还要在整个应用程序中保持一致。 借助 Prem,编写和管理提示可以变得非常简单。LaunchPad 中的 Templates 选项卡可帮助您编写所需数量的提示,并在 SDK 中使用这些提示运行您的应用程序。更多关于提示模板的信息请参阅这里。 要在 LangChain 中原生使用 Prem 模板,您需要在HumanMessage 中传入一个 ID。该 ID 应该是提示模板中变量的名称,HumanMessage 中的 content 应该是该变量的值。
例如,假设您的提示模板如下:
human_messages 传递给 ChatPremAI 客户端。请注意:不要忘记传入额外的 template_id 以使用 Prem 模板进行生成。如果您不了解 template_id,可以在我们的文档中了解更多。示例如下:
流式输出
本节介绍如何使用 LangChain 和 PremAI 进行 token 流式输出:工具/函数调用
LangChain PremAI 支持工具/函数调用。工具/函数调用允许模型根据给定的提示生成符合用户自定义 schema 的输出。 注意: 当前版本的 LangChain ChatPremAI 不支持带流式输出的函数/工具调用,相关支持即将推出。向模型传入工具
为了传入工具并让 LLM 选择需要调用的工具,我们需要传入工具 schema。工具 schema 是函数定义,包含关于函数功能、函数各参数含义等的详细说明。以下是一些简单的算术函数及其 schema。 注意: 在定义函数/工具 schema 时,务必添加关于函数参数的说明,否则会报错。将工具 schema 绑定到 LLM
现在使用bind_tools 方法将上述函数转换为”工具”并绑定到模型,这意味着每次调用模型时都会传入这些工具信息。
- 在第一次调用中,我们收集了 LLM 决定使用的所有工具,以便将结果作为额外上下文提供,从而给出更准确、更少幻觉的结果。
- 在第二次调用中,我们将解析 LLM 选定的工具集并运行它们(在本例中即我们定义的函数,使用 LLM 提取的参数),然后将结果传回 LLM。
定义工具 schema:Pydantic 类
上面我们展示了如何使用tool 装饰器定义 schema,但同样可以使用 Pydantic 来定义。当工具输入更复杂时,Pydantic 尤为有用:
将这些文档连接到 Claude、VSCode 等工具,通过 MCP 获取实时解答。

