Skip to main content
Open In Colab在 GitHub 上打开

ChatXinference

Xinference 是一个功能强大且用途广泛的库,旨在为 LLM 提供服务。 语音识别模型和多模态模型,甚至在您的笔记本电脑上。它支持多种与 GGML 兼容的模型,例如 chatglm、baichuan、whisper、vicuna、orca 等。

概述

集成详细信息

本地化序列 化[JS 支持]软件包下载最新包装
ChatXinferencelangchain-xinference

模型特点

工具调用结构化输出JSON 模式图像输入音频输入视频输入令牌级流式处理本机异步Token 使用情况日志

设置

安装Xinference通过 PyPI:

%pip install --upgrade --quiet  "xinference[all]"

在本地或分布式集群中部署 Xinference。

对于本地部署,请运行xinference.

要在集群中部署 Xinference,请首先使用xinference-supervisor.您还可以使用选项 -p 指定端口,使用选项 -H 指定主机。默认端口为 8080,默认主机为 0.0.0.0。

然后,使用xinference-worker在要运行它们的每台服务器上。

有关更多信息,您可以查阅 Xinference 的 README 文件。

包装纸

要将 Xinference 与 LangChain 一起使用,您需要先启动一个模型。您可以使用命令行界面 (CLI) 来执行此作:

%xinference launch -n vicuna-v1.3 -f ggmlv3 -q q4_0
Model uid: 7167b2b0-2a04-11ee-83f0-d29396a3f064

将返回模型 UID 供您使用。现在,您可以将 Xinference 与 LangChain 结合使用:

安装

LangChain Xinference 集成位于langchain-xinference包:

%pip install -qU langchain-xinference

确保您使用的是最新的 Xinference 版本进行结构化输出。

实例

现在我们可以实例化我们的 Model 对象并生成聊天补全:

from langchain_xinference.chat_models import ChatXinference

llm = ChatXinference(
server_url="your_server_url", model_uid="7167b2b0-2a04-11ee-83f0-d29396a3f064"
)

llm.invoke(
"Q: where can we visit in the capital of France?",
config={"max_tokens": 1024},
)

调用

from langchain_core.messages import HumanMessage, SystemMessage
from langchain_xinference.chat_models import ChatXinference

llm = ChatXinference(
server_url="your_server_url", model_uid="7167b2b0-2a04-11ee-83f0-d29396a3f064"
)

system_message = "You are a helpful assistant that translates English to French. Translate the user sentence."
human_message = "I love programming."

llm.invoke([HumanMessage(content=human_message), SystemMessage(content=system_message)])
API 参考:HumanMessage | SystemMessage 系统

链接

我们可以用 prompt 模板链接我们的模型,如下所示:

from langchain.prompts import PromptTemplate
from langchain_xinference.chat_models import ChatXinference

prompt = PromptTemplate(
input=["country"], template="Q: where can we visit in the capital of {country}? A:"
)

llm = ChatXinference(
server_url="your_server_url", model_uid="7167b2b0-2a04-11ee-83f0-d29396a3f064"
)

chain = prompt | llm
chain.invoke(input={"country": "France"})
chain.stream(input={"country": "France"})
API 参考:PromptTemplate

API 参考

有关所有 ChatXinference 功能和配置的详细文档,请访问 API 参考:https://github.com/TheSongg/langchain-xinference