ADK 智能体的 LiteRT-LM 模型托管¶
你可以使用 LiteRT-LM 库在本地各种计算设备上高效运行语言模型,无需 GPU 或 TPU 等专用处理器。LiteRT-LM 支持许多模型,包括 Google Gemma 模型以及第三方模型。
Python¶
以下说明描述了如何使用 LiteRT-LM 服务器与 ADK Python 和 Gemma 开源权重模型,包括使用 LiteRT-LM 的本地托管模型服务器 lit。
安装资源¶
你需要下载一个模型来配合 LiteRT-LM 使用,以及 lit CLI 工具来帮助你查找和下载模型。
安装 lit CLI 工具¶
按照 LiteRT-LM GitHub 仓库中的说明下载并安装 lit CLI 工具。
下载模型¶
在启动服务器之前,你需要下载一个模型。你需要一个 Hugging Face 用户访问令牌才能使用 lit 下载 LiteRT-LM 模型。你可以在此处获取你的 Hugging Face 账户的令牌。
要查看可供下载的模型列表,使用 lit list 命令:
使用 lit pull 命令下载模型:
配置你的智能体¶
配置你的智能体以连接到 LiteRT-LM 和托管的模型。
使用 LiteRT-LM 运行 Gemma 模型时,你需要使用模型标识符和本地网络地址配置 Gemini
模型类。
要将 LiteRT-LM 与 ADK 和 Gemma 模型一起使用:
- 将
base_url设置为 LiteRT-LM 服务器 URL,例如:localhost:8001。 - 将
model设置为 LiteRT-LM 模型名称,例如:gemma3n-e2b。
以下示例代码展示了如何配置一个智能体, 连接到本地托管的 LiteRT-LM 实例以运行上述 Gemma 模型配置:
from google.adk.agents import Agent
from google.adk.models import Gemini
root_agent = Agent(
model=Gemini(
model="gemma3n-e2b",
base_url="http://localhost:8001",
),
name="dice_agent",
description=(
"一个可以掷 8 面骰子并检查素数的"
" hello world 智能体。"
),
instruction="""
你掷骰子并回答关于掷骰结果的问题。
""",
tools=[
roll_die,
check_prime,
],
)
然后像往常一样运行智能体:
运行 LiteRT-LM 服务器¶
LiteRT-LM 服务器是一个独立的进程,用于提供 LiteRT-LM 模型服务。它由 LiteRT-LM CLI 工具 lit 启动。
运行服务器¶
下载模型后,通过运行以下命令在本地启动 LiteRT-LM 服务器:
本地服务器端口号
你可以为 LiteRT-LM 服务器选择任意端口号,只要它与你在智能体代码的 Gemini 类中设置的 base_url 匹配即可。
调试¶
要查看发送到 LiteRT-LM 服务器的请求以及发送给模型的精确输入,请使用 --verbose 标志:
Kotlin¶
以下说明描述了如何使用 com.google.adk.kt.litertlm 包在 Kotlin 中将 LiteRT-LM 与 ADK 配合使用。
安装资源¶
你需要下载一个模型来配合 LiteRT-LM 使用,以及 litert-lm CLI 工具来帮助你查找和下载模型。
安装 LiteRT-LM CLI¶
前提条件:Python 3.10 或更高版本
要安装 CLI,运行:
如需其他安装方式(例如使用 uv),请参阅 LiteRT-LM CLI 安装指南。
下载模型¶
下载一个与 LiteRT-LM 兼容的模型以使用 litert-lm CLI 工具。
使用 litert-lm 直接从 Hugging Face 下载模型:
litert-lm import \
--from-huggingface-repo litert-community/gemma-4-E2B-it-litert-lm \
gemma-4-E2B-it.litertlm
下载完成后,模型将存储在本地:
有关 litert-lm 的更多详情,请参阅
LiteRT-LM CLI 使用指南。
添加依赖¶
ADK Kotlin 通过适配器包 com.google.adk:google-adk-kotlin-litertlm
与 LiteRT-LM 配合工作。
在你的 build.gradle.kts 中,将 com.google.adk:google-adk-kotlin-litertlm 和
com.google.ai.edge.litertlm:litertlm-jvm 添加到依赖项中:
repositories {
mavenCentral()
google()
}
dependencies {
implementation("com.google.adk:google-adk-kotlin-core:0.5.0")
implementation("com.google.adk:google-adk-kotlin-litertlm:0.5.0")
implementation("com.google.ai.edge.litertlm:litertlm-jvm:0.13.1")
// 其他依赖...
}
配置智能体模型¶
通过将 LiteRtLmModel 对象配置为 LlmAgent 对象的一部分,使用 LiteRT-LM 为你的智能体运行本地模型。如果你还没有 ADK Kotlin 项目,请按照
Kotlin 快速入门指南进行操作。以下代码示例展示了如何
配置一个 LlmAgent,并将 model 参数设置为 LiteRtLmModel:
object HelloTimeAgent {
// 从环境变量获取模型路径。
private val modelPath: String by lazy {
System.getenv("LITERT_LM_MODEL_PATH")
?: throw IllegalStateException(
"必须设置 LITERT_LM_MODEL_PATH 环境变量,指向一个 .litertlm 文件。"
)
}
@JvmField
val rootAgent =
LlmAgent(
name = "hello_time_agent",
description = "告知指定城市的当前时间。",
model =
LiteRtLmModel.create(
EngineConfig(modelPath = modelPath, backend = Backend.CPU())
),
instruction =
Instruction(
"你是一个可以告知城市当前时间的有用助手。" +
"使用 'getCurrentTime' 工具来实现此目的。"
),
tools = TimeService().generatedTools(),
)
}
在这个示例中,LiteRT-LM 模型文件的路径从环境变量 LITERT_LM_MODEL_PATH 中读取。模型将在 CPU 上运行。
你可以通过设置 backend = Backend.GPU() 来在 GPU 上运行模型。
当你运行智能体时,将 LITERT_LM_MODEL_PATH 设置为模型文件的位置,
例如:~/.litert-lm/models/gemma-4-E2B-it.litertlm/model.litertlm。
运行你的智能体¶
如果你按照 Kotlin 快速入门指南
进行了上述修改,你可以使用命令行 REPL 运行你的 ADK 智能体,同时将环境变量 LITERT_LM_MODEL_PATH 设置为模型文件的路径:
交互示例: