← 返回
未分类 Key

Double search(Tavily + Kimi)

双搜索功能 (Tavily + Kimi) - 支持并行搜索和结果合并
双搜索功能 (Tavily + Kimi) - 支持并行搜索和结果合并
wjs028-coder wjs028-coder 来源
未分类 clawhub v1.0.0 1 版本 100000 Key: 需要
★ 0
Stars
📥 357
下载
💾 0
安装
1
版本
#latest

概述

Double Search Skill

双重搜索功能,同时使用Tavily和Kimi搜索引擎,提供更全面、准确的搜索结果。

功能特性

  • 双引擎并行搜索:同时使用Tavily和Kimi
  • 智能结果合并:自动合并、去重和排序
  • 异步高效:基于asyncio的高性能实现
  • 错误容错:单个搜索失败不影响整体
  • 灵活配置:支持环境变量和配置文件

快速开始

1. 安装Python依赖

pip install aiohttp python-dotenv

2. 设置环境变量

.env文件中添加:

TAVILY_API_KEY=tvly-xxxxxxxxxxxx
KIMI_API_KEY=your_kimi_api_key_here

或者设置系统环境变量:

export TAVILY_API_KEY="tvly-xxxxxxxxxxxx"
export KIMI_API_KEY="your_kimi_api_key_here"

3. 基本使用

from double_search import DoubleSearcher

async def search_example():
    searcher = DoubleSearcher()

    # 执行搜索
    results = await searcher.search("人工智能发展趋势")

    # 打印结果
    print(f"搜索结果: {results}")

    # 查看各个搜索引擎的结果
    print(f"Tavily结果: {results.get('tavily', [])}")
    print(f"Kimi结果: {results.get('kimi', [])}")

    return results

API文档

DoubleSearcher类

初始化

searcher = DoubleSearcher()

search方法

async def search(
    query: str,
    merge_results: bool = True,
    limit_per_source: int = 5
) -> Dict[str, Any]

参数:

  • query (str): 搜索查询字符串
  • merge_results (bool): 是否合并结果(默认True)
  • limit_per_source (int): 每个搜索源返回的结果数量(默认5)

返回:

{
  "query": "搜索内容",
  "merged_results": [
    {
      "title": "结果标题",
      "url": "https://example.com",
      "snippet": "结果摘要",
      "source": "tavily"
    }
  ],
  "source_breakdown": {
    "tavily": [...],
    "kimi": [...]
  }
}

高级用法

1. 不合并结果

results = await searcher.search(
    query="技术趋势",
    merge_results=False
)

# 结果按搜索源分开
print(results['tavily'])
print(results['kimi'])

2. 限制每个源的结果数量

results = await searcher.search(
    query="市场分析",
    limit_per_source=3
)

3. 自定义结果处理

results = await searcher.search("投资策略")

# 只获取Tavily的结果
tavily_results = results.get('tavily', [])

# 只获取Kimi的结果
kimi_results = results.get('kimi', [])

# 获取合并的结果
all_results = results.get('merged_results', [])

配置管理

环境变量配置

# 必需
TAVILY_API_KEY=tvly-xxxxxxxxxxxx

# 可选(不设置则只使用Tavily)
KIMI_API_KEY=your_kimi_api_key_here

配置文件支持

支持.env文件:

# .env文件示例
TAVILY_API_KEY=tvly-xxxxxxxxxxxx
KIMI_API_KEY=your_kimi_api_key_here

错误处理

async def safe_search(query: str):
    searcher = DoubleSearcher()

    try:
        results = await searcher.search(query)

        if not results['merged_results']:
            return {"error": "搜索无结果", "query": query}

        return results

    except Exception as e:
        return {"error": f"搜索失败: {str(e)}", "query": query}

性能优化

并行搜索效率

  • Tavily和Kimi同时搜索,总时间接近较慢的搜索引擎
  • 适合需要全面结果的场景

结果缓存

from functools import lru_cache

class CachedSearcher(DoubleSearcher):
    @lru_cache(maxsize=100)
    async def search(self, query: str, ...):
        return await super().search(query, ...)

使用场景

1. 内容创作

async def research_topic(topic):
    searcher = DoubleSearcher()
    results = await searcher.search(topic)

    # 分析多个来源
    insights = analyze_results(results)
    return insights

2. 财经分析

async def financial_analysis(ticker):
    searcher = DoubleSearcher()
    query = f"{ticker} 财经分析"
    results = await searcher.search(query)

    # 过滤财经相关结果
    financial_news = filter_financial_content(results)
    return financial_news

3. 代码搜索

async def code_search(problem):
    searcher = DoubleSearcher()
    results = await searcher.search(problem)

    # 优先获取技术相关结果
    technical_results = filter_tech_content(results)
    return technical_results

故障排除

问题1:搜索无结果

# 检查API keys
echo $TAVILY_API_KEY
echo $KIMI_API_KEY

# 验证API keys有效性

问题2:Python模块未找到

# 确保在正确的工作目录
cd ~/.openclaw/skills/double-search

# 检查Python路径
which python3

问题3:依赖缺失

# 安装依赖
pip install aiohttp python-dotenv

版本信息

  • 版本: 1.0.0
  • Python版本: 3.8+
  • 更新日期: 2026-03-27
  • 兼容性: OpenClaw skill系统

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-07 09:21 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

knowledge-management

Baidu web search

ide-rea
使用百度AI搜索引擎(BDSE)进行网络搜索。适用于获取实时信息、文档资料或研究课题。
★ 246 📥 108,077
knowledge-management

web-tools-guide

user_ec205dbb
MANDATORY before calling web_search, web_fetch, browser, or opencli. Contains required error-handling procedures (web_se
★ 76 📥 164,001
knowledge-management

Summarize

paudyyin
智能摘要工具,自动为长文本、文档、网页生成摘要,提取要点与关键词,支持自定义摘要长度。
★ 963 📥 520,259