Skip to content

hh-TDA/ruri-model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ruri-model

cl-nagoya/ruri-v3-310m を使った日本語テキスト埋め込み (Embedding) APIサーバーです。OpenAI互換のエンドポイントを提供します。

概要

  • モデル: cl-nagoya/ruri-v3-310m(名古屋大学が公開した日本語特化の埋め込みモデル)
  • フレームワーク: FastAPI + sentence-transformers
  • OpenAI /v1/embeddings 互換のAPIを提供

起動方法

Docker Compose(推奨)

docker compose up -d

初回起動時はモデルのダウンロードが行われるため、時間がかかります。

ローカル起動

pip install -r requirements.txt
cd app
uvicorn main:app --host 0.0.0.0 --port 8001

APIエンドポイント

POST /v1/embeddings

テキストをベクトルに変換します。

リクエスト例:

curl http://localhost:8001/v1/embeddings \
  -H "Content-Type: application/json" \
  -d '{
    "input": "日本語のテキスト"
  }'

複数テキストも対応:

curl http://localhost:8001/v1/embeddings \
  -H "Content-Type: application/json" \
  -d '{
    "input": ["検索クエリ", "検索対象のドキュメント"]
  }'

レスポンス例:

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [0.123, -0.456, ...],
      "index": 0
    }
  ],
  "model": "cl-nagoya/ruri-v3-310m",
  "usage": { "prompt_tokens": 0, "total_tokens": 0 }
}

GET /v1/models

利用可能なモデル一覧を返します。

curl http://localhost:8001/v1/models

プレフィックス自動付与

ruri-v3 は用途に応じて4種類のプレフィックスを使い分ける設計ですが、本サーバーはDifyのRAG用途を想定しているため、テキスト長で自動的に 検索クエリ: / 検索文書: を判定して付与します。

条件 プレフィックス
100文字未満 検索クエリ:
100文字以上 検索文書:

RAGの典型的な使い方では、ユーザーのクエリは短く・ドキュメントのチャンクは長くなるため、この長さ判定がクエリ/文書の区別とたまたま一致しやすく、実用上は問題なく動作します。

ライセンス

本プロジェクトで使用している cl-nagoya/ruri-v3-310mApache License 2.0 で公開されています。

オンプレミス環境での利用・商用利用・改変はいずれも許可されています。モデルを再配布する場合は著作権表示と LICENSE ファイルの同梱が必要ですが、社内での利用にとどまる場合は実質的な制約はありません。

技術スタック

項目 内容
言語 Python 3.12
Webフレームワーク FastAPI
埋め込みモデル sentence-transformers
モデル cl-nagoya/ruri-v3-310m
ポート 8001

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors