
Langchain-Chatchat 如何借助 xinference_manager 让 Xinference 加载本机已下载的模型【免费下载链接】Langchain-ChatchatLangchain-Chatchat原Langchain-ChatGLM基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Llama) RAG and Agent app with langchain项目地址: https://gitcode.com/GitHub_Trending/la/Langchain-ChatchatXinference 的内置模型默认会自动下载。如果你已经把模型文件下载到了本机磁盘希望 Xinference 启动该模型时直接读取本地目录、不再重复下载可以用 Langchain-Chatchat 仓库中提供的 xinference_manager.py这是一个 Streamlit 页面在启动 Xinference 服务后运行它按页面提示为指定模型设置本地路径即可README.md 中的说明。本文面向的场景是模型文件已在本机需要让 XF 内置的模型注册指向该本地路径并确认设置生效。适用前提Xinference 服务已安装并可启动Langchain-Chatchat 项目代码在本地可访问tools/model_loaders目录所在的项目仓库。准备条件README.md 明确要求为避免依赖冲突将 Langchain-Chatchat 与模型部署框架Xinference 等放在不同的 Python 虚拟环境中比如 conda、venv、virtualenv。libs/chatchat-server/README.md 还补充了一个已知问题chatchat 不能与 xinference 装在同一个环境里否则会让一些插件出 bug例如文件无法上传。环境要求与依赖安装以 Xinference 环境配置手册 为准手册示例使用 Python 3.8项目本身支持 Python 3.8–3.11chatchat 环境如果尚未安装conda create -p ~/miniconda3/envs/chatchat python3.8 conda activate ~/miniconda3/envs/chatchat pip install langchain-chatchat[xinference] -U搭配 Xinference 框架使用时README 建议使用带[xinference]的安装方式因为接入 Xinference 时需要额外安装对应的 Python 依赖库。手册中另有pip install xinference_client faiss-gpu unstructured[pdf]可按需执行。xinference 环境手册中的写法conda create -p ~/miniconda3/envs/xinference python3.8 conda activate ~/miniconda3/envs/xinference pip install xinference --force pip install tiktoken sentence-transformers注意xinference_manager.py的代码中直接import xinference.client、xinference.model.llm等模块所以运行该页面要在安装了 xinference 框架的环境里即上面创建的 xinference 环境而不是 chatchat 环境。启动 XF 服务手册中的写法conda activate ~/miniconda3/envs/xinference xinference-localxinference-local服务起来后页面与手册中使用的默认地址是http://127.0.0.1:9997。启动 xinference_manager 页面进入项目的tools/model_loaders目录按 README.md 给出的命令执行streamlit run xinference_manager.py页面打开后侧边栏会提示请先执行 xinference 或 xinference-local 命令启动 XF 服务。然后将 XF 服务地址配置在下方。 在 Xinference endpoint 输入框中填入服务地址默认值http://127.0.0.1:9997如果你的 XF 服务在别的地址就改成实际地址。如果 XF 服务没启动页面无法列出运行中的模型和注册信息。页面主体包含当前运行的模型一张表格UID、type、name、ability、size、quant、max_tokens来自 XF 服务的list_models接口用于确认哪些模型已在运行配置模型路径模型类别、模型名称、模型格式、模型大小、模型量化等下拉框以及本地路径输入框与三个操作按钮。为内置模型设置本机路径主路径页面自带的使用方法里把本场景称为场景1我已经下载过模型不想 XF 内置模型重复下载操作是选择对应的模型后填写好本地模型路径点设置模型缓存即可。具体步骤在 模型类别 中选择类型。页面支持的类别为LLM、embedding、image、rerank、audio。在 模型名称 中选择 XF 的模型注册列表中的名字列表来自 XF 服务包含内置模型与已注册的自定义模型。如果类别是 LLM页面会再要求选择 模型格式如pytorch、模型大小如 9B、模型量化none表示不量化这些选项的候选值都来自该模型在 XF 中的注册信息model_specs。查看页面中部的状态文本未缓存时显示 模型尚未缓存已缓存时显示 模型已缓存。并给出缓存路径、原始路径和版本号。在 本地模型绝对路径 输入框中填入本机模型目录的绝对路径必须是存在的目录。点击 设置模型缓存。设置模型缓存 的实际行为来自 xinference_manager.py 源码操作前需要知道它会先校验路径是绝对路径且目录存在否则页面报错 必须输入存在的绝对路径不执行任何修改如果该模型已有缓存目录会先删除已有的缓存目录再建立指向你填写的本地路径的缓存对 LLM还会重新生成对应的 meta 文件并在 huggingface 与 modelscope 两个 hub 的 meta 位置写入{revision: ...}信息。从源码看缓存目录是一个指向本地模型目录的链接页面展示 原始路径 时读取的是链接目标所以 设置模型缓存 不会复制、移动或删除你本地的模型文件。如何确认设置已生效点击 设置模型缓存 后页面会重新加载判断依据仍是状态文本显示 模型已缓存。 且带出缓存路径、原始路径即你的本地路径、版本号说明本地路径已生效版本号一栏会标注 (符合要求) 或 (与 XF 内置版本号不一致)。这是页面把本地模型目录中 meta 文件的 revision 与 XF 内置注册要求的model_revision做比对的结果可用它判断本地模型版本是否与 XF 内置规格一致页面顶部的 当前运行的模型 表格可随时查看 XF 服务当前实际运行的模型模型需要另行启动设置缓存本身不会启动模型。LLM 的缓存目录命名规则源码中的get_cache_dir在 XF 缓存目录XINFERENCE_CACHE_DIR下为{model_name}-{model_format}-{model_size}b其他模型类别为{model_name}。如果你要手动核对缓存可以按这个规则定位目录。设置错路径后如何修正页面说明的场景3我不小心设置了错误的模型路径给出两条修正路径点击 删除模型缓存删除该模型现有的缓存目录源码中使用os.rmdir只移除链接目录本身不触碰你的本地模型文件或者在输入框中填入正确路径后再次点击 设置模型缓存由脚本先删旧缓存再建新缓存。可选分支注册为自定义模型如果你不只是想让 XF 使用本地文件而是想对 XF 内置模型的注册信息做一些修改页面说明的场景2我想对 XF 内置模型做一些修改又不想从头写模型注册文件选择对应模型、填好本地路径后点 注册为自定义模型。副作用需要明确该操作会向 XF 服务写入一条新的模型注册persistTrue持久化保存模型名会在原名后追加-custom模型来源model_uri指向你填写的本地路径、版本要求被清空。之后启动模型要用这个新注册的名字。如果只想要场景1的效果不要点这个按钮。下一步缓存设置生效后回到 Xinference 服务启动该模型再把模型配置进 Langchain-Chatchat。Xinference 环境配置手册 给出了完整的后续流程通过 XF 的/v1/models接口启动模型然后用如下命令把平台写入 chatchat 配置手册中的示例值llm_models、embed_models里的模型名需替换为你自己启动的模型名chatchat-config model --set_model_platforms [{ \platform_name\: \xinference\, \platform_type\: \xinference\, \api_base_url\: \http://127.0.0.1:9997/v1\, \api_key\: \EMPT\, \api_concurrencies\: 5, \llm_models\: [ \autodl-tmp-glm-4-9b-chat\ ], \embed_models\: [ \bge-large-zh-v1.5\ ], \image_models\: [], \reranking_models\: [], \speech2text_models\: [], \tts_models\: [] }]启动 chatchat 前手册中还有初始化配置chatchat-config basic与知识库初始化chatchat-kb -r等步骤详见 docs/install/README_xinference.md。限制与注意本地路径必须是存在的绝对路径页面不会接受相对路径也不会替你创建目录设置模型缓存 会删除该模型已有的缓存目录再重建若已有同名缓存且其中包含 XF 先前下载的内容会以你填写的本地路径为准该页面依赖 xinference 框架本身直接导入xinference.model.*不要在只装了xinference_client的环境里运行版本号比对显示 (与 XF 内置版本号不一致) 时说明本地模型 meta 中的 revision 与 XF 内置规格不同启动前需要自行确认本地文件与所选规格的对应关系。【免费下载链接】Langchain-ChatchatLangchain-Chatchat原Langchain-ChatGLM基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Llama) RAG and Agent app with langchain项目地址: https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考