首页
/ Langchain-Chatchat项目基于Ollama和Qwen2的本地部署指南

Langchain-Chatchat项目基于Ollama和Qwen2的本地部署指南

2025-05-04 07:31:01作者:伍希望

前言

Langchain-Chatchat是一个功能强大的对话系统框架,支持多种大语言模型和向量模型的集成。本文将详细介绍如何在本地环境中使用Ollama服务部署Qwen2大语言模型和BGE向量模型,实现完整的Langchain-Chatchat系统运行。

环境准备

1. Ollama服务安装

Ollama是一个简化大语言模型本地部署的工具,最新版本为0.1.48。安装完成后,需要拉取所需的模型:

ollama pull qwen2:7b  # 根据需求选择合适大小的模型
ollama pull quentinz/bge-large-zh-v1.5:latest  # 向量模型

2. Python环境配置

推荐使用Pyenv管理Python环境,确保环境隔离。安装步骤如下:

pip install poetry
poetry config virtualenvs.prefer-active-python true
cd Langchain-Chatchat/libs/chatchat-server/
poetry install --with lint,test

配置文件调整

1. 模型配置修改

chatchat/configs/_model_config.py文件中,需要调整以下关键参数:

# 默认LLM模型设置
self.DEFAULT_LLM_MODEL = "qwen2:7b"

# 默认向量模型设置
self.DEFAULT_EMBEDDING_MODEL = "quentinz/bge-large-zh-v15"  # 注意去掉:latest后缀

# 模型平台配置
self.MODEL_PLATFORMS = [
    {
        "platform_name": "ollama",
        "platform_type": "ollama",
        "api_base_url": "http://127.0.0.1:11434/v1",
        "api_key": "sk",
        "api_concurrencies": 5,
        "llm_models": ["qwen2:7b"],
        "embed_models": ["quentinz/bge-large-zh-v1.5"],  # 同样去掉:latest
        # 其他模型类型保持空数组
    }
]

重要提示:向量模型名称必须完全一致,且不能包含:latest后缀,否则在使用FAISS向量库时会出现错误。

系统初始化与启动

1. 数据库初始化

在chatchat-server目录下执行:

python init_database.py --recreate-vs

初始化过程中可能会遇到关于libmupdf.so的警告,这通常不会影响主要功能。

2. 启动服务

执行以下命令启动所有服务组件:

python startup.py -a

服务启动后,可以通过浏览器访问http://127.0.0.1:8501/使用Web界面。

常见问题解决

  1. 模型名称不一致:确保DEFAULT_LLM_MODELMODEL_PLATFORMS中的llm_models名称完全一致,包括大小写和特殊字符。

  2. 向量模型访问错误:检查向量模型名称是否包含非法字符(如:latest),并确认Ollama服务已正确加载该模型。

  3. 端口占用问题:如果默认端口被占用,可以通过修改配置文件调整服务端口。

最佳实践建议

  1. 模型版本管理:为生产环境指定具体的模型版本号,而非使用latest标签,确保版本一致性。

  2. 性能监控:对于api_concurrencies参数,应根据服务器硬件配置合理设置,避免资源耗尽。

  3. 日志分析:定期检查服务日志,及时发现并解决潜在问题。

  4. 安全配置:虽然本地开发可以使用简单的API key如"sk",生产环境应使用更复杂的密钥。

结语

通过本文的指导,开发者可以成功在本地部署基于Ollama的Langchain-Chatchat系统,集成Qwen2大语言模型和BGE向量模型。这种部署方式不仅便于开发和测试,也为理解现代对话系统的架构提供了实践机会。随着Langchain-Chatchat项目的持续更新,建议关注新版本特性,如0.3.1版本引入的动态配置更新功能,这将进一步提升开发效率。

热门项目推荐
相关项目推荐

项目优选

收起
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
48
115
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
50
13
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
418
317
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
268
406
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
90
158
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TSX
312
29
carboncarbon
轻量级、语义化、对开发者友好的 golang 时间处理库
Go
7
2
ruoyi-airuoyi-ai
RuoYi AI 是一个全栈式 AI 开发平台,旨在帮助开发者快速构建和部署个性化的 AI 应用。
Java
90
25
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
87
239
CangjieMagicCangjieMagic
基于仓颉编程语言构建的 LLM Agent 开发框架,其主要特点包括:Agent DSL、支持 MCP 协议,支持模块化调用,支持任务智能规划。
Cangjie
555
39