嵌入#
學習如何在 Xinference 中建立文字嵌入。
Introduction#
文本嵌入用於量化不同文字之間的相關性。它們可以應用於各種應用程式,包括搜尋、聚類、推薦、異常檢測、多樣性度量和分類。
嵌入是一組浮點數的向量。兩個向量之間的接近程度可以作為它們相似性的指標。距離越小表示相關性越高,而距離越大則表示相關性降低。
通過 Embeddings API 在 Xinference 中嵌入模型可以被調用,以創建嵌入。Embeddings API 模仿了 OpenAI 的 create embeddings API。
API 端點 |
OpenAI 兼容端點 |
|---|---|
Embeddings API |
/v1/embeddings |
支援的模型列表#
你可以查看所有 Xinference 內建中的嵌入模型。
快速入門#
我們可以透過 cURL、OpenAI Client 或 Xinference 的 Python 客戶端來嘗試 Embeddings API。
curl -X 'POST' \
'http://<XINFERENCE_HOST>:<XINFERENCE_PORT>/v1/embeddings' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"model": "<MODEL_UID>",
"input": "What is the capital of China?"
}'
import openai
client = openai.Client(
api_key="cannot be empty",
base_url="http://<XINFERENCE_HOST>:<XINFERENCE_PORT>/v1"
)
client.embeddings.create(
model=model_uid,
input=["What is the capital of China?"]
)
from xinference.client import Client
client = Client("http://<XINFERENCE_HOST>:<XINFERENCE_PORT>")
model = client.get_model("<MODEL_UID>")
input = "What is the capital of China?"
model.create_embedding(input)
{
"object": "list",
"model": "<MODEL_UID>",
"data": [{
"index": 0,
"object": "embedding",
"embedding": [
-0.014207549393177032,
-0.01832585781812668,
...
-0.03009396605193615,
0.05420297756791115]
}],
"usage": {
"prompt_tokens": 37,
"total_tokens": 37
}
}
你可以在教學筆記本中找到更多關於 embed 能力的範例。
從一個範例中學習如何透過 LangChain 使用嵌入 API
FAQ#
LLM 在 Xinference 中是否支援 Embeddings API?#
No. Xinference doesn't provide embed API for LLMs due to considerations of performance.
Embeddings API 是否提供了與 LangChain 的整合方法?#
是的,你可以參考LangChain相關部分的官方Xinference文件。這裡是連結:Text Embedding Models: Xinference
Does Embeddings API support hrbrid model?#
Yes, you can use flag as the engine to deploy the model and call Embeddings API by setting the extra parameter return_parse=True which will return sparse vectors.