Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] Add PaddlePaddle docs qa bot #927

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 146 additions & 0 deletions rfcs/Docs/飞桨文档&代码仓库问答应用.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
# 飞桨文档&代码仓库问答应用

|领域 | 飞桨文档&代码仓库问答应用 |
|---|--------------------------------|
|提交作者<input type="checkbox" class="rowselector hidden"> | sanbuphy (欢迎更多朋友加入) |
|提交时间<input type="checkbox" class="rowselector hidden"> | 2023-07-21 |
|版本号 | V1.0 |
|依赖飞桨版本<input type="checkbox" class="rowselector hidden"> | paddlepaddle>3.0beta |
|文件名 | 飞桨文档&代码仓库问答应用.md<br> |

# 一、概述

## 1、相关背景


飞桨(PaddlePaddle)是中国首个自主研发、功能完备、开源开放的深度学习平台,其文档和代码仓库是用户理解和使用飞桨的关键资源。为了提升用户体验,提供高效的问答服务,我们开发了飞桨文档&代码仓库问答机器人。

## 2、目标与特性

### 低设备要求

问答机器人设计为在低配置设备上也能高效运行,降低用户硬件门槛。

### 检索意图识别

通过自然语言处理技术,精准识别用户意图,提高问答准确性。

### 多信息联动支持

对于多个向量索引库,支持同时检索多个向量数据库,综合多个数据库信息进行 QA,增强数据完整性,对多主体关系友好.

- 例: 请问 paddlecls 和 paddleslim 的关系是什么

### 仓库 README 更新定时推送

根据每次更新的配置信息,支持依据飞桨各仓库 README 更新配置增量构建数据库 ,确保用户获取最新信息。

### 增量信息修正(action)


## 3、意义

- 提升用户体验,帮助用户更高效地查找和理解飞桨文档和代码。
- 减少用户学习成本,推广飞桨生态。

# 二、飞桨现状

飞桨作为国内领先的深度学习平台,涵盖了丰富的文档和代码资源。
文档和代码仓库资源繁多,用户查找和学习成本较高。


# 三、设计思路与实现方案

## 1、 总述

本项目通过构建一个智能问答机器人,实现对飞桨文档和代码仓库的智能问答服务。该机器人将利用自然语言处理技术、向量数据库检索、LLM 对话模块等技术手段,实现高效的问答服务。

## 2、 架构设计

机器人整体架构包括用户意图分类模块、文档转化与向量预处理模块、LLM 对话模块、Embedding 及 Rerank 模块、异常状况处理模块、RAG 技术洞察模块、前端设计模块等。


## 3、 用户意图分类

利用自然语言处理技术,分析用户输入,识别用户意图,分类为不同的问答需求,如文档查询、代码示例查询、关系查询等。

## 4、 文档转化与向量预处理

### 文档格式转化

#### rst2md

#### pdf2md

#### html2md

#### video2md/audio2md

### 文档切分规则

- 针对单文章多语义分布的情况

- 普通文章

### 向量数据库

#### 本地向量数据库

#### 在线向量数据库

## 5、LLM 对话模块

### 利用文心一言在线api

### cpu 本地运行推理

### gpu 本地运行推理

## 6、Embedding 及 Rerank 模块

### 在线 Embedding 模型

### 本地 Embedding 模型洞察

### 本地 Rerank 模型洞察

### 利用 openvino 部署向量模型

## 7、异常状况

#### 意图分类错误

#### query 匹配程度低

## 8、 RAG 技术洞察

### 常见问题

### 召回精度提高

### RAG幻觉

### 语义冲突

### graphRAG

## 9、 前端设计


## 10、 其他

# 四、测试和验收的考量

1. 完成所有代码并开源,代码交付 Pfcc Lab 社区维护

2. 效果高可用,代码高可维护

3. 应用部署至星河社区

# 五、排期规划



# 六、影响面

本项目对各仓库无直接影响关联,但会提升用户对飞桨文档和代码仓库的访问和使用体验,促进飞桨生态系统的推广和应用。