DataChad 项目介绍
DataChad 是一个革命性的数据查询应用程序,旨在让用户能够方便地从任何数据源中提问并获取答案。该应用程序利用嵌入技术、向量数据库、大型语言模型等先进技术,为用户提供智能化的数据查询解决方案。
应用工作原理
-
数据上传和知识库创建:用户可以上传任意格式、内容的文件,或通过路径或 URL 导入数据。这些数据将被组织成多个知识库,并提供智能 FAQ 功能,这些功能是经过精心策划的编号问答列表。
-
文件处理:导入的数据源或文件会被分割成多个文本文档块。
-
嵌入文本块:每个文档块会使用 OpenAI 或 huggingface 的嵌入技术进行处理。
-
存储嵌入:处理后的嵌入作为向量数据集储存在 activeloop 的数据库中心。
-
创建 LangChain:应用会创建一个 LangChain,包括自定义选择的 LLM 模型(默认是
gpt-3.5-turbo
)、多种作为知识库的向量存储和一个特殊的智能 FAQ 向量存储。 -
问题查询:在用户提问时,应用会将输入的提示嵌入到链中,并在提供的向量存储中做相似性搜索,使用最佳结果作为上下文,由 LLM 生成适当的响应。
-
聊天记录缓存:类似 ChatGPT 的问答对话管理,将聊天记录缓存到本地,以便后续使用。
应用运行要求
- Python 版本要求:应用需运行在 Python 3.10 及以上版本。
- 使用环境配置:在本地或部署时,用户需执行
cp .env.template .env
并在.env
文件中设置凭证。此外,还可以通过设置系统环境变量或在 Streamlit 上托管时存储于.streamlit/secrets.toml
中。 - 身份验证:若凭证已设置,用户可简单地在身份验证界面点击“提交”,无需再次输入凭证。
- 配置修改:若需要启动应用,建议修改
datachad/backend/constants.py
中的配置,如启用高级选项。 - 排除故障:若数据无法加载,用户可随时提交 Issue 或 PR 以协助改进。
界面预览
DataChad 的界面直观友好,用户体验极佳,功能也在不断改进。
待办事项
DataChad 项目目前已实现的一些功能包括:重构工具、添加选择模型和嵌入的选项、本地/私有模式、多文件上传、模块解耦、删除本地模式、加载/删除知识库、流式响应、展示检索上下文、重构 UI、引入智能 FAQ 等。
未来计划包含:
- 使用临时文件替换已下载的文件存储。
- 添加用户创建和登录功能。
- 为每个用户提供聊天历史功能。
- 实现所有 I/O 的异步化。
- 设置 FastAPI 路由和后端应用。
- 实施规范的前端(React 或其他)。
- 应用容器化。
DataChad 项目不仅对技术爱好者是一个学习的良好平台,也欢迎更多开发者参与贡献,共同提升其功能和性能。