ChatXinference
Xinference 是一个强大且多功能的库,用于提供LLM、语音识别模型和多模态模型,即使在你的笔记本电脑上也能使用。它支持多种兼容GGML的模型,如chatglm、baichuan、whisper、vicuna、orca等。
概览
集成细节
| Class | 包 | 本地 | 序列化 | [JS 支持] | Package downloads | Package 最新版本 |
|---|---|---|---|---|---|---|
| ChatXinference | langchain-xinference | ✅ | ❌ | ✅ | ✅ | ✅ |
模型特性
| 工具调用 | 结构化输出 | JSON 模式 | 图像输入 | 音频输入 | 视频输入 | Token级流式传输 | 原生异步 | Token 使用 | 对数概率 |
|---|---|---|---|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
设置
通过 PyPI 安装 Xinference:
%pip install --upgrade --quiet "xinference[all]"
部署本地或分布式集群中的Xinference。
对于本地部署,请运行xinference。
要在集群中部署Xinference,请首先通过xinference-supervisor启动一个Xinference调度器。您还可以使用选项-p指定端口,-H指定主机。默认端口是8080,默认主机是0.0.0.0。
然后,在每个您希望运行它们的服务器上使用xinference-worker启动Xinference工作者。
您可以从Xinference查阅README文件以获取更多信息。
包装器
要使用Xinference与LangChain配合,您需要首先启动一个模型。您可以使用命令行界面(CLI)来完成此操作:
%xinference launch -n vicuna-v1.3 -f ggmlv3 -q q4_0
Model uid: 7167b2b0-2a04-11ee-83f0-d29396a3f064
您将获得一个模型UID以供使用。现在您可以使用LangChain与Xinference配合使用:
安装
The LangChain Xinference集成位于langchain-xinference包中:
%pip install -qU langchain-xinference
请确保您正在使用最新版本的Xinference以获得结构化输出。
Instantiation
现在我们就可以实例化我们的模型对象并生成聊天完成内容:
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},
)
Invocation
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)])
链式调用
我们可以通过以下方式将模型与提示模板进行链接:
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 参考:提示模板
API 参考
详细介绍了所有ChatXinference功能和配置的文档,请参阅API参考:https://github.com/TheSongg/langchain-xinference