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 密钥的环境变量名称,并根据模型版本设置
dimensions、timeout等参数。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-small、text-embedding-3-large。不指定时默认为text-embedding-3-small。api_key_env:API Key 所在的环境变量名,默认是OPENAI_API_KEY。timeout:请求超时时间(秒),可选。max_retries:请求失败时的最大重试次数,可选。dimensions:输出向量维度(仅当模型支持动态维度时生效,如text-embedding-3-small可从默认 1536 调整为更小值),可选。