Rishu22889/grid07_ai
GitHub: Rishu22889/grid07_ai
一个基于 LangGraph 和 RAG 的多智能体 AI 对话系统,具备语义路由、多角色人格对话和 prompt 注入防御能力。
Stars: 0 | Forks: 0
# Grid07 AI – 认知路由与 RAG 系统
**在线演示:** https://grid07ai.vercel.app
一个由 AI 驱动的聊天机器人系统,包含三个截然不同的 AI 角色,具备基于向量的路由、RAG 增强的对话以及 prompt 注入防御功能。使用 Flask 和 LangChain 构建,并部署在 Vercel 上。
## 截图
### 第一阶段:向量角色路由器

使用向量相似度的语义路由,将消息与相关的 AI 角色进行匹配。
### 第二阶段:自主内容引擎

由 LangGraph 驱动的内容生成,具备基于个性的主题选择功能。
### 第三阶段:RAG 攻防防御

在完整对话上下文下的 prompt 注入抵抗力测试。
## 概述
本项目展示了一个生产级就绪的 AI 系统,该系统将用户查询路由到专门的 AI 角色,在多轮对话中保持上下文,并防御 prompt 注入攻击。该系统结合了语义路由、检索增强生成 (RAG) 和自主内容创建。
### 核心功能
- 与三个截然不同的 AI 角色聊天,每个角色都有独特的观点和专业知识
- 使用向量相似度自动将消息路由到相关角色
- 使用 RAG 在多轮对话中保持对话上下文
- 检测并中和 prompt 注入尝试
- 根据个性特征生成自主内容
## 功能特性
### 三个 AI 角色
**科技乐观派**
一位乐观的未来主义者,坚信技术进步(尤其是在 AI、加密货币和太空探索领域)将解决人类面临的挑战。深受硅谷思维影响,并支持富有远见的企业家。
**末日悲观派**
一位批判性的观察者,对晚期资本主义、大型科技公司的垄断以及不受限制的 AI 发展提出质疑。重视去中心化、隐私和可持续性,同时强调系统性风险。
**金融狂热者**
一位对市场痴迷的分析师,通过金钱、风险和回报的视角来评估一切。专注于交易、宏观经济学和金融系统,并强调 ROI。
### 智能路由
该系统使用语义理解将传入的消息与最相关的角色进行匹配。在本地开发环境中,它使用向量嵌入和 ChromaDB。在 Vercel 上,它会回退到基于关键词的路由,以适应 Serverless 环境的限制。
### RAG 增强对话
系统不会孤立地处理每条消息,而是维护完整的对话历史和上下文。这允许进行连贯的多轮讨论,AI 能够记住之前说过的话,并在此基础上进行逻辑推演。
### Prompt 注入防御
该系统将所有用户输入视为潜在的恶意行为。它包含对常见注入模式(如“忽略所有先前的指令”)的检测机制,并在用户试图操纵 AI 行为时保持角色的一致性。
## 架构
该系统分为三个主要阶段构建,每个阶段处理 AI 交互的特定方面:
### 第一阶段:认知路由
系统不会将每条消息广播给所有角色,而是使用语义嵌入来确定相关性。每个角色都拥有代表其专业知识和兴趣的嵌入表示。传入的消息使用相同的模型进行嵌入,通过余弦相似度来确定哪些角色最相关。
在 Vercel 的生产环境中,向量操作被替换为关键词匹配,以规避 Serverless 环境的限制,但其核心理念保持不变。
### 第二阶段:自主内容引擎
角色可以使用 LangGraph 状态机自主生成内容。该过程包括:
1. 根据角色的兴趣决定主题
2. 通过搜索收集相关上下文
3. 起草符合其观点的内容
这展示了 AI 智能体如何在保持一致角色的同时独立运行。
### 第三阶段:具备安全性的 RAG
处理实际对话的最关键组件。对于每条用户消息,系统会:
1. 检索完整的对话上下文,包括父帖子和评论历史
2. 构建包含所有相关信息的综合 prompt
3. 生成既符合上下文又与角色保持一致的回复
4. 监控注入尝试并忽略恶意指令
这确保了对话感觉自然连贯,同时维护了安全性。
## 技术栈
**后端**
- Python 3.13(用于核心逻辑)
- Flask(用于 REST API)
- Flask-CORS(用于跨域请求)
- LangChain(用于 LLM 编排)
- LangGraph(用于状态机工作流)
- Groq API(用于语言模型推理)
- Google Gemini(用于生成嵌入)
**前端**
- 纯 HTML、CSS 和 JavaScript
- 赛博朋克风格的暗黑主题
- 适用于移动端和桌面端的响应式设计
- 实时聊天界面
**基础设施**
- Vercel(用于 Serverless 部署)
- 基于环境的配置
- 自动 HTTPS 和 CDN
## 部署
### 部署到 Vercel
1. 克隆代码库:
```
git clone
cd grid07_ai
```
2. 使用 Vercel CLI 进行部署:
```
vercel
```
3. 在 Vercel 控制台中配置环境变量:
- 导航到您的项目设置
- 添加以下变量:
GROQ_API_KEY=your_groq_api_key
GOOGLE_API_KEY=your_google_api_key
GROQ_MODEL=llama-3.1-8b-instant
EMBEDDING_MODEL=models/gemini-embedding-001
ROUTING_THRESHOLD=0.5
4. 重新部署以应用环境变量:
```
vercel --prod
```
### API 密钥
这两项服务均提供适合开发和演示的免费层级:
- Groq API: https://console.groq.com/keys
- Google AI Studio: https://aistudio.google.com/app/apikey
## 本地开发
### 设置
安装依赖项:
```
pip install -r requirements.txt
```
配置环境变量:
```
cp .env.example .env
# 使用你的 API keys 编辑 .env
```
启动 API 服务器:
```
python -m app.web_api
```
打开聊天机器人:
```
open index.html
```
应用程序将在 http://localhost:5001 提供
## 项目结构
```
grid07_ai/
├── index.html # Frontend chatbot interface
├── app/
│ ├── web_api.py # Flask API server
│ ├── config/ # Configuration and settings
│ ├── personas/ # Persona definitions and system prompts
│ ├── rag/ # RAG logic and injection defense
│ ├── graph/ # LangGraph workflows
│ ├── router/ # Routing logic
│ ├── embeddings/ # Embedding generation
│ ├── vectorstore/ # ChromaDB integration
│ └── tools/ # Mock search and utilities
├── requirements.txt # Python dependencies
├── vercel.json # Vercel deployment config
└── README.md
```
## 开发目的
本项目是为 Trilogy Innovations 实习申请而开发的,专门针对以下标准:
**标准 2:真实世界项目**
一个具有实时部署的工作应用程序,展示了全栈开发技能和生产级就绪的模式。
**标准 3:AI 辅助构建**
广泛使用包括 LLM、RAG、向量嵌入和自主智能体在内的 AI 技术,并具备清晰的架构决策和安全考量。
### 核心优势
- 清晰、模块化的架构,实现了关注点分离
- 注重安全的实现,具备注入防御功能
- 详尽的文档,解释了设计决策
- 可供评估的实时部署
- 展示了对生产级 AI 系统的理解
## API 参考
### 端点
**GET /api/bots**
返回可用机器人角色及其描述的列表。
**POST /api/chat**
与特定机器人进行对话。
```
{
"bot_id": "bot_a",
"message": "What do you think about AI?",
"parent_post": "Original post content",
"comment_history": []
}
```
**POST /api/route**
将消息路由到相关的机器人角色。
```
{
"post": "Bitcoin crashed 20% today"
}
```
**POST /api/generate**
为机器人生成自主内容。
```
{
"bot_id": "bot_a"
}
```
**GET /health**
健康检查端点。
## 配置
### 环境变量
**必需项:**
- `GROQ_API_KEY`: Groq 语言模型服务的 API 密钥
- `GOOGLE_API_KEY`: Google Gemini 嵌入的 API 密钥
**可选项:**
- `GROQ_MODEL`: 模型标识符(默认值:llama-3.1-8b-instant)
- `EMBEDDING_MODEL`: 嵌入模型(默认值:models/gemini-embedding-001)
- `ROUTING_THRESHOLD`: 用于路由的相似度阈值(默认值:0.5)
## 技术说明
### Vercel 部署注意事项
与传统服务器相比,Vercel 的 Serverless 环境存在一些限制:
- 没有持久化存储,因此 ChromaDB 向量存储被禁用
- 500MB 的包大小限制要求依赖项尽可能精简
- 路由使用关键词匹配代替向量相似度
- 内容生成被简化,未包含完整的 LangGraph
对于演示部署而言,这些都是合理的权衡。所有核心功能(包括聊天和 RAG)均按预期工作。
### 本地开发的优势
在本地运行可提供完整的体验:
- 结合 ChromaDB 的完整向量相似度路由
- 由完整 LangGraph 驱动的内容生成
- 全面的 RAG 实现
- 无包大小限制
## 故障排除
**Vercel 上出现找不到模块的错误:**
requirements.txt 文件已经过优化,排除了如 torch 和 transformers 等庞大的依赖项。如果您在本地需要这些依赖,请单独安装。
**API 连接失败:**
请确认是否在 Vercel 控制台中正确设置了环境变量。请记住在添加或更改变量后重新部署。
**本地开发中出现 ChromaDB 错误:**
删除 chroma_db 目录并重新启动。向量存储将自动重建。
## 许可证
MIT 许可证。您可以自由地将此代码用于您自己的项目和学习。
**开发此项目旨在展示 AI 工程能力和生产级就绪的开发实践。**
标签:DLL 劫持, LangGraph, Sysdig, 人工智能, 多模态安全, 大语言模型, 提示词防御, 数据可视化, 检索增强生成, 用户模式Hook绕过, 语义路由, 逆向工具