使用说明
🧠 突触
具有工具、内存和实时流的模块化AI助手
使用LangGraph、LangChain和Cohere构建
📖 概述
突触 是一个基于图形的人工智能助手,结合了 LangGraph编排, 工具感知推理,以及 会话记忆 成为时尚的Streamlit界面。专为希望以最小的摩擦创建智能、上下文感知聊天机器人的开发人员而设计。
为什么选择SYNAPSE?
- 🎯 模块化设计 --易于使用新工具和功能进行扩展
- 🔄 基于图的推理 --使用LangGraph进行复杂的代理编排
- 💾 会话记忆 --在多回合对话中保持上下文
- ⚡ 实时流媒体 --逐个令牌生成响应
- 🛠️ 工具集成 --网络搜索、股票价格和自定义工具
- 🎨 干净的UI --具有会话管理功能的专业Streamlit界面
✨ 特性
🤖 AI核心
|
🎨 用户体验
|
🛠️ 工具和集成
|
💾 内存和状态
|
🏗️ 建筑
SYNAPSE遵循一个干净的模块化架构,将关注点分开以实现最大的灵活性:
graph TB
A[Streamlit Frontend] -->|User Input| B[LangGraph StateGraph]
B -->|Process| C[ChatCohere LLM]
C -->|Decision| D{Tool Needed?}
D -->|Yes| E[ToolNode]
D -->|No| F[Direct Response]
E -->|Execute| G[Tool Functions]
G -->|Results| C
C -->|Stream| A
B ---|Memory| H[(Checkpoint Store)]
style A fill:#ff6b6b
style B fill:#4ecdc4
style C fill:#45b7d1
style E fill:#96ceb4
style H fill:#ffeaa7
部件分解
| 组件 | 文件 | 责任 |
|---|---|---|
| 后端 | Backend.py |
LangGraph状态管理、LLM编排、工具路由 |
| 前端 | Frontend.py |
流式UI、对话管理、流式显示 |
| 工具 | Tools.py |
工具定义、网络搜索、股票价格、自定义功能 |
📂 项目结构
synapse-ai/
│
├── 📄 Backend.py # Core agent logic & graph orchestration
├── 🎨 Frontend.py # Streamlit chat interface
├── 🛠️ Tools.py # Tool definitions & implementations
├── 📋 requirements.txt # Python dependencies
├── 🔐 .env.example # Environment variable template
└── 📖 README.md # Project documentation
⚙️ 设置
先决条件
- Python 3.8+
- 相干API密钥 (在这里买一个)
1.️⃣ 克隆存储库
git clone https://github.com/Nabin68/SYNAPSE.git
cd SYNAPSE
2.️⃣ 再进行
pip install -r requirements.txt
所需软件包:
langchain
langchain-cohere
langgraph
streamlit
python-dotenv
duckduckgo-search
yfinance
3.️⃣ 配置环境
创建 .env 项目根目录中的文件:
COHERE_API_KEY=your_cohere_api_key_here
💡 提示: 复制
.env.example到.env并填写您的API密钥
🚀 用法
运行应用程序
streamlit run Frontend.py
应用程序将在默认浏览器中打开 http://localhost:8501
使用聊天界面
- 开始聊天 --在输入框中键入您的消息
- 观看实时响应 --看到AI通过流媒体实时响应
- 切换对话 --使用侧边栏创建或切换线程
- 工具使用 --AI会在需要时自动使用工具(搜索、股票价格等)
交互示例
User: What's the current price of Apple stock?
🧠 SYNAPSE: [Uses stock price tool]
The current price of AAPL is $195.83...
User: Search for the latest AI news
🧠 SYNAPSE: [Uses web search tool]
Here are the latest developments in AI...
🛠️ 扩展SYNAPSE
添加新工具
在中创建新工具 Tools.py:
@tool
def my_custom_tool(query: str) -> str:
"""Description of what your tool does"""
# Your implementation
return result
在工具列表中注册:
tools = [web_search, stock_price, my_custom_tool]
自定义LLM
修改 Backend.py 使用不同的模型或提供商:
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-4", temperature=0.7)
🔮 路线图
即将推出
- [ ] 💾 基于SQLite的持久内存 --长期对话存储
- [ ] 📚 RAG集成 --文档问答与知识检索
- [ ] 🔌 MCP服务器支持 --模型上下文协议集成
- [ ] 🧰 扩展工具库 --天气、新闻、计算等
- [ ] 🎨 主题定制 --深色模式和自定义配色方案
- [ ] 📊 分析仪表板 --对话见解和使用统计数据
- [ ] 🌐 多语言支持 --国际化
- [ ] 🔒 认证 --用户帐户和访问控制
🤝 贡献
欢迎投稿!以下是您可以提供帮助的方式:
- 分叉 存储库
- 创建 特征分支(
git checkout -b feature/AmazingFeature) - 提交 您的更改(
git commit -m 'Add some AmazingFeature') - 推 到分行(
git push origin feature/AmazingFeature) - 打开 拉取请求
开发指南
- 遵循PEP 8风格指南
- 向新函数添加文档字符串
- 更新README以获取新功能
- 提交前进行彻底测试
📝 许可证
该项目根据 MIT许可证 -看看 许可证 文件以获取详细信息。
👤 作者
那宾
- github: @Nabin68
- 领英: Nabin Rouniyar
🙏 致谢
📞 支持
如果您遇到任何问题或有疑问:
⭐ 如果你觉得这个repo有用,请将其标记为星号!
由...制作❤️ 通过Nabin
