嵌入#
学习如何在 Xinference 中创建文本嵌入。
介绍#
文本嵌入用于量化不同文本之间的相关性。它们可以应用于各种应用程序,包括搜索、聚类、推荐、异常检测、多样性度量和分类。
嵌入是一组浮点数的向量。两个向量之间的接近程度可以作为它们相似性的指标。距离越小表示相关性越高,而距离越大则表示相关性降低。
通过 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
能力的示例。
FAQ#
LLM 在 Xinference 中是否支持 Embeddings API?#
不支持,Xinference由于性能考虑,并没有提供 LLMs 嵌入 API。
Embeddings API 是否提供了与 LangChain 的集成方法?#
是的,你可以参考LangChain相关部分的官方Xinference文档。这里是链接:Text Embedding Models: Xinference