跳到主要内容

/embeddings

快速入门

from litellm import embedding
import os
os.environ['OPENAI_API_KEY'] = ""
response = embedding(model='text-embedding-ada-002', input=["good morning from litellm"])

代理用法

注意 对于 vertex_ai

export GOOGLE_APPLICATION_CREDENTIALS="absolute/path/to/service_account.json"

将模型添加到配置

model_list:
- model_name: textembedding-gecko
litellm_params:
model: vertex_ai/textembedding-gecko

general_settings:
master_key: sk-1234

启动代理

litellm --config /path/to/config.yaml 

# RUNNING on http://0.0.0.0:4000

测试

curl --location 'http://0.0.0.0:4000/embeddings' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data '{"input": ["Academia.edu uses"], "model": "textembedding-gecko", "encoding_format": "base64"}'

图像嵌入

对于支持图像嵌入的模型,您可以将 base64 编码的图像字符串作为 input 参数传入。

from litellm import embedding
import os

# set your api key
os.environ["COHERE_API_KEY"] = ""

response = embedding(model="cohere/embed-english-v3.0", input=["<base64 encoded image>"])

litellm.embedding() 的输入参数

信息

任何非 OpenAI 参数将被视为特定于提供商的参数,并作为 kwargs 在请求体中发送给提供商。

参见保留参数

参见示例

必填字段

  • model: 字符串 - 要使用的模型 ID。model='text-embedding-ada-002'

  • input: 字符串或数组 - 要嵌入的输入文本,编码为字符串或 token 数组。要在单个请求中嵌入多个输入,请传递字符串数组或 token 数组的数组。输入不得超过模型的最大输入 token 数(text-embedding-ada-002 为 8192 个 token),不能是空字符串,并且任何数组的维度必须小于或等于 2048。

input=["good morning from litellm"]

可选 LiteLLM 字段

  • user: 字符串 (可选) 代表您的最终用户的唯一标识符,

  • dimensions: 整数 (可选) 生成的输出嵌入应具有的维度数量。仅支持 OpenAI/Azure 的 text-embedding-3 及更新模型。

  • encoding_format: 字符串 (可选) 返回嵌入的格式。可以是 "float""base64"。默认为 encoding_format="float"

  • timeout: 整数 (可选) - 等待 API 响应的最长时间(秒)。默认为 600 秒(10 分钟)。

  • api_base: 字符串 (可选) - 您想要调用模型时使用的 API 端点

  • api_version: 字符串 (可选) - (Azure 特有) 调用使用的 API 版本

  • api_key: 字符串 (可选) - 用于验证和授权请求的 API 密钥。如果未提供,则使用默认 API 密钥。

  • api_type: 字符串 (可选) - 要使用的 API 类型。

litellm.embedding() 的输出

{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [
-0.0022326677571982145,
0.010749882087111473,
...
...
...

]
}
],
"model": "text-embedding-ada-002-v2",
"usage": {
"prompt_tokens": 10,
"total_tokens": 10
}
}

OpenAI 嵌入模型

用法

from litellm import embedding
import os
os.environ['OPENAI_API_KEY'] = ""
response = embedding(
model="text-embedding-3-small",
input=["good morning from litellm", "this is another item"],
metadata={"anything": "good day"},
dimensions=5 # Only supported in text-embedding-3 and later models.
)
模型名称函数调用必需的 OS 环境变量
text-embedding-3-smallembedding('text-embedding-3-small', input)os.environ['OPENAI_API_KEY']
text-embedding-3-largeembedding('text-embedding-3-large', input)os.environ['OPENAI_API_KEY']
text-embedding-ada-002embedding('text-embedding-ada-002', input)os.environ['OPENAI_API_KEY']

OpenAI 兼容嵌入模型

用于调用 OpenAI 兼容服务器上的 /embedding 端点,例如 https://github.com/xorbitsai/inference

注意:在模型前添加 openai/ 前缀,LiteLLM 才能知道要路由到 OpenAI

用法

from litellm import embedding
response = embedding(
model = "openai/<your-llm-name>", # add `openai/` prefix to model so litellm knows to route to OpenAI
api_base="http://0.0.0.0:4000/" # set API Base of your Custom OpenAI Endpoint
input=["good morning from litellm"]
)

Bedrock 嵌入

API 密钥

可以设置为环境变量或作为 参数传递给 litellm.embedding()

import os
os.environ["AWS_ACCESS_KEY_ID"] = "" # Access key
os.environ["AWS_SECRET_ACCESS_KEY"] = "" # Secret access key
os.environ["AWS_REGION_NAME"] = "" # us-east-1, us-east-2, us-west-1, us-west-2

用法

from litellm import embedding
response = embedding(
model="amazon.titan-embed-text-v1",
input=["good morning from litellm"],
)
print(response)
模型名称函数调用
Titan Embeddings - G1embedding(model="amazon.titan-embed-text-v1", input=input)
Cohere Embeddings - 英语embedding(model="cohere.embed-english-v3", input=input)
Cohere Embeddings - 多语言embedding(model="cohere.embed-multilingual-v3", input=input)

Cohere 嵌入模型

https://docs.cohere.com/reference/embed

用法

from litellm import embedding
os.environ["COHERE_API_KEY"] = "cohere key"

# cohere call
response = embedding(
model="embed-english-v3.0",
input=["good morning from litellm", "this is another item"],
input_type="search_document" # optional param for v3 llms
)
模型名称函数调用
embed-english-v3.0embedding(model="embed-english-v3.0", input=["good morning from litellm", "this is another item"])
embed-english-light-v3.0embedding(model="embed-english-light-v3.0", input=["good morning from litellm", "this is another item"])
embed-multilingual-v3.0embedding(model="embed-multilingual-v3.0", input=["good morning from litellm", "this is another item"])
embed-multilingual-light-v3.0embedding(model="embed-multilingual-light-v3.0", input=["good morning from litellm", "this is another item"])
embed-english-v2.0embedding(model="embed-english-v2.0", input=["good morning from litellm", "this is another item"])
embed-english-light-v2.0embedding(model="embed-english-light-v2.0", input=["good morning from litellm", "this is another item"])
embed-multilingual-v2.0embedding(model="embed-multilingual-v2.0", input=["good morning from litellm", "this is another item"])

NVIDIA NIM 嵌入模型

API 密钥

可以设置为环境变量或作为 参数传递给 litellm.embedding()

import os
os.environ["NVIDIA_NIM_API_KEY"] = "" # api key
os.environ["NVIDIA_NIM_API_BASE"] = "" # nim endpoint url

用法

from litellm import embedding
import os
os.environ['NVIDIA_NIM_API_KEY'] = ""
response = embedding(
model='nvidia_nim/<model_name>',
input=["good morning from litellm"]
)

支持此处列出的所有模型

模型名称函数调用
NV-Embed-QAembedding(model="nvidia_nim/NV-Embed-QA", input)
nvidia/nv-embed-v1embedding(model="nvidia_nim/nvidia/nv-embed-v1", input)
nvidia/nv-embedqa-mistral-7b-v2embedding(model="nvidia_nim/nvidia/nv-embedqa-mistral-7b-v2", input)
nvidia/nv-embedqa-e5-v5embedding(model="nvidia_nim/nvidia/nv-embedqa-e5-v5", input)
nvidia/embed-qa-4embedding(model="nvidia_nim/nvidia/embed-qa-4", input)
nvidia/llama-3.2-nv-embedqa-1b-v1embedding(model="nvidia_nim/nvidia/llama-3.2-nv-embedqa-1b-v1", input)
nvidia/llama-3.2-nv-embedqa-1b-v2embedding(model="nvidia_nim/nvidia/llama-3.2-nv-embedqa-1b-v2", input)
snowflake/arctic-embed-lembedding(model="nvidia_nim/snowflake/arctic-embed-l", input)
baai/bge-m3embedding(model="nvidia_nim/baai/bge-m3", input)

HuggingFace 嵌入模型

LiteLLM 支持所有特征提取 (Feature-Extraction) + 句子相似度 (Sentence Similarity) 嵌入模型:https://hugging-face.cn/models?pipeline_tag=feature-extraction

用法

from litellm import embedding
import os
os.environ['HUGGINGFACE_API_KEY'] = ""
response = embedding(
model='huggingface/microsoft/codebert-base',
input=["good morning from litellm"]
)

用法 - 设置 input_type

LiteLLM 通过向 API base 发送 GET 请求来推断输入类型(特征提取或句子相似度)。

可以通过自行设置 input_type 来覆盖此行为。

from litellm import embedding
import os
os.environ['HUGGINGFACE_API_KEY'] = ""
response = embedding(
model='huggingface/microsoft/codebert-base',
input=["good morning from litellm", "you are a good bot"],
api_base = "https://p69xlsj6rpno5drq.us-east-1.aws.endpoints.huggingface.cloud",
input_type="sentence-similarity"
)

用法 - 自定义 API Base

from litellm import embedding
import os
os.environ['HUGGINGFACE_API_KEY'] = ""
response = embedding(
model='huggingface/microsoft/codebert-base',
input=["good morning from litellm"],
api_base = "https://p69xlsj6rpno5drq.us-east-1.aws.endpoints.huggingface.cloud"
)
模型名称函数调用必需的 OS 环境变量
microsoft/codebert-baseembedding('huggingface/microsoft/codebert-base', input=input)os.environ['HUGGINGFACE_API_KEY']
BAAI/bge-large-zhembedding('huggingface/BAAI/bge-large-zh', input=input)os.environ['HUGGINGFACE_API_KEY']
any-hf-embedding-modelembedding('huggingface/hf-embedding-model', input=input)os.environ['HUGGINGFACE_API_KEY']

Mistral AI 嵌入模型

支持此处列出的所有模型

用法

from litellm import embedding
import os

os.environ['MISTRAL_API_KEY'] = ""
response = embedding(
model="mistral/mistral-embed",
input=["good morning from litellm"],
)
print(response)
模型名称函数调用
mistral-embedembedding(model="mistral/mistral-embed", input)

Gemini AI 嵌入模型

API 密钥

可以设置为环境变量或作为 参数传递给 litellm.embedding()

import os
os.environ["GEMINI_API_KEY"] = ""

用法 - 嵌入

from litellm import embedding
response = embedding(
model="gemini/text-embedding-004",
input=["good morning from litellm"],
)
print(response)

支持此处列出的所有模型

模型名称函数调用
text-embedding-004embedding(model="gemini/text-embedding-004", input)

Vertex AI 嵌入模型

用法 - 嵌入

import litellm
from litellm import embedding
litellm.vertex_project = "hardy-device-38811" # Your Project ID
litellm.vertex_location = "us-central1" # proj location

response = embedding(
model="vertex_ai/textembedding-gecko",
input=["good morning from litellm"],
)
print(response)

支持的模型

支持此处列出的所有模型

模型名称函数调用
textembedding-geckoembedding(model="vertex_ai/textembedding-gecko", input)
textembedding-gecko-multilingualembedding(model="vertex_ai/textembedding-gecko-multilingual", input)
textembedding-gecko-multilingual@001embedding(model="vertex_ai/textembedding-gecko-multilingual@001", input)
textembedding-gecko@001embedding(model="vertex_ai/textembedding-gecko@001", input)
textembedding-gecko@003embedding(model="vertex_ai/textembedding-gecko@003", input)
text-embedding-preview-0409embedding(model="vertex_ai/text-embedding-preview-0409", input)
text-multilingual-embedding-preview-0409embedding(model="vertex_ai/text-multilingual-embedding-preview-0409", input)

Voyage AI 嵌入模型

用法 - 嵌入

from litellm import embedding
import os

os.environ['VOYAGE_API_KEY'] = ""
response = embedding(
model="voyage/voyage-01",
input=["good morning from litellm"],
)
print(response)

支持的模型

支持此处列出的所有模型

模型名称函数调用
voyage-01embedding(model="voyage/voyage-01", input)
voyage-lite-01embedding(model="voyage/voyage-lite-01", input)
voyage-lite-01-instructembedding(model="voyage/voyage-lite-01-instruct", input)

特定于提供商的参数

信息

任何非 OpenAI 参数将被视为特定于提供商的参数,并作为 kwargs 在请求体中发送给提供商。

参见保留参数

示例

Cohere v3 模型有一个必需参数:input_type,它可以是以下四个值之一

  • input_type="search_document": (默认) 用于您想要存储在向量数据库中的文本(文档)
  • input_type="search_query": 用于在向量数据库中查找最相关文档的搜索查询
  • input_type="classification": 如果您将嵌入用作分类系统的输入,请使用此值
  • input_type="clustering": 如果您将嵌入用于文本聚类,请使用此值

https://txt.cohere.com/introducing-embed-v3/

from litellm import embedding
os.environ["COHERE_API_KEY"] = "cohere key"

# cohere call
response = embedding(
model="embed-english-v3.0",
input=["good morning from litellm", "this is another item"],
input_type="search_document" # 👈 PROVIDER-SPECIFIC PARAM
)