Xinference 是一个强大且多功能的库,旨在服务 LLM(大型语言模型), 语音识别模型和多模态模型,甚至可以在您的笔记本电脑上运行。它支持多种与 GGML 兼容的模型,如 chatglm、baichuan、whisper、vicuna、orca 等众多模型。
概述
集成详情
| 类 | 包 | 可序列化 | [JS 支持] | 下载量 | 版本 |
|---|---|---|---|---|---|
ChatXinference | langchain-xinference | ❌ | ✅ | ✅ | ✅ |
模型特性
| 工具调用 | 结构化输出 | 图像输入 | 音频输入 | 视频输入 | Token 级流式输出 | 原生异步 | Token 使用量 | 对数概率 |
|---|---|---|---|---|---|---|---|---|
| ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
设置
安装 Xinference 通过 PyPI:
pip install -qU "xinference[all]"
在本地或分布式集群中部署 xinference
对于本地部署,运行 xinference.
要在集群中部署 Xinference,首先使用 xinference-supervisor启动 Xinference 主管。您还可以使用 -p 选项指定端口,-H 选项指定主机。默认端口是 8080,默认主机是 0.0.0.0。
然后,使用以下命令启动 Xinference 工作进程: 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 package:
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.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 参考文档
有关所有 ChatXinference 功能和配置的详细文档,请前往 API 参考文档: github.com/TheSongg/langchain-xinference