Skip to content

Commit

Permalink
update README.md and API.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Zihui Ren committed Jan 5, 2024
1 parent 1986d5f commit 63afd8d
Show file tree
Hide file tree
Showing 3 changed files with 144 additions and 51 deletions.
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,14 @@ vim docker-compose.yaml # change CUDA_VISIBLE_DEVICES to your gpu device id
```
docker-compose up -d
```
front_end: http://{your_host}:5052/qanything
api: http://{your_host}:5052/api/

After successful installation, you can experience the application by entering the following addresses in your web browser.

- Frontend address: http://{your_host}:5052/qanything

- API address: http://{your_host}:5052/api/

For detailed API documentation, please refer to [QAnything API 文档](docs/API.md)


## Usage
Expand Down
10 changes: 8 additions & 2 deletions README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,14 @@ vim docker-compose.yaml # change CUDA_VISIBLE_DEVICES to your gpu device id
```
docker-compose up -d
```
前端: http://{your_host}:5052/qanything
api: http://{your_host}:5052/api/

安装成功后,即可在浏览器输入以下地址进行体验。

- 前端地址: http://{your_host}:5052/qanything

- api地址: http://{your_host}:5052/api/

详细API文档请移步[QAnything API 文档](docs/API.md)

## 使用
### 跨语种:多篇英文论文问答
Expand Down
175 changes: 128 additions & 47 deletions docs/API.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,80 @@

# QAnything接口文档
QAnything接口文档
==================

<details open="open">
<summary>目录</summary>

- [全局参数](#全局参数)
- [新建知识库](#新建知识库)
- [上传文件](#上传文件)
- [查看知识库](#查看知识库)
- [获取文件列表](#获取文件列表)
- [对话](#对话)
- [删除文件](#删除文件)
- [删除知识库](#删除知识库)

<!-- TOC -->

- [全局参数](#全局参数)
- [新建知识库(POST)](#新建知识库post)
- [URL](#url)
- [请求参数(Body)](#请求参数body)
- [请求示例](#请求示例)
- [响应示例](#响应示例)
- [上传文件(POST)](#上传文件post)
- [URL](#url-1)
- [请求参数(Body)](#请求参数body-1)
- [请求示例](#请求示例-1)
- [响应示例](#响应示例-1)
- [查看知识库(POST)](#查看知识库post)
- [URL](#url-2)
- [请求参数(Body)](#请求参数body)
- [请求示例](#请求示例-2)
- [响应示例](#响应示例-2)
- [获取文件列表(POST)](#获取文件列表post)
- [URL](#url-3)
- [请求参数(Body)](#请求参数body-2)
- [请求示例](#请求示例-3)
- [响应示例](#响应示例-3)
- [问答(POST)](#问答post)
- [URL](#url-4)
- [请求参数(Body)](#请求参数body-3)
- [请求示例](#请求示例-4)
- [删除文件(POST)](#删除文件post)
- [URL](#url-5)
- [请求参数(Body)](#请求参数body-4)
- [请求示例](#请求示例-5)
- [响应示例](#响应示例-4)
- [删除知识库(POST)](#删除知识库post)
- [URL](#url-6)
- [请求参数(Body)](#请求参数body-5)
- [请求示例](#请求示例-6)
- [响应示例](#响应示例-5)

<!-- /TOC -->

</details>

## 全局参数
注意所有请求参数中的user\_id需要满足: 以字母开头,只允许包含字母,数字或下划线
我们提供用户区分的功能,每个接口中有user_id的参数,如果需要请传入user_id的值

user_id需要满足: 以字母开头,只允许包含字母,数字或下划线。

## 新建知识库
如果不需要用户区分,传入user_id="public"即可

URL:<http://0.0.0.0:8777/api/local_doc_qa/new_knowledge_base>

请求参数
## 新建知识库(POST)
### URL
<http://0.0.0.0:5052/api/local_doc_qa/new_knowledge_base>

### 请求参数(Body)
| 参数名 | 示例参数值 | 是否必填 | 参数类型 | 描述说明 |
| ---------------- | ---------------------------------- | ---- | ------- | ------------------------------------------ |
| user_id | "public" || String | 用户id |
| kb_name | "kb_test" || String | 知识库名称 |


### 请求示例
```json
{
"user_id": "public", //用户id
"kb_name": "kb_test" //知识库名称
}
```

响应示例
### 响应示例

```json
{
Expand All @@ -46,29 +86,32 @@ URL:<http://0.0.0.0:8777/api/local_doc_qa/new_knowledge_base>
}
}
```
## 上传文件
## 上传文件(POST)

### URL
<http://0.0.0.0:5052/api/local_doc_qa/upload_files>

URL:<http://0.0.0.0:8777/api/local_doc_qa/upload_files>

Content-Type: multipart/form-data

请求参数
### 请求参数(Body)

| 参数名 | 参数值 | 是否必填 | 参数类型 | 描述说明 |
| 参数名 | 示例参数值 | 是否必填 | 参数类型 | 描述说明 |
| ---------------- | ---------------------------------- | ---- | ------- | ------------------------------------------ |
| files | 文件二进制 || \[文件类型] | 需要上传的文件,可多选(当use\_lcoal\_file为true时,选择无效) |
| user\_id | public || String | 用户id |
| kb\_id | KBb1dd58e8485443ce81166d24f6febda7 || String | 知识库id |
| mode | strong || String | 上传模式,soft:文件名重复的文件不再上传,strong:文件名重复的文件强制上传 |
| user\_id | "public" || String | 用户id |
| kb\_id | "KBb1dd58e8485443ce81166d24f6febda7" || String | 知识库id |
| mode | "strong" || String | 上传模式,soft:文件名重复的文件不再上传,strong:文件名重复的文件强制上传 |
| use\_local\_file | false || Boolean | 是否使用本地目录上传文件:「source/data」,可选:【true,false】 |

### 请求示例
同步请求示例:

```python
import os
import requests

url = "http://0.0.0.0:8777/api/local_doc_qa/upload_files"
url = "http://0.0.0.0:5052/api/local_doc_qa/upload_files"
folder_path = "./docx_data"
data = {
"user_id": "public",
Expand Down Expand Up @@ -114,7 +157,7 @@ response_times = []

async def send_request(round_, files):
print(len(files))
url = 'http://0.0.0.0:8777/api/local_doc_qa/upload_files'
url = 'http://0.0.0.0:5052/api/local_doc_qa/upload_files'
data = aiohttp.FormData()
data.add_field('user_id', 'public')
data.add_field('kb_id', 'KBf1dafefdb08742f89530acb7e9ed66dd')
Expand Down Expand Up @@ -159,7 +202,7 @@ if __name__ == '__main__':
asyncio.run(main())
```

响应示例
### 响应示例

```json
{
Expand Down Expand Up @@ -189,19 +232,25 @@ if __name__ == '__main__':
] //文件列表
}
```
## 查看知识库

URL:<http://0.0.0.0:8777/api/local_doc_qa/list_knowledge_base>
## 查看知识库(POST)

### URL
<http://0.0.0.0:5052/api/local_doc_qa/list_knowledge_base>

请求参数
### 请求参数(Body)
| 参数名 | 示例参数值 | 是否必填 | 参数类型 | 描述说明 |
| ---------------- | ---------------------------------- | ---- | ------- | ------------------------------------------ |
| user\_id | "public" || String | 用户id |

### 请求示例
```json
{
"user_id": "public" //用户id
}
```

响应示例
### 响应示例

```json
{
Expand All @@ -216,20 +265,28 @@ URL:<http://0.0.0.0:8777/api/local_doc_qa/list_knowledge_base>
}
```

## 获取文件列表
## 获取文件列表(POST)

### URL
<http://0.0.0.0:5052/api/local_doc_qa/list_files>

URL: <http://0.0.0.0:8777/api/local_doc_qa/list_files>

请求参数
### 请求参数(Body)
| 参数名 | 示例参数值 | 是否必填 | 参数类型 | 描述说明 |
| ---------------- | ---------------------------------- | ---- | ------- | ------------------------------------------ |
| user_id | "public" || String | 用户id |
| kb_id | "KBb1dd58e8485443ce81166d24f6febda7" || String | 知识库id |

### 请求示例

```json
{
"user_id": "kb_test", //用户id 注意需要满足 只含有字母 数字 和下划线且字母开头 的要求
"user_id": "public", //用户id 注意需要满足 只含有字母 数字 和下划线且字母开头 的要求
"kb_id": "KBb1dd58e8485443ce81166d24f6febda7" //知识库id
}
```

响应示例
### 响应示例

```json
{
Expand Down Expand Up @@ -268,11 +325,21 @@ URL: <http://0.0.0.0:8777/api/local_doc_qa/list_files>
}
```

## 对话
## 问答(POST)

### URL
<http://0.0.0.0:5052/api/local_doc_qa/local_doc_chat>

URL:<http://0.0.0.0:8777/api/local_doc_qa/local_doc_chat>

请求参数
### 请求参数(Body)
| 参数名 | 示例参数值 | 是否必填 | 参数类型 | 描述说明 |
| ---------------- | ---------------------------------- | ---- | ------- | -----------------------------------|
| user_id | "public" || String | 用户id |
| kb_ids | ["KBb1dd58e8485443ce81166d24f6febda7"] || Array | 知识库id的列表,支持多个知识库联合问答|
| question | "保险单号是多少?" || String | 知识库id的列表,支持多个知识库联合问答|
| history | [["question1","answer1"],["question2","anser2"]] || Array | 历史对话 |

### 请求示例

```json
{
Expand All @@ -297,13 +364,13 @@ URL:<http://0.0.0.0:8777/api/local_doc_qa/local_doc_chat>
"保险单号是多少?",
"保险单号是601J389343982022000536。"
]
], //历史对话:List[str]
], //历史对话:List[List[str]]
"source_documents": [
{
"file_id": "f9b794233c304dd5b5a010f2ead67f51", //文本内容对应的文件id
"file_name": "一嗨案件支付三者车损、人伤保险赔款及权益转让授权书.docx", //文本内容对应的文件名
"content": "未支付第三者车损、人伤赔款及同意直赔第三者确认书 华泰财产保险有限公司 北京 分公司: 本人租用一嗨在贵司承保车辆(车牌号:京KML920)商业险保单号: 601J389343982022000536、交强险保单号: 601J310028493882022000570, 对 2023 年 03 月 25日所发生的保险事故(事故号: 9010020230325004124)中所涉及的交强险和商业险的保险赔款总金额 (依:三者京AFT5538定损金额), 同意支付给本次事故中第三者方。 在此本人确认:本人从未支付给第三者方任何赔偿,且承诺不就本次事故再向贵司及一嗨进行索赔。 同时本人保证如上述内容不属实、违反承诺,造成保险人损失的,由本人承担赔偿责任。 确认人(驾驶员)签字: 第三者方签字: 联系电话: 联系电话: 确认日期: 年 月 日", //文本内容
"retrieval_query": "一嗨案件中保险单号是多少", //文本内容对应的问题
"retrieval_query": "保险单号是多少", //文本内容对应的问题
"score": "3.5585756", //相关性得分,分数越高越相关
"embed_version": "local_v0.0.1_20230525_6d4019f1559aef84abc2ab8257e1ad4c" //embedding模型版本号
}
Expand All @@ -313,12 +380,19 @@ URL:<http://0.0.0.0:8777/api/local_doc_qa/local_doc_chat>
```


## 删除文件
## 删除文件(POST)

URL:<http://0.0.0.0:8777/api/local_doc_qa/delete_files>
### URL
<http://0.0.0.0:5052/api/local_doc_qa/delete_files>

请求参数:
### 请求参数(Body)
| 参数名 | 示例参数值 | 是否必填 | 参数类型 | 描述说明 |
| ---------------- | ---------------------------------- | ---- | ------- | -----------------------------------|
| user_id | "public" || String | 用户id |
| kb_id | "KB1271e71c36ec4028a6542586946a3906" || String | 知识库id|
| file_ids | ["73ff7cf76ff34c8aa3a5a0b4ba3cf534"] || Array | 要删除文件的id,支持批量删除|

### 请求示例
```json
{
"user_id": "public", //用户id
Expand All @@ -329,7 +403,7 @@ URL:<http://0.0.0.0:8777/api/local_doc_qa/delete_files>
}
```

响应示例
### 响应示例

```json
{
Expand All @@ -338,12 +412,19 @@ URL:<http://0.0.0.0:8777/api/local_doc_qa/delete_files>
}
```

## 删除知识库
## 删除知识库(POST)

### URL
<http://0.0.0.0:5052/api/local_doc_qa/delete_knowledge_base>

URL:<http://0.0.0.0:8777/api/local_doc_qa/delete_knowledge_base>
### 请求参数(Body)

请求参数:
| 参数名 | 示例参数值 | 是否必填 | 参数类型 | 描述说明 |
| ---------------- | ---------------------------------- | ---- | ------- | -----------------------------------|
| user_id | "public" || String | 用户id |
| kb_ids | ["KB1cd81f2bc515437294bda1934a20b235"] || Array | 要删除的知识库id,支持批量删除|

### 请求示例
```json
{
"user_id": "public", //用户id
Expand All @@ -353,7 +434,7 @@ URL:<http://0.0.0.0:8777/api/local_doc_qa/delete_knowledge_base>
}
```

响应示例
### 响应示例

```json
{
Expand Down

0 comments on commit 63afd8d

Please sign in to comment.