实践:为 AI 助手添加实时网络搜索能力
场景描述
在开发本地 AI 助手时,我遇到了一个常见问题:大语言模型的训练数据有截止日期,无法回答需要最新信息的问题。例如:
- "2025 年最新发布的 AI 模型有哪些?"
- "Python 3.14 有哪些新特性?"
- "最近一周人工智能领域有什么重要新闻?"
这些问题都需要实时联网搜索才能给出准确答案。
解决方案
我使用 qryma-search 技能,为我的 AI 助手集成了实时网络搜索功能。这个技能提供快速、低成本的 AI 搜索 API,支持多种输出格式(Markdown/JSON/Brave),非常适合集成到 LLM 应用中。
实施步骤
1. 准备工作
注意:当前项目就是 qryma-search skill 的源代码仓库(github.com/qryma-ai/sk…
你可以:
方案 A:直接使用项目代码(推荐用于测试和开发)
# 克隆项目
git clone https://github.com/qryma-ai/skills.git
cd skills
pip install -r requirements.txt
方案 B:作为 Skill 安装到你的项目(推荐用于生产环境)
# 在你的项目中安装
npx skills add https://github.com/qryma-ai/skills
2. 配置环境变量
在项目根目录创建 .env 文件:
QRYMA_API_KEY=ak-your-api-key-here
从 qryma.com 获取免费的 API Key。
3. 封装搜索功能
基于项目中的 search_core.py,我创建了一个简单的集成脚本 ai_search_assistant.py:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
AI 助手搜索集成示例
演示如何将 qryma-search 集成到 AI 助手中
当前项目是 qryma-search 技能的源代码仓库,
代码直接使用本地的 `scripts.search_core` 模块。
"""
import sys
import os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from scripts.search_core import QrymaSearchCore
class AIAssistantWithSearch:
"""带搜索功能的 AI 助手"""
def __init__(self):
self.search_core = QrymaSearchCore()
self.search_triggers = [
"最新", "最近", "今天", "本周", "本月",
"如何", "怎样", "教程",
"搜索", "查找", "查询",
"2025", "2026", "2027" # 年份关键词
]
def needs_search(self, query: str) -> bool:
"""判断是否需要搜索"""
query_lower = query.lower()
return any(trigger in query_lower for trigger in self.search_triggers)
def search_and_format(self, query: str, max_results: int = 3) -> str:
"""执行搜索并格式化结果"""
try:
result = self.search_core.search(
query=query,
max_results=max_results,
mode="fulltext"
)
formatted = f"🔍 搜索结果(关键词:{query})\n\n"
for i, item in enumerate(result["results"], 1):
formatted += f"### {i}. {item['title']}\n"
formatted += f"🔗 {item['url']}\n"
formatted += f"{item['content']}\n\n"
return formatted
except Exception as e:
return f"搜索失败:{str(e)}"
def query(self, user_input: str) -> str:
"""处理用户查询"""
if self.needs_search(user_input):
return self.search_and_format(user_input)
else:
return "这是一个不需要搜索的问题,我可以直接回答您。"
def main():
"""主函数"""
print("🤖 AI 助手(带搜索功能)")
print("输入 'quit' 退出\n")
assistant = AIAssistantWithSearch()
while True:
try:
user_input = input("您的问题:").strip()
if user_input.lower() in ["quit", "exit", "退出"]:
print("👋 再见!")
break
if not user_input:
continue
response = assistant.query(user_input)
print(f"\n{response}\n")
except KeyboardInterrupt:
print("\n👋 再见!")
break
except Exception as e:
print(f"错误:{e}\n")
if __name__ == "__main__":
main()
4. 测试运行
运行脚本测试搜索功能:
python ai_search_assistant.py
示例对话:
🤖 AI 助手(带搜索功能)
输入 'quit' 退出
您的问题:2025 年最新发布的 AI 模型有哪些?
🔍 搜索结果(关键词:2025 年最新发布的 AI 模型有哪些)
### 1. Claude 3.5 Sonnet
🔗 https://www.anthropic.com/news/claude-3-5-sonnet
Anthropic 在 2025 年发布了 Claude 3.5 Sonnet,这是其最新的大语言模型,在编码、数学推理和理解上下文方面有显著提升,支持更长的输入和更精确的回答。
### 2. GPT-4o mini
🔗 https://openai.com/index/gpt-4o-mini-announcement
OpenAI 于 2025 年推出了 GPT-4o mini,这是其最新的轻量级多模态模型,提供了出色的性价比,在移动设备上也能良好运行。
### 3. Llama 3.1
🔗 https://ai.meta.com/blog/llama-3-1/
Meta 在 2025 年发布了 Llama 3.1,包括 8B、70B、405B 和 1T 参数版本,支持多模态输入,在代码生成和长文本处理方面有显著改进。
实际效果
集成搜索功能后,我的 AI 助手现在可以:
✅ 回答需要最新信息的问题,如"2025 年最新 AI 新闻"
✅ 查找技术教程和文档,如"Python 异步编程教程"
✅ 获取实时事件信息,如"今天有什么科技发布会"
✅ 对比不同技术方案,如"React vs Vue 2025 对比"
总结
通过 qryma-search 技能,我在不到 100 行代码的情况下,成功为我的 AI 助手添加了实时网络搜索能力。这个技能的优势在于:
- 🚀 响应速度快(<1秒)
- 💰 免费额度充足
- 📝 输出格式友好(支持 Markdown)
- 🔧 易于集成
如果你也在构建 AI Agent 或智能助手,强烈推荐尝试 qryma-search!