跳到主要内容
版本:V1.1.0

OpenAI

OpenAI Embedding 模型是自然语言处理领域的核心工具,能够将文本(词、句、段落)高效地转化为高维向量(嵌入)。这些向量由高性能的预训练模型(如 text-embedding-3-large)生成,能够深度捕捉文本的语义信息,而无需用户进行额外的训练。其核心原理是将原始文本映射到一个密集的向量空间中,通过计算向量间的距离(如余弦相似度)即可方便地衡量文本间的语义相似性。该技术广泛应用于语义搜索、智能问答、文本聚类与分类、推荐系统增强以及检索增强生成(RAG)等场景。

提示

使用 OpenAI 服务需要遵循 OpenAI 的收费规则,可能产生相应费用。请在继续前,访问其官网或查阅相关文档,确认并接受其收费标准。如不同意,请勿继续操作。

依赖与鉴权

  • 已安装 pyseekdb 和 openai 库。openai 是 OpenAI 官方提供的 Python SDK。

  • 需要在 OpenAI Platform 注册账号并创建 API 密钥。然后将该密钥设置为环境变量,以供 OpenAIEmbeddingFunction 读取使用。

示例:创建 OpenAI Embedding Function

在代码中导入并初始化 OpenAIEmbeddingFunction。通常,API 密钥通过环境变量管理。

  • 基本用法

    不指定模型名称时,默认使用 text-embedding-3-small 模型。

    from pyseekdb.utils.embedding_functions import OpenAIEmbeddingFunction

    # 使用默认模型 text-embedding-3-small 和默认环境变量 OPENAI_API_KEY
    ef = OpenAIEmbeddingFunction()
  • 高级用法与自定义配置

    自定义 API 密钥的环境变量名称,并根据模型版本设置 dimensionstimeout 等参数。

    from pyseekdb.utils.embedding_functions import OpenAIEmbeddingFunction

    # 使用经济高效的模型
    ef = OpenAIEmbeddingFunction(model_name="text-embedding-3-small")

    # 使用高精度的模型,并配置超时与重试策略
    ef = OpenAIEmbeddingFunction(
    model_name="text-embedding-3-large",
    timeout=30,
    max_retries=3
    )

    # 使用动态维度的模型,并指定输出维度为 512
    ef = OpenAIEmbeddingFunction(
    model_name="text-embedding-3-small",
    dimensions=512 # Reduce from default 1536 to 512
    )

参数说明:

  • model_name:OpenAI Embedding 模型名称,例如 text-embedding-3-smalltext-embedding-3-large。不指定时默认为 text-embedding-3-small
  • api_key_env:API Key 所在的环境变量名,默认是 OPENAI_API_KEY
  • timeout:请求超时时间(秒),可选。
  • max_retries:请求失败时的最大重试次数,可选。
  • dimensions:输出向量维度(仅当模型支持动态维度时生效,如 text-embedding-3-small 可从默认 1536 调整为更小值),可选。