埋め込みに文変換器を使用するOpenAI互換埋め込みAPI
コンテナ画像: ghcr.io/substratusai/stapi
スターを追加してプロジェクトをサポートしてください! ❤❤️
Discordに参加してください:
STAPIをインストールするには、DockerまたはLocal Pythonインストールの2つのオプションがあります。
Dockerを使用してAPIをローカルに実行します。
docker run -p 8080:8080 -d ghcr.io/substratusai/stapiPythonを使用してAPIサーバーをローカルにインストールして実行します。 Python 3.9、3.10、および3.11のみをサポートしています。
リポジトリのクローン:
git clone https://github.com/substratusai/stapi
cd stapi依存関係をインストールします:
pip3 install -r requirements.txtWebサーバーを実行します:
uvicorn main:app --port 8080 --reloadstapiをインストールした後、http:// localhost:8080/docsのAPIドキュメントにアクセスできます
カールを使用して埋め込みを取得することもできます。
curl http://localhost:8080/v1/embeddings
-H " Content-Type: application/json "
-d ' {
"input": "Your text string goes here",
"model": "all-MiniLM-L6-v2"
} 'Openai Pythonクライアントでさえ、埋め込みを取得するために使用できます。
import openai
openai . api_base = "http://localhost:8080/v1"
openai . api_key = "this isn't used but openai client requires it"
model = "all-MiniLM-L6-v2"
embedding = openai . Embedding . create ( input = "Some text" , model = model )[ "data" ][ 0 ][ "embedding" ]
print ( embedding )文の変圧器によってサポートされているモデルは、STAPIでも機能する必要があります。これは、文の変圧器で利用可能な事前に訓練されたモデルのリストです。
デフォルトではall-MiniLM-L6-v2モデルが使用され、起動時にプリロードされます。 MODEL環境変数を設定することにより、サポートされているモデルをプリロードできます。
たとえば、 multi-qa-MiniLM-L6-cos-v1をプリロードしたい場合は、次のようにdocker runコマンドを微調整できます。
docker run -e MODEL=multi-qa-MiniLM-L6-cos-v1 -p 8080:8080 -d
ghcr.io/substratusai/sentence-transformers-api Stapiは、プリロードされたモデルのみを提供することに注意してください。別のモデルを提供するには、Stapiの別のインスタンスを作成する必要があります。リクエスト本文の一部としてのmodelパラメーターは、単に無視されます。
APIはOpenai Embedding APIと互換性があるため、埋め込みサーバーを他のさまざまなツールで使用するのは簡単です。
Weaviate Text2Vec-Openaiモジュールを使用して、Stapi Openai互換のエンドポイントを使用できます。
Weaviateスキーマでは、stapiエンドポイントがhttp://stapi:8080で利用できると仮定して、次のモジュール構成を使用します。
"vectorizer": "text2vec-openai",
"moduleConfig": {
"text2vec-openai": {
"model": "davinci",
"baseURL": "http://stapi:8080"
}
}
Openai APIキーの場合、任意のキーを使用できますが、チェックされません。
詳細については、Stapi Weaviateガイドをお読みください。
お気軽にご連絡ください: