探索 Qianfan 平台:使用 Langchain 进行大规模聊天模型的开发
引言
Baidu AI Cloud 的 Qianfan 平台是一站式的大模型开发与运营平台,特别适合企业级开发者。该平台不仅提供了如文心一言(ERNIE-Bot)等大型模型,还支持多种开源模型,使得大模型应用的开发更加便捷。在本文中,我们将介绍如何使用 Langchain 与 Qianfan 的聊天模型进行交互。
主要内容
API 初始化
在使用基于百度 Qianfan 的 LLM 服务之前,必须初始化必要的参数。AK(Access Key)和 SK(Secret Key)可以通过设置环境变量的方式进行初始化:
export QIANFAN_AK=XXX
export QIANFAN_SK=XXX
支持的模型
Qianfan 平台当前支持的模型包括:
- ERNIE-Bot-turbo(默认模型)
- ERNIE-Bot
- BLOOMZ-7B
- Llama-2 系列
- Qianfan 系列
- ChatGLM2-6B-32K 等
使用 Langchain 进行聊天模型开发
使用 Langchain 开发聊天模型应用程序非常简单。以下是一个基本的初始化和调用示例:
import os
from langchain_community.chat_models import QianfanChatEndpoint
from langchain_core.language_models.chat_models import HumanMessage
os.environ["QIANFAN_AK"] = "Your_api_key" # 使用API代理服务提高访问稳定性
os.environ["QIANFAN_SK"] = "You_secret_Key"
# 创建聊天端点实例
chat = QianfanChatEndpoint(streaming=True)
# 创建人类消息对象
messages = [HumanMessage(content="Hello")]
# 调用聊天模型
response = chat.invoke(messages)
print(response.content)
流式传输
Qianfan 平台支持流式传输,从而可以实时获取聊天模型的响应。以下是一个简单的流式调用示例:
try:
for chunk in chat.stream(messages):
print(chunk.content, end="", flush=True)
except TypeError as e:
print("")
使用不同模型
虽然 ERNIE-Bot-turbo 是默认模型,但您可以通过自定义端点来使用其他模型。假设您已经在 Qianfan 控制台部署了您的自定义模型:
chatBot = QianfanChatEndpoint(
streaming=True,
model="ERNIE-Bot",
)
response = chatBot.invoke(messages)
print(response.content)
模型参数
对于 ERNIE-Bot 和 ERNIE-Bot-turbo,您可以指定模型参数,如 temperature
、top_p
、以及 penalty_score
:
chat.invoke(
[HumanMessage(content="Hello")],
**{"top_p": 0.4, "temperature": 0.1, "penalty_score": 1},
)
常见问题和解决方案
- API 访问不稳定:由于某些地区的网络限制,可以考虑使用 API 代理服务以提高访问稳定性。
- 模型响应延迟:确保在 Qianfan 平台上正确配置模型参数和端点,以优化响应时间。
总结与进一步学习资源
通过结合使用 Langchain 和 Qianfan 平台,您可以快速构建强大的聊天应用程序。如果您对其他模型类型(例如嵌入式或补全模型)感兴趣,可以参考相关的文档资源。
进一步学习资源
参考资料
- Langchain API Reference: QianfanChatEndpoint
- Baidu Qianfan 官方指南
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—