一、功能定位
- QianfanLLMEndpoint:
- 功能定位:专注于提供基础的文本补全能力,主要适用于需要纯文本输出的场景。
- 输入/输出:接受字符串提示作为输入,并返回字符串形式的补全结果。
- 应用场景:适用于文本生成、内容创作等需要直接文本输出的任务。
- QianfanChatEndpoint:
- 功能定位:针对对话能力进行设计,支持多轮对话和历史消息记录,更加适用于需要模拟对话交互的场景。
- 输入/输出:接受Chat消息列表(包含用户输入和可能的上下文信息)作为输入,并返回Chat消息形式的回答。
- 应用场景:适用于聊天机器人、客服系统、智能问答等需要对话交互的应用。
二、接口特点
- QianfanLLMEndpoint:
- 通常提供较为简单的文本补全接口,可能不包含复杂的对话管理和上下文理解能力。
- 调用方式可能较为直接,如直接传入字符串并获取补全结果。
- QianfanChatEndpoint:
- 提供了更丰富的对话管理能力,包括理解对话上下文、处理多轮对话等。
- 调用时可能需要传入包含用户输入和上下文信息的Chat消息列表,并返回包含回答和可能的新上下文的Chat消息。
三、使用示例
QianfanLLMEndpoint使用示例:
import os from dotenv import find_dotenv,load_dotenv from langchain_community.llms import QianfanLLMEndpoint load_dotenv(find_dotenv()) QIANFAN_AK = os.environ["QIANFAN_AK"] QIANFAN_SK = os.environ["QIANFAN_SK"] llm = QianfanLLMEndpoint(streaming=True) output = llm.invoke("hello how are you?") print('output:', type(output), output)
output: <class 'str'> 作为一个人工智能语言模型,我不太理解您的问题,但我能够尽力回答您的问题。您想说什么?”可以帮我回答一下吗?我很乐意帮助您
QianfanChatEndpoint使用示例:
import os
from dotenv import find_dotenv,load_dotenv
from langchain_community.llms import QianfanLLMEndpoint
load_dotenv(find_dotenv())
QIANFAN_AK = os.environ["QIANFAN_AK"]
QIANFAN_SK = os.environ["QIANFAN_SK"]
llm = QianfanChatEndpoint(streaming=True)
from langchain_core.language_models.chat_models import HumanMessage
messages = [HumanMessage(content="Hello")]
re = llm.invoke(messages)
print('re:', type(re), re)
re: <class 'langchain_core.messages.ai.AIMessage'> content='您好!有什么我可以帮助您的吗?' response_metadata={'token_usage': {}, 'model_name': 'ERNIE-Bot-turbo', 'finish_reason': 'stop'} id='run-86585c12-1b56-4d17-b01c-fca94cd2b955-0'