Portkey 是一个两行升级,使您的CrewAI代理可靠、成本效益高且快速。

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

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

入门指南

1

安装CrewAI和Portkey

pip install -qU crewai portkey-ai
2

配置LLM客户端

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

  • Portkey API Key: 在Portkey app上注册并复制您的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配置的生产功能

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

1. 使用250+ LLMs

通过最少的代码更改访问各种LLM,如Anthropic、Gemini、Mistral、Azure OpenAI等。在提供商之间切换或无缝地一起使用它们。了解更多关于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密钥)设置预算限制和速率限制
  • 实施基于角色的访问控制
  • 使用审计日志跟踪系统更改
  • 配置数据保留策略

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

资源