Portkey x LlamaIndex 集成为基于 LlamaIndex 构建的应用程序带来了先进的 AI 网关 功能、全栈 可观察性 和 提示管理 。
简而言之,Portkey 扩展了熟悉的 OpenAI 架构,使 Llamaindex 能够与 200+ LLMs 一起使用,无需为每个提供者导入不同的类或单独配置代码。Portkey 使您的 Llamaindex 应用程序 可靠 、快速 和 具有成本效益 。
1. 安装 Portkey SDK
Copy pip install -U portkey-ai 像往常一样导入 Llamaindex 中的 OpenAI 类,以及 Portkey 的辅助函数 createHeaders 和 PORTKEY_GATEWAY_URL
Copy from llama_index . llms . openai import OpenAI
from portkey_ai import PORTKEY_GATEWAY_URL , createHeaders 使用 Portkey 的 配置对象架构 配置您的模型详细信息。在这里,您可以定义提供者和模型名称、模型参数、设置后备、重试等。
Copy config = {
"provider" : "openai" ,
"api_key" : "YOUR_OPENAI_API_KEY" ,
"override_params" : {
"model" : "gpt-4o" ,
"max_tokens" : 64
}
} 4. 将配置详情传递给 OpenAI 客户端,带上必要的头信息
以下是使用 complete 和 chat 方法的基本集成示例,包含 streaming 的开启和关闭。
assistant: Arrr, matey! They call me Captain Barnacle Bill, the most colorful pirate to ever sail the seven seas! With a parrot on me shoulder and a treasure map in me hand, I'm always ready for adventure! What be yer name, landlubber?
a computer scientist, entrepreneur, and venture capitalist. He is best known for co-founding the startup accelerator Y Combinator and for his work on programming languages and web development. Graham is also a prolific writer and has published essays on a wide range of topics, including startups, technology, and education.
通过将您的 LlamaIndex 请求路由通过 Portkey,您可以访问以下生产级功能:
互操作性 :以最小的代码更改调用各种 LLM,如 Anthropic、Gemini、Mistral、Azure OpenAI、Google Vertex AI 和 AWS Bedrock。
缓存 :通过将过去的响应存储在 Portkey 缓存中来加速您的请求并节省 LLM 调用的费用。可以选择简单缓存模式和语义缓存模式。
可靠性 :在不同的 LLM 或提供者之间设置后备,平衡多个实例或 API 密钥之间的请求负载,设置自动重试和请求超时。
可观察性 :Portkey 自动记录所有请求的关键信息,包括成本、使用的令牌、响应时间、请求和响应体等。发送自定义元数据和追踪 ID,以便进行更好的分析和调试。
提示管理 :将 Portkey 用作集中式中心,以存储、版本化和实验多个 LLM 的提示,并在您的 LlamaIndex 应用中无缝检索,以便轻松集成。
持续改进 :通过捕获用户对您请求的定性和定量反馈来改进您的 LlamaIndex 应用。
安全与合规 :对提供者 API 密钥设置预算限制,并为应用程序和 Portkey API 实施细粒度的用户角色和权限。
这些功能大部分由 Portkey 的配置架构 驱动。在 Portkey 应用中,我们使您能够轻松地 创建 、管理 和 版本 您的配置,以便您可以在 Llamaindex 中轻松引用它们。
在 Portkey 应用中保存配置
前往 Portkey 应用中的配置标签,您可以在这里保存各种提供者配置以及可靠性和缓存功能。每个配置都有一个相关的 slug,您可以在 Llamaindex 代码中引用它。
如果您想在 LlamaIndex 代码中使用 Portkey 应用的已保存配置,但需要在发出请求之前修改某些部分,您可以轻松地使用 Portkey 的 Configs API 来实现。这种方法允许您利用已保存配置的便利,同时仍然可以根据您的特定需求进行调整。
以下是如何使用 Configs API 获取已保存配置并覆盖 model 参数的示例:
在这个示例中:
我们定义了一个辅助函数 get_customized_config,该函数接受 config_slug 和 model 作为参数。
在函数内部,我们向 Portkey Configs API 端点发出 GET 请求,以使用提供的 config_slug 获取已保存的配置。
我们在配置的 override_params 部分更新提供的 custom_model 的 model 参数。
然后,我们可以在初始化 LlamaIndex 的 OpenAI 客户端时使用这个自定义配置,确保我们的特定 model 覆盖应用于已保存的配置。
有关在 Portkey 中使用配置的更多详细信息,请参考 配置文档 。
1. 互操作性 - 调用 Anthropic、Gemini、Mistral 等
现在我们已经启动了 OpenAI 的代码,接下来看看如何使用 Portkey 在多个 LLM 之间发送请求 - 我们将展示 Anthropic 、Gemini 和 Mistral 。有关支持的提供商和 LLM 的完整列表,请查看 此文档 。
切换提供商只需 更改 3 行代码:
调用 Azure、Google Vertex、AWS Bedrock
调用本地或私有托管的模型,例如 Ollama
查看 Ollama 的 Portkey 文档 和 其他私有托管模型 。
在此处查看 Portkey 支持的所有提供者的完整列表 .
通过将过去的响应存储在 Portkey 缓存中,您可以加快请求速度并节省 LLM 请求的费用。缓存模式有 2 种:
简单模式: 完全匹配请求。非常适合重复、相同的提示。适用于 所有模型 ,包括图像生成模型。
语义模式: 匹配语义上相似的请求的响应。非常适合去噪带有额外介词、代词等的请求。
要启用 Portkey 缓存,只需将 cache 参数添加到您的 config objectarrow-up-right 中。
有关更多缓存设置,请查看此处的文档 .
在不同的 LLM 或提供商之间设置后备方案,跨多个实例或 API 密钥进行负载均衡,设置自动重试或请求超时 - 所有这些都通过 Configs 设置。
深入探索每个功能的文档 - 后备方案 ,负载均衡 ,重试 ,超时 。
Portkey 自动记录您请求的所有关键信息,包括成本、使用的令牌、响应时间、请求和响应体等。
使用 Portkey,您还可以在每个请求中发送自定义元数据,以进一步细分日志,以便进行更好的分析。同样,您也可以将多个请求追踪到单个追踪 ID,并在 Portkey 日志中单独过滤或查看它们。
Portkey 为每个日志单独显示这些详细信息:
查看可观察性文档。
Portkey 具有先进的提示平台,专为更好的提示工程而设计。使用 Portkey,您可以:
存储具有访问控制和版本控制的提示: 将所有提示集中存放,轻松跟踪历史变化,并为您的团队管理编辑/查看权限。
在沙盒环境中实验: 快速迭代不同的 LLM 和参数,以找到适合您用例的最佳组合,而无需修改您的 LlamaIndex 代码。
下面是如何在您的 LlamaIndex 应用程序中利用 Portkey 的提示管理:
在 Portkey 应用程序中创建您的提示模板,并保存以获取相关的 Prompt ID
在发起 Llamaindex 请求之前,使用 Portkey SDK 渲染提示模板
转换检索到的提示以兼容 LlamaIndex 并发送请求!
示例:在 LlamaIndex 中使用 Portkey 提示模板
在此处查看提示管理文档 。
现在您知道如何追踪和记录您的 Llamaindex 请求到 Portkey,您还可以开始收集用户反馈以改善您的应用程序!
您可以使用 portkey.feedback.create 方法将定性和定量反馈附加到任何 trace ID:
查看反馈文档以深入了解 。
当您为您的 Llamaindex 应用程序增加更多团队成员时,权限管理、预算控制和访问管理可能会变得混乱!使用 Portkey,您可以为提供的 API 密钥设置 预算限制 ,并实施 细粒度用户角色 和 权限 来:
控制访问 :根据团队成员的角色和职责,限制他们对特定功能、配置或 API 端点的访问。
管理成本 :为 API 密钥设置预算限制,以防止意外支出,并确保您的 LLM 使用保持在分配的预算范围内。
确保合规性 :实施严格的安全政策和审计记录,以维护与行业法规的合规性并保护敏感数据。
简化入职 :通过为新团队成员分配适当的角色和权限,简化入职流程,消除共享敏感 API 密钥或秘密的需要。
监控使用情况 :通过全面的监控和报告,获得对团队 LLM 使用情况的可见性,跟踪成本,并识别潜在的安全风险或异常。
在此阅读有关 Portkey 的安全性和企业产品的更多信息 .
加入 Portkey Discord,与其他从业者联系,讨论您的 LlamaIndex 项目,并获得故障排除的帮助。
Discord 链接 arrow-up-right
有关每个功能及其使用方法的更详细信息,请参阅 Portkey 文档arrow-up-right .