Skip to main content
Open In ColabOpen on GitHub

ChatXinference

Xinference 是一个强大且通用的库,用于部署 LLM、语音识别模型和多模态模型,甚至可以在你的笔记本电脑上运行。它支持多种与 GGML 兼容的 模型,例如 chatglm、baichuan、whisper、vicuna、orca 以及许多其他模型。

概览

集成详情

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

模型特性

Tool callingStructured outputJSON 模式Image inputAudio inputVideo inputToken-level streamingNative asyncToken usageLogprobs

设置

通过 PyPI 安装 Xinference

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

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

如需本地部署,请运行 xinference

要在集群中部署 Xinference,首先使用 xinference-supervisor 启动一个 Xinference supervisor。您也可以使用 -p 参数指定端口,使用 -H 参数指定主机。默认端口为 8080,默认主机为 0.0.0.0。

然后,在您想运行 Xinference worker 的每个服务器上使用 xinference-worker 启动 Xinference worker。

您可以查阅 Xinference 的 README 文件以获取更多信息。

Wrapper

要将 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。

实例化

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

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 Reference:HumanMessage | SystemMessage

链式调用

我们可以像这样将我们的模型与提示模板进行链式调用

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 Reference:PromptTemplate

API 参考

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