[AI Embedchain] 组件 Embedding 模型

概述

Embedchain 支持以下提供商的多个嵌入模型:

OpenAI

要使用 OpenAI 嵌入功能,您必须设置 OPENAI_API_KEY 环境变量。您可以从 OpenAI Platform 获取 OpenAI API 密钥。

获得密钥后,您可以像这样使用它:

main.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import os
from embedchain import App

os.environ['OPENAI_API_KEY'] = 'xxx'

# 从 config.yaml 文件加载嵌入模型配置
app = App.from_config(config_path="config.yaml")

app.add("https://en.wikipedia.org/wiki/OpenAI")
app.query("What is OpenAI?")

config.yaml

1
2
3
4
embedder:
  provider: openai
  config:
    model: 'text-embedding-3-small'
  • OpenAI 宣布了两个新的嵌入模型:text-embedding-3-smalltext-embedding-3-large。Embedchain 支持这两个模型。以下是两个模型的 YAML 配置:

text-embedding-3-small.yaml

1
2
3
4
embedder:
  provider: openai
  config:
    model: 'text-embedding-3-small'

text-embedding-3-large.yaml

1
2
3
4
embedder:
  provider: openai
  config:
    model: 'text-embedding-3-large'

Google AI

要使用 Google AI 嵌入功能,您必须设置 GOOGLE_API_KEY 环境变量。您可以从 Google Maker Suite 获取 Google API 密钥。

main.py

1
2
3
4
5
6
import os
from embedchain import App

os.environ["GOOGLE_API_KEY"] = "xxx"

app = App.from_config(config_path="config.yaml")

config.yaml

1
2
3
4
5
6
embedder:
  provider: google
  config:
    model: 'models/embedding-001'
    task_type: "retrieval_document"
    title: "Embeddings for Embedchain"

有关 Google AI 嵌入模型的更多详细信息,请参考 Google AI 文档

AWS Bedrock

要使用 AWS Bedrock 嵌入功能,您必须设置 AWS 环境变量。

main.py

1
2
3
4
5
6
7
8
import os
from embedchain import App

os.environ["AWS_ACCESS_KEY_ID"] = "xxx"
os.environ["AWS_SECRET_ACCESS_KEY"] = "xxx"
os.environ["AWS_REGION"] = "us-west-2"

app = App.from_config(config_path="config.yaml")

config.yaml

1
2
3
4
5
6
7
embedder:
  provider: aws_bedrock
  config:
    model: 'amazon.titan-embed-text-v2:0'
    vector_dimension: 1024
    task_type: "retrieval_document"
    title: "Embeddings for Embedchain"

有关 AWS Bedrock 嵌入模型的更多详细信息,请参考 AWS Bedrock 文档

Azure OpenAI

要使用 Azure OpenAI 嵌入模型,您必须设置以下 Azure OpenAI 相关环境变量:

main.py

1
2
3
4
5
6
7
8
9
import os
from embedchain import App

os.environ["OPENAI_API_TYPE"] = "azure"
os.environ["AZURE_OPENAI_ENDPOINT"] = "https://xxx.openai.azure.com/"
os.environ["AZURE_OPENAI_API_KEY"] = "xxx"
os.environ["OPENAI_API_VERSION"] = "xxx"

app = App.from_config(config_path="config.yaml")

config.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
llm:
  provider: azure_openai
  config:
    model: gpt-35-turbo
    deployment_name: your_llm_deployment_name
    temperature: 0.5
    max_tokens: 1000
    top_p: 1
    stream: false

embedder:
  provider: azure_openai
  config:
    model: text-embedding-ada-002
    deployment_name: you_embedding_model_deployment_name

您可以在 Azure OpenAI Platform 上找到模型列表和部署名称。

GPT4ALL

GPT4All 支持生成任意长度文本的高质量嵌入,使用的是经过对比训练的 CPU 优化 Sentence Transformer。

main.py

1
2
3
4
from embedchain import App

# 从 config.yaml 文件加载嵌入模型配置
app = App.from_config(config_path="config.yaml")

config.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
llm:
  provider: gpt4all
  config:
    model: 'orca-mini-3b-gguf2-q4_0.gguf'
    temperature: 0.5
    max_tokens: 1000
    top_p: 1
    stream: false

embedder:
  provider: gpt4all

Hugging Face

Hugging Face 支持使用 Sentence Transformer 库生成任意长度文本的嵌入。以下是使用 Hugging Face 生成嵌入的示例:

main.py

1
2
3
4
from embedchain import App

# 从 config.yaml 文件加载嵌入模型配置
app = App.from_config(config_path="config.yaml")

config.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
llm:
  provider: huggingface
  config:
    model: 'google/flan-t5-xxl'
    temperature: 0.5
    max_tokens: 1000
    top_p: 0.5
    stream: false

embedder:
  provider: huggingface
  config:
    model: 'sentence-transformers/all-mpnet-base-v2'
    model_kwargs:
        trust_remote_code: True # 仅在信任嵌入模型时使用

Vertex AI

Embedchain 通过简单的接口支持 Google 的 VertexAI 嵌入模型。您只需在配置 YAML 中传递 model_name,它就能开箱即用。

main.py

1
2
3
4
from embedchain import App

# 从 config.yaml 文件加载嵌入模型配置
app = App.from_config(config_path="config.yaml")

config.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
llm:
  provider: vertexai
  config:
    model: 'chat-bison'
    temperature: 0.5
    top_p: 0.5

embedder:
  provider: vertexai
  config:
    model: 'textembedding-gecko'

NVIDIA AI

NVIDIA AI Foundation Endpoints 让您可以通过我们的 API 快速使用 NVIDIA 的 AI 模型,如 Mixtral 8x7B、Llama 2 等。这些模型可以在 NVIDIA NGC catalog 中找到,经过完全优化,准备在 NVIDIA 的 AI 平台上使用。它们旨在提供高速度和易于定制,确保在任何加速设置上的平稳性能。

使用方法

要使用 NVIDIA AI 的嵌入模型和 LLM,请在 NVIDIA NGC Service 上创建一个帐户。

从其仪表板生成 API 密钥。将 API 密钥设置为 NVIDIA_API_KEY 环境变量。请注意,NVIDIA_API_KEY 将以 nvapi- 开头。

以下是如何使用 NVIDIA AI 的 LLM 模型和嵌入模型的示例:

main.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import os
from embedchain import App

os.environ['NVIDIA_API_KEY'] = 'nvapi-xxxx'

config = {
    "app": {
        "config": {
            "id": "my-app",
        },
    },
    "llm": {
        "provider": "nvidia",
        "config": {
            "model": "nemotron_steerlm_8b",
        },
    },
    "embedder": {
        "provider":

 "nvidia",
        "config": {
            "model": "nvolveqa_40k",
            "vector_dimension": 1024,
        },
    },
}

app = App.from_config(config=config)

app.add("https://www.forbes.com/profile/elon-musk")
answer = app.query("What is the net worth of Elon Musk today?")
# Answer: The net worth of Elon Musk is subject to fluctuations based on the market value of his holdings in various companies.
# As of March 1, 2024, his net worth is estimated to be approximately $210 billion. However, this figure can change rapidly due to stock market fluctuations and other factors.
# Additionally, his net worth may include other assets such as real estate and art, which are not reflected in his stock portfolio.

Cohere

要使用 COHERE 的嵌入模型和 LLM,请在 COHERE 上创建一个帐户。

从其仪表板生成 API 密钥。将 API 密钥设置为 COHERE_API_KEY 环境变量。

获得密钥后,您可以像这样使用它:

main.py

1
2
3
4
5
6
7
import os
from embedchain import App

os.environ['COHERE_API_KEY'] = 'xxx'

# 从 config.yaml 文件加载嵌入模型配置
app = App.from_config(config_path="config.yaml")

config.yaml

1
2
3
4
embedder:
  provider: cohere
  config:
    model: 'embed-english-light-v3.0'
  • Cohere 有一些嵌入模型:embed-english-v3.0embed-multilingual-v3.0embed-multilingual-light-v3.0embed-english-v2.0embed-english-light-v2.0embed-multilingual-v2.0。Embedchain 支持所有这些模型。以下是所有模型的 YAML 配置:

embed-english-v3.0.yaml

1
2
3
4
5
embedder:
  provider: cohere
  config:
    model: 'embed-english-v3.0'
    vector_dimension: 1024

embed-multilingual-v3.0.yaml

1
2
3
4
5
embedder:
  provider: cohere
  config:
    model: 'embed-multilingual-v3.0'
    vector_dimension: 1024

embed-multilingual-light-v3.0.yaml

1
2
3
4
5
embedder:
  provider: cohere
  config:
    model: 'embed-multilingual-light-v3.0'
    vector_dimension: 384

embed-english-v2.0.yaml

1
2
3
4
5
embedder:
  provider: cohere
  config:
    model: 'embed-english-v2.0'
    vector_dimension: 4096

embed-english-light-v2.0.yaml

1
2
3
4
5
embedder:
  provider: cohere
  config:
    model: 'embed-english-light-v2.0'
    vector_dimension: 1024

embed-multilingual-v2.0.yaml

1
2
3
4
5
embedder:
  provider: cohere
  config:
    model: 'embed-multilingual-v2.0'
    vector_dimension: 768

Ollama

Ollama 使您可以直接在本地计算机上生成高质量的嵌入。请确保安装 Ollama 并保持其运行状态,然后再使用嵌入模型。

您可以在 Ollama 嵌入模型 中找到模型列表。

以下是如何使用 Ollama 的嵌入模型的示例:

main.py

1
2
3
4
5
import os
from embedchain import App

# 从 config.yaml 文件加载嵌入模型配置
app = App.from_config(config_path="config.yaml")

config.yaml

1
2
3
4
embedder:
  provider: ollama
  config:
    model: 'all-minilm:latest'

Clarifai

使用以下命令安装相关依赖项:

1
pip install --upgrade 'embedchain[clarifai]'

设置 CLARIFAI_PAT 作为环境变量,您可以在 security page 找到它。您也可以将 PAT 密钥作为参数传递给 LLM/Embedder 类(可选)。

现在您已经准备好探索 Embedchain。

main.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import os
from embedchain import App

os.environ["CLARIFAI_PAT"] = "XXX"

# 从 config.yaml 文件加载 LLM 和嵌入模型配置
app = App.from_config(config_path="config.yaml")

# 现在添加一些数据。
app.add("https://www.forbes.com/profile/elon-musk")

# 查询应用
response = app.query("what college degrees does elon musk have?")

前往 Clarifai Platform 探索所有可用的最先进的嵌入模型。 要传递 LLM 模型推理参数,请使用配置文件中的 model_kwargs 参数。您也可以使用 api_key 参数传递 CLARIFAI_PAT

config.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
llm:
 provider: clarifai
 config:
   model: "https://clarifai.com/mistralai/completion/models/mistral-7B-Instruct"
   model_kwargs:
     temperature: 0.5
     max_tokens: 1000  
embedder:
 provider: clarifai
 config:
   model: "https://clarifai.com/clarifai/main/models/BAAI-bge-base-en-v15"