ADK 智能体的 LiteLLM 模型连接器¶
Supported in ADKPython v0.1.0
LiteLLM 是一个 Python 库,充当模型和模型托管服务的转换层,为 100 多个 LLM 提供标准化的、兼容 OpenAI 的接口。ADK 通过 LiteLLM 库提供集成,允许你访问来自 OpenAI、Anthropic(非 Vertex AI)、Cohere 等提供商的大量 LLM。你可以在本地运行开源模型或自托管它们,并使用 LiteLLM 集成它们以实现操作控制、成本节省、隐私或离线用例。
你可以使用 LiteLLM 库访问远程或本地托管的 AI 模型:
- 远程模型托管: 使用
LiteLlm包装类并将其设置为LlmAgent的model参数。 - 本地模型托管: 使用配置为指向你的本地模型服务器的
LiteLlm包装类。有关本地模型托管解决方案的示例,请参阅 Ollama 或 vLLM 文档。
Windows 下使用 LiteLLM 的编码问题
在 Windows 上将 ADK 智能体与 LiteLLM 一起使用时,你可能会遇到 UnicodeDecodeError。发生此错误是因为 LiteLLM 可能会尝试使用默认的 Windows 编码 (cp1252) 而不是 UTF-8 来读取缓存文件。通过将 PYTHONUTF8 环境变量设置为 1 来防止此错误。这会强制 Python 对所有文件 I/O 使用 UTF-8。
示例 (PowerShell):
设置¶
- 安装 LiteLLM:
-
设置提供商 API 密钥: 将 API 密钥配置为你打算使用的特定提供商的环境变量。
-
OpenAI 示例:
-
Anthropic (非 Vertex AI) 示例:
-
有关其他提供商的正确环境变量名称,请参阅 LiteLLM 提供商文档。
-
示例实现¶
from google.adk.agents import LlmAgent
from google.adk.models.lite_llm import LiteLlm
# --- 使用 OpenAI 的 GPT-4o 的示例智能体 ---
# (需要 OPENAI_API_KEY)
agent_openai = LlmAgent(
model=LiteLlm(model="openai/gpt-4o"), # LiteLLM 模型字符串格式
name="openai_agent",
instruction="You are a helpful assistant powered by GPT-4o.",
# ... 其他智能体参数
)
# --- 使用 Anthropic 的 Claude Haiku (非 Vertex) 的示例智能体 ---
# (需要 ANTHROPIC_API_KEY)
agent_claude_direct = LlmAgent(
model=LiteLlm(model="anthropic/claude-3-haiku-20240307"),
name="claude_direct_agent",
instruction="You are an assistant powered by Claude Haiku.",
# ... 其他智能体参数
)