Skip to content

c4thmy/iflow-rag-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

心流RAG问答系统 (iFlow RAG Q&A System)

基于心流大模型和LangChain的智能文档问答系统,支持多种文档格式的知识库构建和智能问答。

功能特点

  • 🤖 智能问答: 基于心流大模型的自然语言问答
  • 📚 多格式支持: 支持PDF、TXT、Markdown文档
  • 🔍 向量检索: 使用ChromaDB/FAISS进行高效向量存储和检索
  • 🌐 Web界面: 基于Streamlit的直观Web界面
  • 📊 实时监控: 系统状态和知识库统计
  • 💾 会话历史: 对话记录保存和导出
  • ⚙️ 灵活配置: 支持多种模型和参数配置

系统架构

├── @cc-code/                    # 主要代码目录
│   ├── ccc_rag_system.py       # RAG系统核心逻辑
│   ├── ccc_iflow_api.py        # 心流API接口封装
│   ├── ccc_document_processor.py # 文档处理模块
│   ├── ccc_config.py           # 配置管理
│   ├── ccc_streamlit_app.py    # Web界面
│   └── requirements.txt        # 依赖包列表
├── @cc-doc/                    # 文档目录
├── @doc/                       # 问答记录
└── .env.example                # 环境变量模板

快速开始

1. 环境准备

# 克隆项目
git clone <repository-url>
cd 4-ai-iflow-api

# 安装依赖
pip install -r @cc-code/requirements.txt

2. 配置环境

# 复制环境变量模板
cp @cc-code/.env.example .env

# 编辑.env文件,配置您的心流API密钥
# IFLOW_API_KEY=your_api_key_here

3. 启动系统

# 使用启动脚本
@cc-code/start.sh

# 或直接启动Streamlit
streamlit run @cc-code/ccc_streamlit_app.py

4. 使用系统

  1. 打开浏览器访问 http://localhost:8501
  2. 在侧边栏上传文档或加载文档目录
  3. 等待文档处理完成
  4. 开始智能问答

配置说明

环境变量配置

变量名 说明 默认值
IFLOW_API_KEY 心流API密钥 必需
IFLOW_BASE_URL API基础地址 https://apis.iflow.cn/v1
IFLOW_MODEL 使用的模型 qwen3-max
VECTOR_DB_TYPE 向量数据库类型 chroma
CHUNK_SIZE 文档分块大小 1000
CHUNK_OVERLAP 块重叠大小 200

支持的模型

  • qwen3-max (默认) - 通义千问3.0最大版
  • kimi-k2 - Kimi K2模型
  • deepseek-v3 - DeepSeek V3模型
  • glm4.6 - GLM 4.6模型

主要模块

RAG系统 (ccc_rag_system.py)

  • 知识库管理和向量存储
  • 文档检索和上下文生成
  • 问答逻辑和结果组装

心流API (ccc_iflow_api.py)

  • 心流大模型API封装
  • 请求管理和错误处理
  • 流式和非流式响应支持

文档处理 (ccc_document_processor.py)

  • 多格式文档解析
  • 文本分块和向量化
  • 批量处理和进度跟踪

Web界面 (ccc_streamlit_app.py)

  • 用户交互界面
  • 系统状态监控
  • 配置管理和历史记录

使用示例

Python API调用

from ccc_rag_system import rag_system

# 添加文档
rag_system.add_documents("./docs")

# 查询问答
response = rag_system.query("什么是RAG系统?")
print(response.answer)

批量文档处理

from ccc_document_processor import DocumentProcessor

processor = DocumentProcessor()
documents = processor.process_directory("./knowledge_base")

开发指南

项目结构说明

  • @cc-code/: 主要代码文件,包含核心功能实现
  • @cc-doc/: 代码修改说明和技术文档
  • @doc/: 问答记录和用户文档
  • .claude/: Claude Code配置文件

代码规范

  • 遵循PEP 8 Python代码规范
  • 使用类型注解增强代码可读性
  • 添加详细的文档字符串
  • 实现适当的错误处理和日志记录

故障排除

常见问题

  1. API连接失败

    • 检查网络连接
    • 验证API密钥正确性
    • 确认API配额是否充足
  2. 文档加载失败

    • 检查文件格式是否支持
    • 确认文件路径正确
    • 查看错误日志信息
  3. 向量数据库错误

    • 清理数据库目录重新初始化
    • 检查磁盘空间是否充足
    • 验证依赖包版本兼容性

日志调试

# 查看详细日志
export LOG_LEVEL=DEBUG
streamlit run @cc-code/ccc_streamlit_app.py

贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

许可证

本项目基于 MIT 许可证开源 - 查看 LICENSE 文件了解详情。

致谢

联系方式

如有问题或建议,请通过以下方式联系:


注意: 使用前请确保已获得心流API的使用权限,并妥善保管API密钥。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors