PassNAT LogoPassNAT

ChatOllama 开源AI聊天平台 多模态智能对话 支持Ollama等模型 帕斯内网穿透远程访问

作者

小编

发布时间

Curving abstract shapes with an orange and blue gradient

项目介绍

ChatOllama 是一个开源的聊天机器人平台,基于 Nuxt 3 构建,支持多种语言模型和高级功能。这是一个功能强大的 AI 聊天平台,支持包括 OpenAI、Anthropic、Google Gemini、Groq、Moonshot、Ollama 等多种语言模型提供商。

该项目的核心特色在于其丰富的功能集成:支持 AI 智能代理、多模态聊天(文本和图像输入)、知识库(RAG 检索增强生成)、实时语音聊天、模型上下文协议(MCP)集成等。项目还内置了向量数据库支持(Chroma 和 Milvus),提供完整的 Docker 支持,并支持多语言国际化。

特别值得一提的是,ChatOllama 支持深度代理功能,AI 代理可以通过工具访问进行研究和任务执行,大大扩展了 AI 的能力边界。项目还提供了灵活的访问控制列表(ACL)功能,可以控制谁能配置 MCP 服务器,适合不同的部署环境需求。

项目地址: 点我跳转

部署安装

如需在外也打开项目需要配置内网穿透使用,点击前往 帕斯内网穿透,先注册好账号备用。

复制下列的配置文件

1services:
2 postgres:
3 image: postgres:16-alpine
4 environment:
5 - POSTGRES_DB=chatollama
6 - POSTGRES_USER=chatollama
7 - POSTGRES_PASSWORD=chatollama_password
8 ports:
9 - '5432:5432'
10 restart: always
11 volumes:
12 - postgres_data:/var/lib/postgresql/data
13 healthcheck:
14 test: ['CMD-SHELL', 'pg_isready -U chatollama -d chatollama']
15 interval: 10s
16 timeout: 5s
17 retries: 5
18 start_period: 30s
19
20 chromadb:
21 image: chromadb/chroma
22 ports:
23 - '8000:8000'
24 restart: always
25 volumes:
26 - chromadb_volume:/chroma/chroma
27
28 chatollama:
29 environment:
30 - ACL_ENABLED=false
31 - NUXT_KNOWLEDGE_BASE_ENABLED=true
32 - NUXT_REALTIME_CHAT_ENABLED=false
33 - NUXT_MODELS_MANAGEMENT_ENABLED=true
34 - NUXT_MCP_ENABLED=true
35 - CHROMADB_URL=http://chromadb:8000
36 - DATABASE_URL=postgresql://chatollama:chatollama_password@postgres:5432/chatollama
37 - DIRECT_URL=postgresql://chatollama:chatollama_password@postgres:5432/chatollama
38 - REDIS_HOST=redis
39 - SKIP_MIGRATION=false
40 - MIGRATION_TIMEOUT=300
41 image: 0001coder/chatollama:latest
42 pull_policy: always
43 ports:
44 - '3000:3000'
45 restart: always
46 depends_on:
47 postgres:
48 condition: service_healthy
49 chromadb:
50 condition: service_started
51 redis:
52 condition: service_started
53 volumes:
54 - ~/.chatollama:/app/data
55
56 redis:
57 image: redis:latest
58 restart: always
59 volumes:
60 - redis_data:/data
61
62 peanutshell:
63 image: ghcr.io/sugarforever/peanut-shell:latest
64 volumes:
65 - hf_data:/root/.cache
66
67volumes:
68 postgres_data:
69 chromadb_volume:
70 redis_data:
71 hf_data:

打开飞牛 NAS 或其他的 NAS 设备

项目名称可以随便填,点击创建 docker-compose.yml

点击 Compose -> 新建项目

如果需要修改数据库密码,可以修改 POSTGRES_PASSWORD 和 DATABASE_URL 中的密码部分,但需要保持两处一致。

如果提示端口被占用可以修改下面的字段,但是需要保持格式正确: - 3000:3000 (ChatOllama 主服务端口) - 5432:5432 (PostgreSQL 数据库端口) - 8000:8000 (ChromaDB 向量数据库端口)

创建成功后可以访问 ip:3000 到这里就可以正常显示项目了

穿透公网

打开帕斯内网穿透控制台,点击隧道管理-隧道列表

点击创建新隧道

隧道节点可以随便选,一般选个负载低的就可以

接下来填写信息,隧道名称可以随便填写

本地 IP 默认就可以

传输协议可以选择 TCP 也可以选择 HTTP/HTTPS

HTTP 就是域名的形式,教程以使用 TCP 为演示

本项目中如果没有修改端口的话默认是 3000 端口,这里本地 IP 就填 3000

远程端口可以留空也可以自定义。下图仅做参考,请按照实际项目端口添加。

填写完毕点击确定

点击刚才创建好的隧道,点击获取配置文件

回到飞牛 NAS,点击应用中心下载 frpc 客户端

打开后粘贴刚才复制的配置文件,点击确定即可

复制帕斯内网穿透控制台的访问 IP 和端口

可以看到已经正常穿透成功了

本篇教程结束