跳到主要內容

QianfanChatEndpoint

百度智能雲千帆平台是為企業開發者打造的一站式大模型開發及服務營運平台。千帆不僅提供文心一言(ERNIE-Bot)模型及第三方開源模型,還提供各種 AI 開發工具和全套開發環境,方便客戶輕鬆使用和開發大模型應用程式。

基本上,這些模型分為以下類型

  • 嵌入
  • 聊天
  • 完成

在本筆記本中,我們將介紹如何在 langchain 中使用千帆,主要在 Chat 中,對應於 langchain 中的套件 langchain/chat_models

API 初始化

若要使用基於百度千帆的 LLM 服務,您必須初始化這些參數

您可以選擇在環境變數中初始化 AK、SK,或初始化參數

export QIANFAN_AK=XXX
export QIANFAN_SK=XXX

目前支援的模型:

  • 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

設定

"""For basic init and call"""
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"
os.environ["QIANFAN_SK"] = "You_secret_Key"

用法

chat = QianfanChatEndpoint(streaming=True)
messages = [HumanMessage(content="Hello")]
chat.invoke(messages)
AIMessage(content='您好!请问您需要什么帮助?我将尽力回答您的问题。')
await chat.ainvoke(messages)
AIMessage(content='您好!有什么我可以帮助您的吗?')
chat.batch([messages])
[AIMessage(content='您好!有什么我可以帮助您的吗?')]

串流

try:
for chunk in chat.stream(messages):
print(chunk.content, end="", flush=True)
except TypeError as e:
print("")
您好!有什么我可以帮助您的吗?

在千帆中使用不同的模型

預設模型為 ERNIE-Bot-turbo,如果您想要部署基於 Ernie Bot 或第三方開源模型的自訂模型,您可以按照以下步驟操作

  1. (可選,如果模型包含在預設模型中,則跳過)在千帆控制台中部署您的模型,取得您自己的自訂部署端點。
  2. 在初始化中設定名為 endpoint 的欄位
chatBot = QianfanChatEndpoint(
streaming=True,
model="ERNIE-Bot",
)

messages = [HumanMessage(content="Hello")]
chatBot.invoke(messages)
AIMessage(content='Hello,可以回答问题了,我会竭尽全力为您解答,请问有什么问题吗?')

模型參數:

目前,只有 ERNIE-BotERNIE-Bot-turbo 支援以下模型參數,未來我們可能會支援更多模型。

  • temperature
  • top_p
  • penalty_score
chat.invoke(
[HumanMessage(content="Hello")],
**{"top_p": 0.4, "temperature": 0.1, "penalty_score": 1},
)
AIMessage(content='您好!有什么我可以帮助您的吗?')

此頁面是否對您有幫助?