开发个人Ollama-Chat--7 服务部署

开发个人Ollama-Chat–7 服务部署

服务部署

go-ChatGPT项目涉及的中间件服务较多,以下部署文件目录:

|-- chat-api
|   |-- etc
|   |   `-- config.yaml
|   `-- logs
|-- chat-rpc
|   |-- etc
|   |   `-- config.yaml
|   `-- logs
|-- docker-compose.yaml
|-- mysql
|   `-- data
|-- nginx
|   |-- conf
|   |   `-- conf.d
|   `-- data
|       `-- front
|-- ollama
|   |-- history
|   |-- id_ed25519
|   `-- id_ed25519.pub
|-- redis
|   `-- data
|       `-- dump.rdb
|-- user-api
|   |-- etc
|   |   `-- config.yaml
|   `-- logs
`-- user-rpc|-- etc|   `-- config.yaml`-- logs

docker-compose.yaml

version: '3.8'services:user-rpc:image: eilinge/open-ui-user-rpccontainer_name: user-rpcports:- "9001:9001"volumes:- ./user-rpc/etc/config.yaml:/app/etc/config.yaml- ./user-rpc/logs:/app/logsnetworks:- defaultdepends_on:- mysql- redis- etcduser-api:image: eilinge/open-ui-user-apicontainer_name: user-apiports:- "8081:8081"volumes:- ./user-api/etc/config.yaml:/app/etc/config.yaml- ./user-api/logs:/app/logsnetworks:- defaultdepends_on:- mysql- redis- etcdchat-rpc:image: eilinge/open-ui-chat-rpccontainer_name: chat-rpcports:- "9002:9002"volumes:- ./chat-rpc/etc/config.yaml:/app/etc/config.yaml- ./chat-rpc/logs:/app/logsnetworks:- defaultdepends_on:- mysql- redis- etcdchat-api:image: eilinge/open-ui-chat-apicontainer_name: chat-apiports:- "8082:8082"volumes:- ./chat-api/etc/config.yaml:/app/etc/config.yaml- ./chat-api/logs:/app/logsnetworks:- defaultdepends_on:- mysql- redis- etcdredis: # 服务名称image: redis:7.2.4 # redis镜像版本container_name: openui-redis # 容器名称volumes:- ./redis/data:/data # 映射数据目录,宿主机:容器restart: always # 容器开机自启ports:- 6379:6379privileged: true # 获取宿主机root权限networks:- defaultmysql: # 服务名称image: mysql:8.2.0 # redis镜像版本container_name: openui-mysql # 容器名称environment:- MYSQL_ROOT_PASSWORD=123456volumes:- ./mysql/data:/data # 映射数据目录,宿主机:容器restart: always # 容器开机自启ports:- 3306:3306privileged: true # 获取宿主机root权限networks:- defaultetcd:image: "bitnami/etcd:latest"  # 使用bitnami的etcd镜像container_name: openui-etcdenvironment:- ALLOW_NONE_AUTHENTICATION=yes  # 允许无认证访问- ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379  # 客户端访问地址- ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379ports:- 2379:2379- 2380:2380networks:- defaultetcdkeeper:container_name: openui-etcdkeeperimage: evildecay/etcdkeeper:v0.7.6ports:- "8099:8080"networks:- defaultnginx:image: nginx:latestcontainer_name: openui-nginxports:- "8080:80"- "8443:443"volumes:- ./nginx/conf/conf.d:/etc/nginx/conf.d- ./nginx/logs:/var/log/nginx- ./nginx/data/front:/data/front- /etc/nginx/ssl:/etc/nginx/ssl networks:- defaultollama:volumes:- ./ollama:/root/.ollamacontainer_name: ollamatty: truerestart: unless-stoppedimage: ollama/ollamaenvironment:- name=valueports:- 11434:11434networks:- defaultdeploy:resources:reservations:devices:- driver: nvidiacount: 1capabilities: [gpu]networks:default:external: truename: openui-net

Nginx 配置

经过前面几章的学习,相信一步一步走过来的同学会发现,user-apichat-api是2个独立的服务,各自启动在不同端口上,router也不一致,open-webUI如何实现调用一个统一的服务入口,就可以分别调用多个不同服务呢?

server {listen       80;listen       443 ssl; server_name  _;ssl_certificate     /etc/nginx/ssl/server.pem;ssl_certificate_key /etc/nginx/ssl/server.key;location /static/ {root /data/front;}location / {proxy_pass http://chat-api:8082;proxy_set_header X-Forwarded-Proto  $scheme; }location /api/v1/auths {proxy_pass http://user-api:8081;proxy_set_header X-Forwarded-Proto  $scheme;}
}

答案就在 nginx的配置文件defalut.conf中,user服务的router会走/api/v1/auths,chat相关服务则会走/

项目目录

jackwillsmith/go-chatgpt-env: go chatgpt env deploy (github.com)

jackwillsmith/openui-backend-go: openui-backend-go (github.com)

jackwillsmith/openui-svelte-build (github.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/44320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch第一天

学习目标: 能够理解ElasticSearch的作用能够安装ElasticSearch服务能够理解ElasticSearch的相关概念能够使用Postman发送Restful请求操作ElasticSearch能够理解分词器的作用能够使用ElasticSearch集成IK分词器能够完成es集群搭建 第一章 ElasticSearch简介 1.1 什么…

windows 中的 Nsight Systems 通过ssh 链接分析 Linux 中的cuda程序性能

1,Linux 环境 安装 ssh-server $ sudo apt install openssh-server 安装较新版本的 cuda sdk 下载cuda-samples github repo 编辑修改 ssh 配置: $ sudo vim /etc/ssh/sshd_config 删除相关注释,修改后如下: Port 22 Addres…

只会vue的前端开发工程师是不是不能活了?最近被一个flutter叼了

**Vue与Flutter:前端开发的新篇章** 在前端开发的世界里,Vue.js和Flutter无疑是两颗璀璨的明星。Vue以其轻量级、易上手的特点吸引了大量前端开发者的青睐,而Flutter则以其跨平台、高性能的优势迅速崛起。那么,对于只会Vue的前端…

【深度学习基础】环境搭建 linux系统下安装pytorch

目录 一、anaconda 安装二、创建pytorch1. 创建pytorch环境:2. 激活环境3. 下载安装pytorch包4. 检查是否安装成功 一、anaconda 安装 具体的安装说明可以参考我的另外一篇文章【环境搭建】Linux报错bash: conda: command not found… 二、创建pytorch 1. 创建py…

OceanBase:引领下一代分布式数据库技术的前沿

OceanBase的基本概念 定义和特点 OceanBase是一款由蚂蚁金服开发的分布式关系数据库系统,旨在提供高性能、高可用性和强一致性的数据库服务。它结合了关系数据库和分布式系统的优势,适用于大规模数据处理和高并发业务场景。其核心特点包括: …

【考研数学】25张宇强化36讲测评及强化阶段注意事项

张宇新版36讲创新真的很大🥹 引入了很多张宇老师认为对大家解题帮助很大的技巧和知识点,但是也有人认为是多余的。 张宇老师新版36讲第一讲就讲了整整8个小时!😭 大家想想,自己有那个时间去吃透36讲吗?如果…

python调用阿里云汇率接口

整体请求流程 介绍: 本次解析通过阿里云云市场的云服务来实现程序中对货币汇率实时监控,首先需要准备选择一家可以提供汇率查询的商品。 https://market.aliyun.com/apimarket/detail/cmapi00065831#skuyuncode5983100001 步骤1: 选择商品 如图点击…

debian 12 Install

debian 前言 Debian是一个基于Linux内核的自由和开放源代码操作系统,由全球志愿者组成的Debian项目维护和开发。该项目始于1993年,由Ian Murdock发起,旨在创建一个完整的、基于Linux的自由软件操作系统。 debian download debian 百度网盘…

分布式应用系统设计:即时消息系统

即时消息(IM)系统,涉及:站内消息系统 组件如下; 客户端: WEB页面,IM桌面客户端。通过WebSocket 跟ChatService后端服务连接 Chat Service: 提供WebSocket接口,并保持跟“客户端”状态的维护。…

会声会影分割音频怎么不能用 会声会影分割音频方法 会声会影视频制作教程 会声会影下载免费中文版2023

将素材中的音频分割出来,对声音部分进行单独编辑,是剪辑过程中的常用操作。会声会影视频剪辑软件在分割音频后,还可以对声音素材进行混音编辑、音频调节、添加音频滤镜等操作。有关会声会影分割音频怎么不能用,会声会影分割音频方…

如何快速制作您的数据可视化大屏?

数据大屏可视化主要就是借助图形,利用生动、直观的形式展示出数据信息的具体数值,使得使用者短时间内更加直观的接受到大量信息。数据大屏以直观、高度视觉冲击力的方式向受众揭示数据背后隐藏的规律,传达数据价值。其以图形化的形式呈现数据…

视频使用操作说明书-T80005系列视频编码器如何对接海康NVR硬盘录像机,包括T80005系列高清HDMI编码器、4K超高清HDMI编码器

视频使用操作说明书-T80005系列视频编码器如何对接海康NVR硬盘录像机,包括T80005系列高清HDMI编码器、4K超高清HDMI编码器。 视频使用操作说明书-T80005系列视频编码器如何对接海康NVR硬盘录像机,包括T80005系列高清HDMI编码器、4K超高清HDMI编码器 同三…

全国产T3+FPGA的SPI与I2C通信方案分享

近年来,随着中国新基建、中国制造2025规划的持续推进,单ARM处理器越来越难胜任工业现场的功能要求,特别是如今能源电力、工业控制、智慧医疗等行业,往往更需要ARM FPGA架构的处理器平台来实现例如多路/高速AD采集、多路网口、多路…

Tomcat多实例

一、Tomcat多实例 Tomcat多实例是指在同一台服务器上运行多个独立的tomcat实例,每个tomcat实例都具有独立的配置文件、日志文件、应用程序和端口,通过配置不同的端口和文件目录,可以实现同时运行多个独立的Tomcat服务器,每个服务…

element-plus 按需导入问题 404等问题

场景 新开一个项目,需要用element-plus这个ui库,使用按需引入。 这是我项目的一些版本号 "element-plus": "^2.7.6","vue": "^3.2.13","vue-router": "^4.0.3",过程(看解决方法…

FastGPT+OneAI接入网络模型

文章目录 FastGPT连接OneAI接入网络模型1.准备工作2.开始部署2.1下载 docker-compose.yml2.2修改docker-compose.yml里的参数 3.打开FastGPT添加模型3.1打开OneAPI3.2接入网络模型3.3重启服务 FastGPT连接OneAI接入网络模型 1.准备工作 本文档参考FastGPT的官方文档 主机ip接…

JVM是如何管理内存的?图文详解GC垃圾回收算法

前言:在C/C中对于变量的内存空间一般都是由程序员手动进行管理的,往往会伴随着大量的 malloc 和 free 操作,常常会有很多问题困扰开发者,这个代码会不会发生内存泄漏?会不会重复释放内存?但是在Java开发中我…

基于企业微信第三方接口开发,移除群成员通知

移除群成员通知 返回示例 {"flag": 0, "receiver": 0, "sender_name": "", "is_room": 1, "server_id": 15318083, "send_time": 1687688952, "sender": 1688855749266556, "referid&…

Spring源码十九:Bean实例化流程二

上一篇我们在Spring源码十八:Bean实例化流程一 中,主要讨论了Spring在实例化前的两重要准备工作,1、获取我们前面注册好的BeanDefinition,将GenericBeanDefinition封装为RootBeanDefinition如果Bean Definition只存在父容器中&…

.profile脚本

.profile 是一个用户级别的 shell 启动脚本,用于初始化用户环境设置,通常用于配置环境变量、设置路径、运行初始化命令等。以下是一个示例 if [ "$BASH" ]; thenif [ -f ~/.bashrc ]; then. ~/.bashrcfi fimesg n || true 这段代码通常出现在…