基于fastapi封装的embedding和reranking模型接口
936
# 提前下载好对应的模型
❯ ls -al /Users/kangkang/app/models
total 3863352
drwxr-xr-x 9 kangkang staff 288 6 2 17:28 .
drwxr-xr-x 7 kangkang staff 224 11 10 2023 ..
-rw-r--r--@ 1 kangkang staff 8196 6 2 17:28 .DS_Store
drwxr-xr-x 8 kangkang staff 256 3 7 16:28 BAAI--bge-reranker-base
drwxr-xr-x 15 kangkang staff 480 6 2 17:28 bge-large-zh-v1.5
drwxr-xr-x 10 kangkang staff 320 6 2 17:28 bge-reranker-base
-rw-r--r-- 1 kangkang staff 1978017993 3 5 10:50 models--BAAI--bge-reranker-base.zip
drwxr-xr-x 7 kangkang staff 224 3 5 10:50 models--moka-ai--m3e-base
-rw-r--r--@ 1 kangkang staff 1 2 26 18:27 version.txt
# 启动容器(CPU运行)
docker run -d -p 8080:8080 --name embed_rerank_api \
-v /Users/kangkang/app/data/models:/app/src/data/models \
-v /Users/kangkang/app/data/logs:/app/src/data/logs \
kangkang223/embed_rerank_api
# 启动容器(GPU运行)
docker run -d -p 8080:8080 --name embed_rerank_api \
-v /Users/kangkang/app/data/models:/app/src/data/models \
-v /Users/kangkang/app/data/logs:/app/src/data/logs \
--gpus all \
kangkang223/embed_rerank_api
参数说明
请求示例
curl -X POST -H "Content-Type: application/json" \
-d '{
"texts": [
"你好",
"今天天气不错啊"
],
"modelName": "bge-large-zh-v1.5",
"device": "cpu",
"useCache": true
}' http://127.0.0.1:8080/api/embedding
{
"rspCode": "0000",
"rspDesc": "success",
"rows": [
[
0.1,
0.1,
...
],
[
0.1,
0.01,
...
]
]
}
参数说明
请求示例
curl -X POST -H "Content-Type: application/json" \
-d '{
"query": "介绍一下大熊猫",
"texts": [
{"content":"大熊猫比较喜欢吃竹子","title":"附加字段"},{"content":"大熊猫是中国特有动物","title":"附加字段"}
],
"modelName": "bge-reranker-base",
"device": "cpu",
"useCache": true
}' http://127.0.0.1:8080/api/reranking
{
"rspCode": "0000",
"rspDesc": "success",
"rows": [
{
"content": "大熊猫是中国特有动物",
"title": "附加字段",
"score": 3.13826847076416
},
{
"content": "大熊猫比较喜欢吃竹子",
"title": "附加字段",
"score": -1.2197096347808838
}
]
}
模型缓存之后,第一次请求耗时较长,后续请求耗时较短
2024-06-02 21:00:45,726 |-INFO src.common_util [82] -| embedding start: device=cuda, model_name=/app/src/data/models/bge-large-zh-v1.5, texts=1
2024-06-02 21:00:48,258 |-INFO src.common_util [22] -| embedding caching model: bge-large-zh-v1.5
2024-06-02 21:00:49,052 |-INFO src.common_util [86] -| embedding end: device=cuda, time=3.33
2024-06-02 21:00:49,053 |-INFO src.controller [86] -| 文本向量化-耗时:texts=['你好'] modelName='bge-large-zh-v1.5' device='cuda' useCache=True|3.33 s
INFO: 192.161.6.251:58896 - "POST /api/embedding HTTP/1.1" 200 OK
2024-06-02 21:00:55,934 |-INFO src.common_util [82] -| embedding start: device=cuda, model_name=/app/src/data/models/bge-large-zh-v1.5, texts=1
2024-06-02 21:00:55,969 |-INFO src.common_util [86] -| embedding end: device=cuda, time=0.03
INFO: 192.161.6.251:58904 - "POST /api/embedding HTTP/1.1" 200 OK
模型缓存之后推理是单实例的,建议部署多个实例,使用nginx负载
Content type
Image
Digest
sha256:cacc2e322…
Size
3.2 GB
Last updated
over 2 years ago
docker pull kangkang223/embed_rerank_api