使用说明
代理RAG PoC-SEC文件分析仪
代理RAG(检索增强生成)系统的概念证明,该系统使用Redis矢量数据库、MCP服务器和GPT-4o-mini分析特斯拉、英伟达和Netflix的SEC文件(10-K、10-Q、8-K)。
架构概述
技术栈
- 语言:Python 3.10+
- 后端:FastAPI
- 前端:流光灯
- LLM框架:朗链
- LLM:GPT-4o-mini
- 嵌入:OpenAI文本嵌入-3大(3072个维度)
- 矢量数据库:带有RediSearch的Redis
- 连接层:Redis MCP服务器(Docker)
- 数据源:秒埃德加
项目结构
agentic-rag-poc/
├── backend/
│ ├── app.py # FastAPI main
│ ├── agents/
│ │ ├── __init__.py
│ │ ├── sec_agent.py # Main agent logic
│ │ └── tools.py # Agent tools
│ ├── data_pipeline/
│ │ ├── __init__.py
│ │ ├── downloader.py # SEC filing downloader
│ │ ├── parser.py # Document parser
│ │ ├── chunker.py # Text chunking with context
│ │ └── embedder.py # Embedding generation
│ ├── database/
│ │ ├── __init__.py
│ │ ├── redis_client.py # Redis connection via MCP
│ │ └── vector_store.py # Vector operations
│ └── config/
│ └── settings.py # Configuration
├── frontend/
│ └── streamlit_app.py # Streamlit UI
├── data/
│ └── filings/ # Downloaded filings
├── notebooks/
│ └── testing.ipynb # Testing notebook
├── docker-compose.yml # For Redis & MCP
├── requirements.txt
└── .env # API keys
入门指南
先决条件
- Python 3.10或更高版本
- Docker和Docker Compose
- OpenAI API密钥
安装
-
克隆存储库
git clone <repository-url> cd AgenticRAG-MCP -
设置环境变量
cp .env.example .env # Edit .env and add your OpenAI API key and other configurations -
创建虚拟环境
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
安装依赖项
pip install -r requirements.txt -
启动Redis和MCP服务器
docker-compose up -d
运行应用程序
-
启动FastAPI后端
cd backend uvicorn app:app --reload --host 0.0.0.0 --port 8000 -
启动Streamlit前端
cd frontend streamlit run streamlit_app.py -
访问应用程序
- 前端:http://localhost:8501
- 后端API:http://localhost:8000
- API文件:http://localhost:8000/docs
- 重新发现:http://localhost:8001
特性
- 自动SEC文件下载:下载特斯拉、英伟达和网飞的10-K、10-Q和8-K文件
- 智能文档解析:摘录并处理美国证券交易委员会文件中的相关章节
- 上下文感知分块:将文档拆分为有意义的块,同时保留上下文
- 矢量搜索:使用Redis矢量数据库进行高效的相似性搜索
- RAG代理:LangChain驱动的智能查询处理代理
- 交互式用户界面:基于Streamlit的查询和分析界面
组件
后端
- FastAPI服务器:用于数据接收和查询的RESTful API
- SEC代理人:LangChain代理,配备用于SEC文件分析的定制工具
- 数据管道:下载、解析、分块和嵌入SEC文档
- 向量存储:用于嵌入的基于Redis的向量数据库
前端
- Streamlit应用程序:用于查询SEC文件的交互式UI
- 可视化:显示结果、引用和文档元数据
配置
中的关键配置选项 .env:
OPENAI_API_KEY:您的OpenAI API密钥REDIS_HOST,REDIS_PORT:Redis连接详细信息EMBEDDING_MODEL:OpenAI嵌入模型(text-embedding-3-large)LLM_MODEL:LLM型号(gpt-4o-mini)CHUNK_SIZE,CHUNK_OVERLAP:文本分块参数
发展
测试
pytest
Jupyter 笔记本
探索 notebooks/ 测试和实验目录。
许可证
这是一个用于演示目的的概念验证项目。
致谢
- SEC EDGAR允许公众访问公司文件
- OpenAI用于LLM和嵌入模型
- Redis提供矢量数据库功能
- LangChain用于代理框架
