OpenAI API互換のRerankサーバーをローカルで提供します。
Difyで日本語の処理をおこないたい際に、 OpenAI-API-compatibleモデルプロバイダーでこれを指定します。
モデルとしては、次のものを利用しています。
- Rerank: cl-nagoya/ruri-v3-reranker-310m
- sentence-transformersが利用できる環境
- Rerank: GPU VRAM1.5GB程度
buildしてupするだけです。
$ docker compose build
$ docker compose up -dこれによりRerankサービスが起動します:
- Rerank API: http://localhost:8082
モデルのキャッシュはホストのvolumesディレクトリに保持されます。
$ sudo apt install \
build-essential \
cmake pkg-config \
libprotobuf-dev \
libsentencepiece-devライブラリの管理はuvを用います。
$ uv sync$ uv run uvicorn rerank-api-server:app --host 0.0.0.0 --port 8082Docker Composeの場合は不要です。
$ curl -v http://127.0.0.1:8082/v1/rerank -H 'Content-Type: application/json' --data-raw '
{
"model": "cl-nagoya/ruri-v3-reranker-310m",
"query": "山形県の蔵王温泉にある「泉質」はなに?",
"documents": [
"蔵王温泉はどのような特徴を 持つ温泉ですか?",
"山形市の蔵王温泉はどのような温泉ですか?",
"蔵王温泉の特徴は何ですか?"
]
}'{
"results": [
{
"document": {
"text": "蔵王温泉はどのような特徴を 持つ温泉ですか?"
},
"relevance_score": 0.029905224218964577,
"index": 0
},
{
"document": {
"text": "山形市の蔵王温泉はどのような温泉ですか?"
},
"relevance_score": 0.013406982645392418,
"index": 1
},
{
"document": {
"text": "蔵王温泉の特徴は何ですか?"
},
"relevance_score": 0.012443745508790016,
"index": 2
}
],
"model": "cl-nagoya/ruri-v3-reranker-310m",
"usage": {
"total_tokens": 0
}
}- Model Type: Rerank
- Model Name: cl-nagoya/ruri-v3-reranker-310m
- API Key: なし
- API endpoint URL: http://サーバーのホスト名・IPアドレス:8082/v1
- Model context size: 512