Portkey 是一个只需两行代码即可让你的 CrewAI 代理更可靠、更具成本效益且更快速的升级。

Portkey 为任何 CrewAI 代理增加 4 个核心生产能力

  1. 路由到 200+ 个 LLM
  2. 使每次 LLM 调用更稳健
  3. 全栈追踪、成本与性能分析
  4. 实时防护栏以强制执行行为

入门

1

安装 CrewAI 和 Portkey

pip install -qU crewai portkey-ai
2

配置 LLM 客户端

要使用 Portkey 构建 CrewAI 代理,你需要两个密钥

  • Portkey API 密钥:在 Portkey 应用上注册并复制你的 API 密钥
  • 虚拟密钥:虚拟密钥将你的 LLM API 密钥安全地集中管理。将你的 LLM 提供商 API 密钥安全地存储在 Portkey 的保管库中。
from crewai import LLM
from portkey_ai import createHeaders, PORTKEY_GATEWAY_URL

gpt_llm = LLM(
    model="gpt-4",
    base_url=PORTKEY_GATEWAY_URL,
    api_key="dummy", # We are using Virtual key
    extra_headers=createHeaders(
        api_key="YOUR_PORTKEY_API_KEY",
        virtual_key="YOUR_VIRTUAL_KEY", # Enter your Virtual key from Portkey
    )
)
3

创建并运行你的第一个代理

from crewai import Agent, Task, Crew

# Define your agents with roles and goals
coder = Agent(
    role='Software developer',
    goal='Write clear, concise code on demand',
    backstory='An expert coder with a keen eye for software trends.',
    llm=gpt_llm
)

# Create tasks for your agents
task1 = Task(
    description="Define the HTML for making a simple website with heading- Hello World! Portkey is working!",
    expected_output="A clear and concise HTML code",
    agent=coder
)

# Instantiate your crew
crew = Crew(
    agents=[coder],
    tasks=[task1],
)

result = crew.kickoff()
print(result)

主要功能

功能描述
🌐 多 LLM 支持通过统一界面访问 OpenAI、Anthropic、Gemini、Azure 和 250+ 提供商
🛡️ 生产可靠性实现重试、超时、负载均衡和回退
📊 高级可观测性跟踪 40+ 项指标,包括成本、令牌、延迟和自定义元数据
🔍 全面日志记录使用详细的执行追踪和函数调用日志进行调试
🚧 安全控制设置预算限制并实施基于角色的访问控制
🔄 性能分析捕获和分析反馈以持续改进
💾 智能缓存使用语义或简单缓存降低成本和延迟

使用 Portkey Configs 的生产功能

下面提到的所有功能都通过 Portkey 的 Config 系统实现。Portkey 的 Config 系统允许你在 LLM API 调用中使用简单的 JSON 对象定义路由策略。你可以直接在代码中或通过 Portkey Dashboard 创建和管理 Config。每个 Config 都有一个唯一的 ID,便于引用。

1. 使用 250+ 个 LLM

只需少量代码修改即可访问 Anthropic、Gemini、Mistral、Azure OpenAI 等各种 LLM。在不同提供商之间切换或无缝组合使用它们。了解更多关于 Universal API 的信息

轻松在不同的 LLM 提供商之间切换

# Anthropic Configuration
anthropic_llm = LLM(
    model="claude-3-5-sonnet-latest",
    base_url=PORTKEY_GATEWAY_URL,
    api_key="dummy",
    extra_headers=createHeaders(
        api_key="YOUR_PORTKEY_API_KEY",
        virtual_key="YOUR_ANTHROPIC_VIRTUAL_KEY", #You don't need provider when using Virtual keys
        trace_id="anthropic_agent"
    )
)

# Azure OpenAI Configuration
azure_llm = LLM(
    model="gpt-4",
    base_url=PORTKEY_GATEWAY_URL,
    api_key="dummy",
    extra_headers=createHeaders(
        api_key="YOUR_PORTKEY_API_KEY",
        virtual_key="YOUR_AZURE_VIRTUAL_KEY", #You don't need provider when using Virtual keys
        trace_id="azure_agent"
    )
)

2. 缓存

使用两种强大的缓存模式缩短响应时间并降低成本

config = {
    "cache": {
        "mode": "semantic",  # or "simple" for exact matching
    }
}

3. 生产可靠性

Portkey 提供全面的可靠性功能

  • 自动重试:优雅地处理临时故障
  • 请求超时:防止操作挂起
  • 条件路由:根据特定条件路由请求
  • 回退:设置自动提供商故障转移
  • 负载均衡:高效分配请求

了解更多关于可靠性功能的信息

4. 指标

代理运行很复杂。Portkey 自动记录你的 AI 代理的 40+ 项全面指标,包括成本、使用的令牌、延迟等。无论你需要对代理运行进行宏观概览还是细粒度洞察,Portkey 的可定制过滤器都能提供你所需的指标。

  • 每次代理交互的成本
  • 响应时间和延迟
  • 令牌使用和效率
  • 成功/失败率
  • 缓存命中率

5. 详细日志记录

日志对于理解代理行为、诊断问题和改进性能至关重要。它们提供代理活动和工具使用的详细记录,这对调试和优化过程至关重要。

访问专用部分查看代理执行记录,包括参数、结果、函数调用和错误。可以基于追踪 ID、模型、使用的令牌和元数据等多个参数过滤日志。

6. 企业安全功能

  • 为每个虚拟密钥(一次性 API 密钥)设置预算限制和速率限制
  • 实施基于角色的访问控制
  • 使用审计日志跟踪系统更改
  • 配置数据保留策略

有关创建和管理 Configs 的详细信息,请访问Portkey 文档

资源