Langchain-Chatchat模型框架集成:Xinference、Ollama、LocalAI全解析

【免费下载链接】Langchain-Chatchat Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM) QA app with langchain 【免费下载链接】Langchain-Chatchat 项目地址: https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat

引言:本地LLM部署的三大技术路径对比

你是否还在为本地知识库问答系统的模型部署框架选型而困扰?面对Xinference、Ollama和LocalAI等多种方案,如何选择最适合自己的技术路径?本文将深入剖析这三种主流模型部署框架与Langchain-Chatchat的集成方法,帮助你快速构建高效、灵活的本地LLM应用。

读完本文,你将能够:

  • 掌握Xinference、Ollama和LocalAI的核心特性与适用场景
  • 分步实现三大框架与Langchain-Chatchat的无缝集成
  • 优化模型部署性能,解决常见集成问题
  • 根据实际需求选择最适合的模型部署方案

框架对比:技术特性与选型指南

三大框架核心特性对比表

特性 Xinference Ollama LocalAI
开发语言 Python Go Go
模型兼容性 支持多种模型格式(PyTorch/TensorFlow等) 专用Modelfile格式 兼容OpenAI API格式
部署难度 中等 简单 中等
资源占用 中高 中等 中高
分布式支持 支持 不支持 有限支持
社区活跃度
主要优势 多模型支持、Python生态集成 简单易用、一键部署 轻量级、高度定制化

技术架构对比

mermaid

Xinference集成实战:从环境配置到模型调用

环境准备与部署

Xinference作为功能全面的模型部署框架,需要单独的Python环境以避免依赖冲突。以下是详细的部署步骤:

  1. 创建独立conda环境
# 创建并激活chatchat环境
conda create -p ~/miniconda3/envs/chatchat python=3.8
conda activate ~/miniconda3/envs/chatchat
pip install langchain-chatchat -U
pip install xinference_client faiss-gpu "unstructured[pdf]"

# 创建并激活xinference环境
conda create -p ~/miniconda3/envs/xinference python=3.8
conda activate ~/miniconda3/envs/xinference
pip install xinference --force
pip install tiktoken sentence-transformers
  1. 启动Xinference服务
conda activate ~/miniconda3/envs/xinference
xinference-local > xinference.log 2>&1 &
  1. 验证服务启动
# 检查日志确认服务启动成功
grep "Uvicorn running on http://127.0.0.1:9997" xinference.log

模型注册与加载

  1. 注册LLM模型

创建模型注册脚本model_registrations.sh

curl 'http://127.0.0.1:9997/v1/model_registrations/LLM' \
  -H 'Content-Type: application/json' \
  --data-raw '{"model":"{\"version\":1,\"model_name\":\"autodl-tmp-glm-4-9b-chat\",\"model_description\":\"GLM-4 9B Chat Model\",\"context_length\":2048,\"model_lang\":[\"en\",\"zh\"],\"model_ability\":[\"generate\",\"chat\"],\"model_family\":\"glm4-chat\",\"model_specs\":[{\"model_uri\":\"/path/to/your/model\",\"model_size_in_billions\":9,\"model_format\":\"pytorch\",\"quantizations\":[\"none\"]}],\"prompt_style\":{\"style_name\":\"CHATGLM3\",\"roles\":[\"user\",\"assistant\"],\"stop\":[\"<|endoftext|>\",\"<|user|>\"]}}","persist":true}'
  1. 注册Embedding模型

创建model_registrations_emb.sh

curl 'http://127.0.0.1:9997/v1/model_registrations/embedding' \
  -H 'Content-Type: application/json' \
  --data-raw '{"model":"{\"model_name\":\"autodl-tmp-bge-large-zh\",\"dimensions\":768,\"max_tokens\":512,\"model_uri\":\"/path/to/embedding/model\",\"language\":[\"en\",\"zh\"]}","persist":true}'
  1. 启动模型
bash ./model_registrations.sh
bash ./model_registrations_emb.sh
bash ./start_models.sh
bash ./start_models_emb.sh

Langchain-Chatchat配置

  1. 初始化配置
conda activate ~/miniconda3/envs/chatchat
chatchat-config basic --verbose true
chatchat-config basic --data ~/chatchat-data
  1. 配置Xinference模型平台
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\"
    ]
}]"
  1. 启动应用
# 初始化知识库
chatchat-kb -r

# 启动服务
chatchat -a

Ollama集成指南:轻量级模型部署方案

Ollama快速部署

Ollama提供了极其简单的模型部署方式,只需几步即可完成:

  1. 安装Ollama
# Linux系统安装
curl https://ollama.ai/install.sh | sh
  1. 拉取并运行模型
# 拉取并运行LLaMA 2模型
ollama run llama2

# 或运行本地模型
ollama create mymodel -f Modelfile
  1. 验证服务
curl http://localhost:11434/api/chat -d '{
  "model": "llama2",
  "messages": [{"role": "user", "content": "Hello"}]
}'

与Langchain-Chatchat集成

  1. 配置Ollama平台
chatchat-config model --set_model_platforms "[{
    \"platform_name\": \"ollama\",
    \"platform_type\": \"ollama\",
    \"api_base_url\": \"http://127.0.0.1:11434/v1\",
    \"api_key\": \"EMPTY\",
    \"llm_models\": [
        \"llama2:7b\"
    ]
}]"
  1. Modelfile自定义示例
FROM llama2:7b

# 设置系统提示
SYSTEM """
你是一个帮助用户解答技术问题的助手。
"""

# 调整参数
PARAMETER temperature 0.7
PARAMETER top_p 0.9
  1. 使用自定义模型
# 创建自定义模型
ollama create tech-assistant -f Modelfile

# 在Langchain-Chatchat中配置
chatchat-config model --add_llm_model "tech-assistant"

LocalAI集成方案:开源API兼容层

LocalAI部署与配置

  1. 使用Docker部署
# 启动LocalAI容器
docker run -d -p 8080:8080 -v ./models:/models -e DEBUG=true localai/localai:latest
  1. 模型准备
# 创建模型目录
mkdir -p ./models/chat/completions

# 下载模型文件到对应目录
wget -O ./models/chat/completions/model.bin https://example.com/model.bin
  1. 配置模型

创建./models/chat/completions/config.json

{
  "name": "chat",
  "parameters": {
    "model": "model.bin",
    "temperature": 0.7,
    "top_p": 0.9
  },
  "backend": "transformers"
}

与Langchain-Chatchat集成

  1. 配置LocalAI平台
chatchat-config model --set_model_platforms "[{
    \"platform_name\": \"localai\",
    \"platform_type\": \"openai\",
    \"api_base_url\": \"http://127.0.0.1:8080/v1\",
    \"api_key\": \"EMPTY\",
    \"llm_models\": [
        \"chat\"
    ]
}]"
  1. 验证集成
# 测试模型调用
chatchat test-model --platform localai --model chat --prompt "Hello"

性能优化与最佳实践

资源分配策略

模型规模 CPU核心数 内存要求 GPU显存 推荐框架
7B以下 4+ 16GB+ 4GB+ Ollama
7B-13B 8+ 32GB+ 8GB+ Xinference/LocalAI
13B+ 16+ 64GB+ 16GB+ Xinference

常见问题解决方案

  1. 模型加载失败
# 检查日志
tail -f xinference-output.log

# 常见原因及解决:
# 1. 模型路径错误 - 确保模型URI正确
# 2. 依赖缺失 - 安装所需依赖包
# 3. 资源不足 - 关闭其他占用资源的进程
  1. API调用超时
# 调整API超时设置
chatchat-config model --set_api_timeout 300
  1. 性能优化建议

mermaid

总结与展望

本文详细介绍了Xinference、Ollama和LocalAI三大模型部署框架与Langchain-Chatchat的集成方法。通过对比分析,我们可以看到:

  • Xinference适合需要多模型支持和Python生态集成的场景,提供了强大的分布式能力
  • Ollama以其简单易用的特性,成为快速部署和测试的理想选择
  • LocalAI则为需要OpenAI API兼容性的用户提供了轻量级解决方案

随着本地LLM技术的不断发展,我们可以期待这些框架在性能优化、多模态支持和易用性方面的进一步提升。建议用户根据实际需求选择合适的框架,并关注项目的最新更新。

收藏本文,随时查阅三大框架的集成方法,关注项目以获取最新技术动态。如有任何问题或建议,欢迎在评论区留言讨论。

附录:资源与参考

  1. 官方文档

    • Xinference: https://inference.readthedocs.io
    • Ollama: https://ollama.ai/docs
    • LocalAI: https://localai.io/docs
  2. 模型下载

    • Hugging Face: https://huggingface.co/models
    • ModelScope: https://modelscope.cn/models
  3. 社区支持

    • Langchain-Chatchat GitHub: https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat
    • 讨论群组: 项目Discussions板块

【免费下载链接】Langchain-Chatchat Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM) QA app with langchain 【免费下载链接】Langchain-Chatchat 项目地址: https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐