Portkey与AutoGen的集成

Portkey 是一个只需两行代码的升级,可以让你的 AutoGen 代理变得可靠、高效且快速。
Portkey 为任何 AutoGen 代理添加了 4 个核心生产功能:
- 路由到200多个LLMs
- 使每次LLM调用更加稳健
- 全栈跟踪与成本、性能分析
- 实时防护措施以执行行为
入门指南
-
安装所需的包:
-
pip install -qU autogen-agentchat~=0.2 portkey-ai
Configure AutoGen with Portkey:
from autogen import AssistantAgent, UserProxyAgent, config_list_from_json
from portkey_ai import PORTKEY_GATEWAY_URL, createHeaders
config = [
{
"api_key": "OPENAI_API_KEY",
"model": "gpt-3.5-turbo",
"base_url": PORTKEY_GATEWAY_URL,
"api_type": "openai",
"default_headers": createHeaders(
api_key="YOUR_PORTKEY_API_KEY",
provider="openai",
)
}
]Generate your API key in the Portkey Dashboard.
就这样!仅凭这一点,你就可以开始记录所有的AutoGen请求并使其变得可靠。
- 让我们运行你的Agent
import autogen
# Create user proxy agent, coder, product manager
user_proxy = autogen.UserProxyAgent(
name="User_proxy",
system_message="A human admin who will give the idea and run the code provided by Coder.",
code_execution_config={"last_n_messages": 2, "work_dir": "groupchat"},
human_input_mode="ALWAYS",
)
coder = autogen.AssistantAgent(
name="Coder",
system_message = "You are a Python developer who is good at developing games. You work with Product Manager.",
llm_config={"config_list": config},
)
# Create groupchat
groupchat = autogen.GroupChat(
agents=[user_proxy, coder], messages=[])
manager = autogen.GroupChatManager(groupchat=groupchat, llm_config={"config_list": config})
# Start the conversation
user_proxy.initiate_chat(
manager, message="Build a classic & basic pong game with 2 players in python")
Here’s the output from your Agent’s run on Portkey's dashboard

主要功能
Portkey提供了一系列先进功能来增强您的AutoGen代理。以下是概述
功能 | 描述 |
---|---|
🌐 多语言大模型集成 | 通过简单的配置更改即可访问200多种大语言模型 |
🛡️ 增强的可靠性 | 实现故障恢复、负载均衡、重试等功能 |
📊 高级指标 | 轻松跟踪成本、令牌、延迟和40多个自定义指标 |
🔍 Detailed Traces and Logs | 深入了解每个代理的动作和决策 |
🚧 Guardrails | 通过对输入和输出进行实时检查来强制代理行为 |
🔄 Continuous Optimization | 捕获用户反馈以持续改进代理 |
💾 智能缓存 | 通过内置的缓存机制降低成本和延迟 |
🔐 企业级安全 | 设置预算限制并实施细粒度的访问控制 |
Colab 笔记本
要查看将Portkey与Autogen集成的实际操作示例,请查看我们的笔记本
。
高级功能
互操作性
通过更改配置中的provider
和API密钥,轻松在200多个LLMs之间切换。
示例:从OpenAI切换到Azure OpenAI
config = [
{
"api_key": "api-key",
"model": "gpt-3.5-turbo",
"base_url": PORTKEY_GATEWAY_URL,
"api_type": "openai",
"default_headers": createHeaders(
api_key="YOUR_PORTKEY_API_KEY",
provider="azure-openai",
virtual_key="AZURE_VIRTUAL_KEY"
)
}
]
注意:AutoGen消息将通过Portkey的AI网关按照OpenAI的API签名进行传输。由于消息需要按照特定的角色顺序发送,某些语言模型可能无法正常工作。
可靠性
实施回退、负载均衡和自动重试,以使您的代理更具弹性。
{
"strategy": {
"mode": "fallback" # Options: "loadbalance" or "fallback"
},
"targets": [
{
"provider": "openai",
"api_key": "openai-api-key",
"override_params": {
"top_k": "0.4",
"max_tokens": "100"
}
},
{
"provider": "anthropic",
"api_key": "anthropic-api-key",
"override_params": {
"top_p": "0.6",
"model": "claude-3-5-sonnet-20240620"
}
}
]
}
了解更多关于Portkey配置对象的信息。 当请求中包含函数调用时,请小心对不支持工具调用的提供者进行负载均衡/回退。
指标
代理运行是复杂的。Portkey 自动为您的 AI 代理记录 40 多种全面的指标,包括成本、使用的代币、延迟等。无论您需要总体概览还是对代理运行的详细洞察,Portkey 的可定制过滤器都能提供您所需的指标。
Portkey's Observability Dashboard

全面的日志记录
访问详细的代理活动日志和跟踪,函数调用和错误。基于多个参数过滤日志以进行深入分析。
Traces

Logs

防护措施
AutoGen代理虽然功能强大,但有时可能会产生意外或不希望的输出。Portkey的Guardrails功能有助于实时执行代理行为,确保您的AutoGen代理在指定参数内操作。请验证代理的输入和输出,以确保它们符合指定的格式和内容指南。了解更多关于Portkey的Guardrails功能,请点击这里
持续改进
捕获关于您请求的定性和定量用户反馈,以持续提升您的代理性能。
缓存
通过Portkey的内置缓存系统降低成本和延迟。
portkey_config = {
"cache": {
"mode": "semantic" # Options: "simple" or "semantic"
}
}
安全与合规
在提供者API密钥上设置预算限制,并为您的应用和Portkey API实现细粒度的用户角色和权限。
其他资源
有关使用这些功能和设置您的配置的更多信息,请参阅Portkey文档。