研究编排服务
一个强大的、由人工智能驱动的研究编排服务,可以收集、分析和综合来自多个来源的信息,为复杂的查询提供全面的答案。该服务基于Cloudflare Workers构建,利用多种专业工具和人工智能功能来提供结构良好、引用正确的研究成果。
概述
该服务将自然语言查询转化为结构化的研究任务,智能地选择和编排各种专业工具来收集相关信息。然后,它将收集到的数据综合成一个连贯的、引用良好的答案,并附有信心指标。
主要特点
- 智能查询分析:
- 对用户查询进行高级分析,以了解意图、实体和约束 - 每个专业研究工具的查询优化 - 自动URL和上下文提取
- 多工具编排:
- 基于查询上下文和相关性评分的动态工具选择 - 具有智能重试逻辑的并行执行 - 每个工具的自动查询自适应 - 跨研究迭代的智能工具重用
- 迭代研究过程:
- 通过有针对性的差距分析进行多次研究迭代 - 针对缺失信息的高度集中的后续查询 - 有效处理后续迭代 - 收集到足够信息时智能终止
- 人工智能驱动的合成:
- 将来自不同来源的信息组合成全面的答案 - 正确的引用和来源归因 - 带部分和亮点的结构化格式
- 质量保证:
- 个人结果和整体综合的置信度评分 - 来源可信度评估 - 结果的相关性过滤 - 批处理以实现高效分析
- 性能优化:
- 使用Cloudflare KV的内置缓存系统 - 工具的并行执行 - API故障的智能重试逻辑 - 高效批处理用于结果评估
建筑
核心组件
- 编排器 (
src/orchestrator.ts):
- 协调整个研究过程 - 通过智能重用管理工具选择和执行 - 处理结果聚合和合成 - 支持元数据丰富的工具执行,以获得更好的上下文
- 查询优化器 (
src/queryOptimizer.ts):
- 分析意图和上下文的查询 - 优化不同工具的查询 - 提取实体、URL和YouTube视频ID
- 刀具管理器 (
src/toolManager.ts):
- 根据相关性处理工具选择 - 使用重试逻辑和缓存管理工具执行 - 提供统一的错误处理 - 在需要时使用回退到基于分数的选择
- 结果处理器 (
src/resultProcessor.ts):
- 评估结果与批处理的相关性 - 分析信息差距并创建有针对性的后续查询 - 综合最终结果 - 实现并行处理以获得更好的性能
- 格式化器 (
src/formatter.ts):
- 具有适当格式的结构输出 - 处理引文管理 - 提供信心指标
研究过程
研究过程遵循以下步骤:
- 查询分析:分析查询以了解意图、提取实体、识别URL并确定查询类型。
- 工具选择:
- 根据与查询的相关性选择工具 - 在初始迭代中,以前使用的工具会被过滤掉 - 对于后续查询,可以重用工具来探索新的方面
- 查询优化:查询针对每个选定的工具进行了优化,以最大限度地提高相关性。
- 工具执行:
- 工具与元数据上下文并行执行 - 相关时自动提取URL和YouTube视频ID - 缓存结果以提高性能
- 相关性评估:
- 评估结果与原始查询的相关性 - 处理过程分批进行,以高效处理大型结果集 - 通过批处理确保多样性
- 差距分析:
- 识别信息缺口 - 有针对性的后续查询侧重于缺失的方面 - 分析提供了具体的缺失方面,并解释了差距
- 迭代:
- 重复后续查询的过程,直到填补空白 - 工具可以在不同方面的迭代之间重复使用 - 每次迭代都建立在先前的知识之上
- 合成:
- 所有相关结果都被综合成一个全面的答案 - 来源被正确引用和组织 - 置信度得分根据源质量和内容计算
研究工具
该服务与多种专业研究工具集成:
- 网页搜索:
- 勇敢的搜索:以隐私为重点的网络搜索,覆盖面广 - 塔维利搜索:增强相关性的人工智能搜索
- 技术信息:
- GitHub存储库搜索:查找相关存储库 - GitHub代码搜索:搜索代码示例和实现 - 堆栈交换:Stack Overflow和相关网站的技术问答
- 学术研究:
- 档案:学术论文和预印本 - 专利检索:知识产权和创新跟踪
- 时事:
- 新闻API:最近的新闻和发展 - 媒体监控:当前事件跟踪
- 内容提取:
- 消防爬行:Web内容提取和分析 - YouTube文字记录:视频内容转录
- 参考信息:
- 维基百科搜索:一般知识和参考 - 图书搜索:文献和书目信息
用法
基础示例
const worker = new ResearchWorker();
const result = await worker.research(
"What are the latest developments in quantum computing?",
3 // Research depth (1-5)
);
console.log(result.content[0].text);响应格式
interface ResearchResult {
answer: string; // Synthesized research answer
sources: Source[]; // List of sources used
confidence: number; // Overall confidence score (0-1)
metadata: {
executionTime: number;
iterations: number;
totalResults: number;
queryTypes: string[];
toolsUsed: string[];
toolResults: ToolResult[];
}
}设置和配置
先决条件
- Cloudflare Workers帐户
- Node.js 16+
- 牧马人CLI
必需的API密钥
# Core APIs
BRAVE_API_KEY=your_brave_api_key
TAVILY_API_KEY=your_tavily_api_key
GITHUB_TOKEN=your_github_token
FIRE_CRAWL_API_KEY=your_fire_crawl_api_key
NEWS_API_KEY=your_news_api_key
PATENTSVIEW_API_KEY=your_patentsview_api_key
# LLM APIs
OPENAI_API_KEY=your_openai_api_key
GROQ_API_KEY=your_groq_api_key
# Cloudflare Resources
SHARED_SECRET=your_shared_secret # For API authentication
RESEARCH_CACHE=your_kv_namespace # For result caching安装
- 克隆存储库:
git clone https://github.com/yourusername/research-orchestration-service.git
cd research-orchestration-service- 安装依赖项:
npm install- 配置环境变量:
cp .env.example .env
# Edit .env with your API keys- 部署到Cloudflare Workers:
wrangler publish配置选项
研究深度
这 depth 参数(1-5)控制:
- 研究迭代次数
- 使用的工具数量(深度\*1.5)
- 结果综合复杂性
工具选择
工具选择通过以下方式进行管理:
- 相关性评分
src/tools.ts - 查询类型的工具兼容性元数据
- 迭代之间的智能重用
- 上下文感知查询优化
批处理
系统使用批处理用于:
- 相关性评估(批量:5,平行批次:3)
- 差距分析(批量:8)
- 大型结果集的最终多样性通过
缓存
系统在多个级别实现缓存:
- 完整研究结果(TTL:3天)
- 单个工具执行
- 上下文元数据可提高缓存命中率
高级功能
有针对性的后续查询
该系统生成具有高度针对性的后续查询,这些查询:
- 特别关注缺失的信息
- 使用与已识别差距相关的精确术语
- 避免重复已收集的信息
- 包括对缺失方面的解释
智能刀具再利用
与避免工具重复的传统系统不同:
- 初始查询过滤掉以前使用过的工具
- 后续查询可以重用新方面的工具
- 防止连续重复完全相同的工具集
- 确保主题的全面覆盖
元数据丰富执行
工具执行包括丰富的上下文:
- 迭代次数
- 原始查询和当前查询
- 后续查询指标
- 提取的URL和媒体ID
错误处理
该服务实现了全面的错误处理:
- 临时故障的自动重试
- 工具故障的回退策略
- 详细的错误报告
- 请求验证
未来改进
- \[\]添加对更专业的研究工具的支持
- \[\]实施高级缓存策略
- \[\]通过更好的NLP增强查询理解
- \[\]添加对特定领域研究工作流程的支持
- \[\]改进来源验证和事实核查
- \[\]添加对实时更新和流式结果的支持
- \[\]实行限速定额管理
- \[\]添加对自定义工具配置的支持
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
该项目利用了多个API和服务:
- 勇敢的搜索API用于网络搜索
- Tavily AI用于增强搜索
- 用于代码搜索的GitHub API
- arXiv API用于学术研究
- 新闻API当前事件
- 用于图书信息的开放式图书馆API
- 专利查看API获取专利信息
- Cloudflare Workers用于托管和执行
- 用于AI处理的OpenAI和Groq API
特别感谢:
- Octotools团队启发编排组件架构
- 所有API提供商和开源社区使该项目成为可能。
