insight

command module
v0.0.0-...-cf5b36a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2026 License: MIT Imports: 29 Imported by: 0

README

Insight

License go.dev reference github actions Go Report Card Coverage Status

Insight 是一个基于多智能体架构的深度研究助手,使用 Go 语言构建,能够自主对任何主题进行深度研究,生成结构化的研究报告。

简介

Insight 通过编排多个 AI 智能体协同工作,将复杂的研究任务分解为可管理的步骤,系统地收集信息,并最终生成专业的 HTML 格式报告。

核心特点
  • 多智能体协作:9 个专业智能体协同工作
  • 反思与修订:每个章节自动反思,最多修订 5 次确保质量
  • 多种搜索源:支持微信、知乎、GitHub、Google Scholar、Tavily 等
  • 实时进度:SSE 实时推送研究进度
  • 智能缓存:历史查询秒开,节省成本
  • 报告分享:生成可分享的永久链接
  • 播客脚本:一键将研究报告转化为对话脚本

工作原理

用户查询
    ↓
查询分析 (识别意图、优化查询)
    ↓
结构规划 (生成报告大纲)
    ↓
研究规划 (为每个章节制定研究计划)
    ↓
研究执行 (多源搜索收集信息)
    ↓
内容撰写 (逐章节撰写报告)
    ↓
内容反思 (检查完整性)
    ↓
内容修订 (补充不足信息) ←────┐
    ↓                        │
内容反思 (再次检查) ──────────┘
    ↓
报告生成 (合成最终 HTML)
    ↓
播客脚本 (可选,生成对话)
    ↓
完成

快速开始

安装
# 克隆仓库
git clone https://github.com/smallnest/insight.git
cd insight

# 设置环境变量
export OPENAI_API_KEY="your-api-key-here"

# 可选:使用 DeepSeek 等兼容接口
export OPENAI_API_BASE="https://api.deepseek.com/v1"

# 编译
go build -o Insight .
使用方式

Web 界面(推荐)

./Insight

打开浏览器访问 http://localhost:8085

命令行模式

./Insight "量子计算的最新进展是什么?"

智能体说明

智能体 职责
query_agent 分析用户意图,优化查询词,提取实体信息
structure_planner 生成报告的整体结构和大纲
planner 为每个章节制定详细的研究计划
researcher 执行搜索,收集研究资料
content_writer 撰写报告内容
reflector 反思内容完整性,识别需要补充的信息
reviser 根据反思结果修订和补充内容
reporter 合成最终报告,添加格式和样式
podcast 生成播客对话脚本

搜索工具

项目集成了多种搜索工具,按类别组织:

类别 工具 说明
社交媒体 微信搜索 搜索微信公众号文章
社交媒体 知乎搜索 搜索知乎问答和文章
代码开发 GitHub 搜索 搜索 GitHub 仓库和代码
学术科研 Google Scholar 搜索学术论文
通用搜索 Tavily AI 增强的通用搜索

API 接口

POST /api/run

执行研究查询,返回 SSE 流。

参数:

  • query (required): 研究问题

事件类型:

  • update: 进度更新
  • log: 研究过程日志
  • result: 最终报告
  • error: 错误信息
GET /api/history

获取研究历史记录。

POST /api/share

生成报告分享链接。

GET /reports/{id}

查看分享的报告。

配置

环境变量
变量 说明 默认值 必需
OPENAI_API_KEY API 密钥 -
OPENAI_API_BASE API 基础 URL OpenAI
TAVILY_API_KEY Tavily 搜索密钥 -
修改端口

编辑 main.go 中的端口号:

server := &http.Server{
    Addr: ":8085",  // 修改此处
    ReadHeaderTimeout: 3 * time.Second,
}

项目结构

insight/
├── main.go              # 程序入口,HTTP 服务器
├── graph.go             # 工作流图定义
├── nodes.go             # 智能体节点实现
├── search_helper.go     # 搜索辅助函数
├── nginx.conf           # Nginx 配置
├── web/                 # 前端资源
│   ├── index.html
│   ├── styles.css
│   └── script.js
├── tool/                # 搜索工具
│   ├── registry.go      # 工具注册中心
│   ├── search.go        # 基础接口
│   ├── wechat.go        # 微信搜索
│   ├── zhihu.go         # 知乎搜索
│   ├── github.go        # GitHub 搜索
│   ├── scholar.go       # 学术搜索
│   └── tavily.go        # Tavily 搜索
├── data/                # 研究结果存储
└── README.md

示例

技术研究:

./Insight "2024 年 AI 领域有哪些突破性进展?"

商业分析:

./Insight "分析跨境电商的最新趋势和机遇"

学术调研:

./Insight "大语言模型在医疗诊断中的应用研究"

生成播客:

./Insight "制作一期关于区块链技术的播客节目"

技术栈

常见问题

Q: 如何使用其他 LLM 提供商?

A: 设置 OPENAI_API_BASE 环境变量指向兼容的 API 端点。

Q: 研究结果保存在哪里?

A: 保存在 data/ 目录下,每个查询一个文件夹。

Q: 如何修改最大修订次数?

A: 编辑 graph.go 中的 MaxRevisions 默认值。

许可证

MIT License

链接

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL