综合介绍
Curiosity 是一个旨在探索和实验的项目,主要使用 LangGraph 和 FastHTML 技术栈,目标是构建一个类似 Perplexity AI 的搜索产品。项目的核心是一个简单的 ReAct Agent,利用 Tavily 搜索来增强文本生成。Curiosity 支持多种大型语言模型(LLMs),包括 OpenAI 的 gpt-4o-mini、Groq 的 llama3-groq-8b-8192-tool-use-preview 和 Ollama 的 llama3.1:latest。该项目不仅注重技术实现,还在前端设计上花费了大量时间,以确保视觉和交互体验的高质量。
功能列表
- 使用 LangGraph 和 FastHTML 技术栈
- 集成 Tavily 搜索增强文本生成
- 支持多种 LLMs,包括 gpt-4o-mini、llama3-groq 和 llama3.1
- 提供灵活的后端切换功能
- 前端使用 FastHTML 构建,支持 WebSockets 流式传输
使用帮助
安装步骤
- 克隆仓库:
git clone https://github.com/jank/curiosity
- 确保有最新的 Python3 解释器。
- 设置虚拟环境并安装依赖:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
- 创建
.env
文件并设置以下变量:OPENAI_API_KEY=<your_openai_api_key> GROQ_API_KEY=<your_groq_api_key> TAVILY_API_KEY=<your_tavily_api_key> LANGCHAIN_TRACING_V2=true LANGCHAIN_ENDPOINT="https://api.smith.langchain.com" LANGSMITH_API_KEY=<your_langsmith_api_key> LANGCHAIN_PROJECT="Curiosity"
- 运行项目:
python curiosity.py
使用指南
- 启动项目:运行
python curiosity.py
后,项目会启动并在本地服务器上运行。 - 选择 LLM:根据需求选择合适的 LLM(如 gpt-4o-mini、llama3-groq 或 llama3.1)。
- 使用 Tavily 搜索:在对话中输入查询,ReAct Agent 会利用 Tavily 搜索增强文本生成。
- 前端交互:项目前端使用 FastHTML 构建,支持 WebSockets 流式传输,确保实时响应。
常见问题
- 如何切换 LLM:在
.env
文件中配置相应的 API 密钥,并在启动项目时选择所需的 LLM。 - WebSockets 问题:如果遇到 WebSockets 无故关闭的问题,建议检查网络连接和服务器配置。