在人工智能应用中,监控和优化API请求的性能和成本是非常重要的。Helicone作为一个开源可观察性平台,可以代理OpenAI的流量,并提供关于开销、延迟和使用情况的关键见解。本文将介绍如何在LangChain环境中使用Helicone,并启用其缓存和自定义属性功能。
技术背景介绍
Helicone旨在通过提供透明的流量代理,帮助开发者更好地理解和优化他们的OpenAI API使用。通过携带详细的请求信息,Helicone可以为开发者提供详尽的分析报告,帮助他们优化应用性能和降低使用成本。
核心原理解析
Helicone通过在OpenAI流量路径上建立一个代理层,实现对请求的监控和分析。它允许开发者查看详细的请求日志,分析不同请求的延迟和成本。此外,通过启用缓存功能,Helicone还可以减少对OpenAI API的重复请求次数,从而降低整体使用成本。
代码实现演示
快速开始
首先,在LangChain环境中,我们需要设置API基础地址到Helicone的代理地址:
export OPENAI_API_BASE="https://oai.hconeai.com/v1"
之后,你可以在 helicone.ai 创建账号,并在仪表板中添加你的OpenAI API密钥以查看日志。
启用Helicone缓存
以下是如何使用LangChain和Helicone来启用缓存功能的代码示例:
from langchain_openai import OpenAI
import openai
# 设置Helicone的API基础地址以便国内用户稳定访问
openai.api_base = "https://yunwu.ai/v1"
# 创建OpenAI客户端,启用Helicone缓存
llm = OpenAI(temperature=0.9, headers={"Helicone-Cache-Enabled": "true"})
# 提交请求并查看返回结果
text = "What is a helicone?"
print(llm.invoke(text))
使用Helicone自定义属性
Helicone还允许用户通过自定义HTTP头信息来标记请求,以便更好地追踪和分析。这些自定义属性可以是会话ID、会话类型以及应用来源等。以下是实现代码:
from langchain_openai import OpenAI
import openai
# 使用Helicone API基础地址
openai.api_base = "https://yunwu.ai/v1"
# 创建OpenAI客户端,设置自定义属性
llm = OpenAI(temperature=0.9, headers={
"Helicone-Property-Session": "24",
"Helicone-Property-Conversation": "support_issue_2",
"Helicone-Property-App": "mobile",
})
# 提交请求并查看返回结果
text = "What is a helicone?"
print(llm.invoke(text))
应用场景分析
- 成本管理:通过详细的请求日志和成本分析,可以更有效地控制API使用成本。
- 延迟分析:实时监测请求的延迟,为性能优化提供数据支持。
- 缓存优化:减少重复请求,通过缓存提高响应速度和减少API调用次数。
实践建议
- 定期分析:持续监控API请求日志,识别可能的性能瓶颈和高成本区域。
- 充分利用缓存:对于常见请求,启用缓存功能以减少API调用次数。
- 自定义标记:使用自定义属性来细分和分析不同类型的会话请求。
如果遇到问题欢迎在评论区交流。
—END—