Langchain (Python)
Portkey 为任何 Langchain 应用添加核心生产能力。
LangChain 是一个用于开发基于语言模型的应用程序的框架。它使得应用程序能够:
具有上下文感知:将语言模型连接到上下文源(提示说明、少量示例、用于基础响应的内容等)
推理:依赖语言模型进行推理(根据提供的上下文来回答、采取什么行动等)
您可以在 这里 找到更多信息。
在使用 Langchain 时,Portkey 可以通过为您的 Langchain 应用添加快速的 AI 网关、可观察性、提示管理等功能,帮助将其投入生产。
快速开始集成
安装 Portkey 和 Langchain Python SDK 以开始使用。
pip install -U langchain-core portkey_ai langchain-openai我们安装了 langchain-core 以跳过可选依赖。如果您更喜欢,也可以安装 langchain。
现在我们可以初始化模型并更新模型以使用 Portkey 的 AI 网关。
from langchain_openai import ChatOpenAI
from portkey_ai import createHeaders, PORTKEY_GATEWAY_URL
PORTKEY_API_KEY = "..."
PROVIDER_API_KEY = "..." # 添加所使用的 AI 提供商的 API 密钥
portkey_headers = createHeaders(api_key=PORTKEY_API_KEY,provider="openai")
llm = ChatOpenAI(api_key=PROVIDER_API_KEY, base_url=PORTKEY_GATEWAY_URL, default_headers=portkey_headers)
llm.invoke("What is the meaning of life, universe and everything?")响应
调用及相应的提示也将显示在 Portkey 日志标签中。

使用虚拟密钥进行多模型操作
Portkey 支持 虚拟密钥,这是一种在安全的保险库中存储和管理 API 密钥的简单方法。让我们尝试使用虚拟密钥进行 LLM 调用。
1. 在您的 Portkey 账户中创建虚拟密钥并复制 ID
让我们尝试为 Mistral 创建一个新的虚拟密钥,如下所示

2. 在 Portkey 头部中使用虚拟密钥
virtual_key 参数设置所使用的 AI 提供者的身份验证和提供者。在我们的案例中,我们使用的是 Mistral 虚拟密钥。
Portkey AI 网关将对 Mistral 的 API 请求进行身份验证,并以 OpenAI 格式返回响应供您使用。
AI 网关扩展了 Langchain 的 ChatOpenAI 类,使其成为调用任何提供者和任何模型的单一接口。
嵌入
通过 Portkey 在 Langchain 中的嵌入与使用 OpenAIEmbeddings 类的聊天模型工作方式相同。让我们尝试使用 OpenAI 的嵌入模型创建一个嵌入。
链接与提示
链 使各种 Langchain 概念能够集成并同时执行,而 Langchain 支持 提示模板 来构建语言模型的输入。让我们看看这如何与 Portkey 一起工作。
我们将能够在 Portkey 日志仪表板中查看用于调用 OpenAI 的确切提示。
使用高级路由
Portkey AI Gateway 通过配置优先的方法为 Langchain 带来了负载均衡、回退、实验和金丝雀测试等功能。
让我们举一个 例子,假设我们想要将流量在 gpt-4 和 claude-opus 之间以 50:50 的比例进行分配,以测试这两个大型模型。网关的配置将如下所示:
然后我们可以在从 langchain 发出的请求中使用这个配置。
当 LLM 被调用时,Portkey 将根据定义的权重比例将请求分配给 gpt-4 和 claude-3-opus-20240229。
您可以在 这里 找到更多配置示例。
代理与追踪
Langchain 的一个强大功能是创建代理。代理工作流的挑战在于提示通常被抽象化,很难了解代理在做什么。这也使得调试变得更加困难。
Portkey 的 Langchain 集成使您能够全面了解代理的运行情况。让我们以一个 流行的代理工作流 为例。
运行此代码将在 Portkey 中产生以下日志。

这非常强大,因为您可以控制和了解代理流,从而识别问题并根据需要进行更新。
Last updated