项目简介
本项目是基于Python和FastAPI框架构建的广告问答系统。借助FastAPI框架搭建API接口,结合Opensearch的KNN搜索功能,能够对腾讯广告、微信广告、企业微信等多平台的广告帮助中心数据进行查询,为用户提供相关问题的答案。
项目的主要特性和功能
- 多平台数据源支持:整合多个广告平台帮助中心数据,提供全面的广告问答服务。
- KNN搜索:利用Opensearch的KNN搜索功能,提升问题查询的准确性与效率。
- API接口:通过FastAPI框架提供标准API接口,便于外部系统调用。
- 数据录入与更新:提供脚本(如script/Quick_update.py),方便进行数据的录入和更新。
安装使用步骤
环境准备
确保已安装以下环境: - Ubuntu 18.04.6 LTS - fastapi 0.68.2 - uvicorn 0.15.0 - sentence-transformers 2.1.0 - transformers 4.16.2
运行步骤
使用Docker运行
bash
docker build -t ad_help .
docker run -d --network=host --name adhelp --restart=always ad_help
直接运行API
bash
uvicorn main:app --reload --host 0.0.0.0 --port 1333
测试
修改以下curl命令中的payload.text
更换测试问题,进行本地测试:
bash
curl -X POST -k "http://69.231.141.164/fastapi/v1/QA/search/jzmh/message" -H "charset=UTF-8" -H 'Content-Type: application/json' -d'
{
"data":{
"messageId": "2422188041612737714",
"chatId": "5e469a2b8d429806b0fef189",
"avatar": "a",
"roomTopic": "abc",
"roomId": "7215325536@chatroom",
"contactName": "小北",
"contactId": "wxid_rr9ej1o8xv9h21",
"payload": {
"text": "怎么使用朋友圈"
},
"type": 7,
"timestamp": 1585995128441,
"token": "5dbe8221fc191f13bc072908",
"botId": "5d0c86971150c017984cee66",
"contactType": 1,
"coworker": false,
"botId": "5d0c86971150c017984cee77",
"botWxid": "1688851085873555",
"botWeixin": "123"
}
}
'
Opensearch相关操作
创建支持KNN的索引
- 使用curl
bash curl -X PUT -k "https://admin:admin@localhost:9200/my-index" -H 'Content-Type: application/json' -d' { "settings": { "index.knn": true }, "mappings": { "properties": { "my_vector1": { "type": "knn_vector", "dimension": 2 }, "my_vector2": { "type": "knn_vector", "dimension": 4 } } } }'
- 使用Python脚本
bash python create_index.py
添加数据
bash
python add_data.py
搜索数据
- 使用curl ```bash curl -X GET -k "https://admin:admin@localhost:9200/my-index/_search"
GET my-index/_search
{
"size": 2,
"query": {
"knn": {
"my_vector2": {
"vector": [2, 3, 5, 6],
"k": 2
}
}
}
}
- **使用Python脚本**
bash
python change_data.py
```
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】