本项目利用ADK框架与12B规模的Gema3语言模型,构建了一套完整的YouTube搜索功能。通过函数调用机制,让大语言模型(LLM)与外部API(如SERP API)交互,从而实现复杂的网络搜索任务。
pip install -r requirements.txt
ollama init gema3:12b
agent = YouTubeSearchAgent()
results = agent.search_videos("学习Python编程")
print(results)
pip install -r requirements.txt
ollama init gema3:12b
class YouTubeSearchAgent:
def __init__(self, model_name="gema3:12b"):
self.llm = LlmAgent(model_name)
self._setup_agent()
def _setup_agent(self):
# 初始化LLM代理并设置YouTube搜索工具
self.llm.init()
self.llm.add_tool(youtube_search_tool)
async def search_videos(self, query: str):
response = await self.llm.run(query)
return parse_youtube_response(response)
def youtube_search_function():
@llm_tool
async def search_videos(query: str) -> dict:
"""通过YouTube API搜索视频"""
results = await serpapi_call(query)
return format_youtube_results(results)
return {
"name": "youtube_search",
"function": search_videos,
"description": "执行YouTube视频搜索并返回结构化结果"
}
def parse_youtube_response(response: str) -> dict:
# 解析LLM返回的JSON格式响应
try:
return json.loads(response)
except JSONDecodeError:
raise ValueError("无效的JSON响应")
project/
├── Images/
│ ├── adk-gemma3.gif # 应用演示动画
│ └── adk-gemma-web.gif # 网页界面展示
├── search/
│ ├── __init__.py # 包初始化文件
│ └── agent.py # 主代理实现模块
├── .gitignore # Git忽略规则
├── README.md # 项目文档
├── LICENSE # MIT开源许可证
└── requirements.txt # 依赖管理文件
本项目遵循MIT开源协议,允许自由使用和修改,但需保留版权声明。