## 引言
在构建 AI 驱动的应用时,稳定性、成本和性能始终是开发者面临的主要挑战。Portkey为Langchain带来了生产就绪能力,通过其AI Gateway和Observability Suite,开发者能够更轻松地管理和优化应用。本篇文章将介绍如何通过Portkey集成Langchain,并提供相关代码示例与资源指导。
## 主要内容
### 连接超过150个模型
Portkey提供了统一的API接口,让你可以无缝连接20多个供应商的150多个模型。这种灵活性使得开发者可以根据需求灵活切换模型,优化性能和成本。
### 使用语义缓存
通过语义缓存,Portkey可以显著减少请求的延迟和成本。缓存机制会智能识别重复请求,避免不必要的计算。
### 自动重试与失败回退
Portkey支持自动重试和故障回退机制,确保在请求失败时,应用能够快速恢复并提供替代方案。
## 代码示例
下面的代码示例展示了如何通过Portkey AI Gateway集成Langchain并调用模型:
```python
from langchain_openai import ChatOpenAI
from portkey_ai import createHeaders, PORTKEY_GATEWAY_URL
PORTKEY_API_KEY = "..." # 获取自Portkey的API密钥
PROVIDER_API_KEY = "..." # 使用的AI供应商的API密钥
# 创建Portkey请求头
portkey_headers = createHeaders(api_key=PORTKEY_API_KEY, provider="openai")
# 配置Langchain的ChatOpenAI模型
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, universe and everything?")
print(response)
使用API代理服务提高访问稳定性
高级路由配置
Portkey支持负载均衡和流量拆分,以下代码展示了如何在两种大型模型之间进行50:50的流量拆分:
config = {
"strategy": {
"mode": "loadbalance"
},
"targets": [{
"virtual_key": "openai-25654",
"override_params": {"model": "gpt4"},
"weight": 0.5
}, {
"virtual_key": "anthropic-25654",
"override_params": {"model": "claude-3-opus-20240229"},
"weight": 0.5
}]
}
portkey_headers = createHeaders(api_key=PORTKEY_API_KEY, config=config)
llm = ChatOpenAI(api_key="X", base_url=PORTKEY_GATEWAY_URL, default_headers=portkey_headers)
response = llm.invoke("What is the meaning of life, universe and everything?")
print(response)
使用API代理服务提高访问稳定性
常见问题和解决方案
网络访问问题
由于某些地区的网络限制,开发者可能需要考虑使用API代理服务以提高访问稳定性。
调试和监控
Portkey提供了丰富的日志和监控功能,可以帮助开发者快速找到问题并进行调试。
总结和进一步学习资源
Portkey通过一系列强大的功能,显著提升了Langchain应用的效率和可靠性。建议进一步学习以下资源:
参考资料
- Portkey 官方文档:https://portkey.ai/docs/
- Langchain 官方文档:https://langchain.com/docs
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---