1. 技术背景介绍
随着生成式 AI 的快速发展,如何对接多个模型、实现高效调用并确保应用的稳定性和成本控制成为重要课题。Portkey 是一款专为生成式 AI 应用设计的控制平台,为开发者提供统一的 API 网关和强大的可观测性工具。特别是对于广泛使用的 LangChain 框架,Portkey 提供了生产级解决方案,包括:
- 支持 150+ 模型的统一 API 调用。
- 实时监控 42+ 指标和日志。
- 语义级缓存以降低延迟和成本。
- 自动重试与回退机制。
- 请求的自定义标签跟踪和分析。
接下来,我们将讲解如何通过 Portkey 来提升 LangChain 的生产能力,并提供完整可运行的代码示例。
2. 核心原理解析
Portkey 的核心特点在于其 AI 网关支持多模型、多提供商的无缝桥接,帮助开发者通过统一接口调用不同的 AI 服务。同时,它为请求添加了强大的可观测性和优化能力,如自动重试、负载均衡以及语义缓存,确保应用更加可靠且高效。
Portkey 的 LangChain 集成基于其与 OpenAI API 兼容的特性,因此只需简单配置即可完成对接。它还支持基于「虚拟密钥 (Virtual Key)」的模型调用,提供一种高效、安全的方式来管理 API 密钥。
3. 代码实现演示
3.1 安装与初始化
首先,安装 Portkey SDK:
pip install -U portkey_ai
获取 Portkey API Key 后,初始化 LangChain 的 ChatOpenAI
模型:
from langchain_openai import ChatOpenAI
from portkey_ai import createHeaders, PORTKEY_GATEWAY_URL
# 配置 Portkey 和服务提供商的 API 密钥
PORTKEY_API_KEY = "your-portkey-api-key" # Portkey API 密钥
PROVIDER_API_KEY = "your-provider-api-key" # AI 服务商的 API 密钥
# 创建 Portkey 请求头
portkey_headers = createHeaders(api_key=PORTKEY_API_KEY, provider="openai")
# 初始化 ChatOpenAI 模型,通过 Portkey 网关完成请求
llm = ChatOpenAI(
api_key=PROVIDER_API_KEY,
base_url=PORTKEY_GATEWAY_URL,
default_headers=portkey_headers
)
# 调用模型
response = llm.invoke("What is the meaning of life, the universe, and everything?")
print(response)
Portkey 会记录所有请求和日志,帮助你快速排查问题。