开发个人Go-ChatGPT--5 模型管理 (三)

开发个人Go-ChatGPT–5 模型管理 (三)

服务部署

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/41824.shtml

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

相关文章

CP AUTOSAR标准之UDPNetworkManagement(AUTOSAR_CP_SWS_UDPNetworkManagement)(更新中……)

1 简介和功能概述 本文档介绍了AUTOSAR UDP网络管理(UdpNm)的概念、核心功能、可选功能、接口和配置问题。UdpNm旨在成为一项可选功能。它旨在与TCP/IP堆栈协同工作,独立于所用通信系统的物理层。AUTOSAR UDP网络管理是一种独立于硬件的协议,可用于基于TCP/IP的系统(有关限制…

卡尔曼滤波Q和R怎么调

卡尔曼滤波器是一种有效的估计算法,主要用于在存在噪声的环境中估计动态系统的状态。它通过结合预测模型(系统动态)和观测数据(包括噪声)来实现这一点。在卡尔曼滤波中,调整过程噪声协方差矩阵 ( Q ) 和测量…

Java中的标准输入流简述

System.in简介 System.in 是标准输入流,通常与键盘输入相关联。它是 InputStream 类型的对象,Java 使用它来从控制台接收用户输入。在 Java 程序中,通常使用 Scanner 类来读取 System.in 的输入。 以下是一些关键点,解释为什么需…

Kubernetes运维工程师必备:K8s 基础面试题精编(一)

Kubernetes运维工程师必备:K8s 基础面试题精编(一) 1. 什么是Kubernetes?2. Kubernetes如何实现容器编排?3. 说出k8s的常见资源对象?4. 什么是pod?5. Deployment介绍及使用?6. statefulesets介绍及使用?7. statefulesets和deployment区别?8. 什么是调度器(Scheduler…

The First项目报告:NvirWorld与区块链游戏的未来

根据官方公告,The Fisrt现货区将于2024年7月2日16:00上架NVIR/USDT交易对,NVIR是NvirWorld平台的原生代币。作为一个去中心化解决方案,NvirWorld为开发者提供了一个简化且适应性强的环境,旨在通过优化的扩展解决方案来降低交易成本…

docker 本地部署大模型(ollama)

docker 安装 ollama docker search ollama docker pull ollama/ollama###docker下载ollama部署 docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama### 下载模型 docker exec -it ollama ollama pull llama3### 交互式运行模型docker exec -i…

ECharts 最小高度设置指南

下面提供一份关于ECharts中设置最小高度的专业而详细的文档。这份文档将涵盖不同图表类型的最小高度设置方法,适合初学者学习和参考。 ECharts 最小高度设置指南 1. 通用属性 对于大多数图表类型,可以使用以下通用属性来控制最小高度: 1.…

算法 —— 二分查找

目录 二分查找 在排序数组中查找元素的第一个和最后一个位置 搜索插入位置 x的平方根 山峰数组的峰顶索引 寻找峰值 搜索旋转排序数组中的最⼩值 点名 二分查找模板分为三种:1、朴素的二分模板 2、查找左边界的二分模板 3、查找右边界的二分模板&#xf…

【基于R语言群体遗传学】-12-超显性与次显性

欢迎先看前面的博客,再继续进行后面的内容: 群体遗传学_tRNA做科研的博客-CSDN博客 当杂合子的适应度超出纯合子的范围时,二倍体能够展现出更多令人着迷的选择实例。这种形式的一种是杂合子优势,或称为“超显性”,其…

【包邮送书】AIGC时代程序员的跃迁——编程高手的密码武器

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

深入了解 Huber 损失函数

深入了解 Huber 损失函数 在机器学习和深度学习的训练过程中,选择合适的损失函数对于模型性能的提升至关重要。MSE(均方误差) 和 RMSE(均方根误差) 是我们常见的回归损失函数。然而,当数据中存在异常值&am…

无线麦克风哪个品牌音质最好,揭秘手机收音麦克风哪个牌子好!

随着全球直播和短视频行业的蓬勃发展,领夹麦克风因其便携性和出色的录音质量而备受青睐。用户在各种场合下追求清晰、真实的录音效果,领夹麦克风无疑是一个理想的选择。 然而,面对市场上琳琅满目的品牌和型号,想要挑选一款性能优…

C++和Python蚂蚁搬食和蚊虫趋光性和浮标机群行为算法神经网络

🎯要点 🎯机器人群行为配置和C行为实现:🖊脚底机器人狭隘空间导航避让障碍物行为 | 🖊脚底机器人使用摄像头耦合共振,实现同步动作 | 🖊脚底机器群使用相机,计算彼此间“分子间势能…

WAIC2024 上海 | Gooxi 全面展示智算新成果,加速人工智能落地应用

浦江之畔,大咖云集;智能浪潮,奔涌不息。7月4日,被誉为人工智能界风向标的世界人工智能大会暨人工智能全球治理高级别会议在上海盛大召开,Gooxi此次携最新AI服务器以及解决方案参与,以算为擎赋能新质生产力&…

如何对待信息技术课上学生玩游戏现象

对待信息技术课上学生玩游戏的现象,需要采取一系列综合措施,既要防止学生分心,又要确保课堂的教学质量和学生的积极参与。以下是一些建议: 1. 明确课堂规则:在课程开始之初,明确告知学生课堂上不允许玩游戏…

【UE Lua】 快速入门(基础语法、与UE引擎的交互)

目录 0 引言1 基础语法1.1 变量和数据类型1.2 注释1.3 控制结构1.4 函数1.5 表(Table)1.6 元表(Metatable)1.7 字符串操作1.8 模块和包1.9 错误处理 2 数据结构 - 表2.1 表(Table)2.2 元表(Meta…

HTML标签类型全面介绍

HTML标签类型全面介绍 HTML(HyperText Markup Language)是构建网页的基础语言,它通过一系列的标签(Tags)来定义网页的结构和内容。HTML标签根据其功能和用途可以分为多个类型,每个类型都扮演着不同的角色。…

「数据结构详解·十四」对顶堆

「数据结构详解一」树的初步「数据结构详解二」二叉树的初步「数据结构详解三」栈「数据结构详解四」队列「数据结构详解五」链表「数据结构详解六」哈希表「数据结构详解七」并查集的初步「数据结构详解八」带权并查集 & 扩展域并查集「数据结构详解九」图的初步「数据结构…

【计算机毕业设计】017基于微信小程序的学生公寓电费信息管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

多线程网络实战之仿qq群聊的服务器和客户端

目录 一、前言 二、设计需求 1.服务器需求 2.客户端需求 三、服务端设计 1.项目准备 2.初始化网络库 3.SOCKET创建服务器套接字 4. bind 绑定套接字 5. listen监听套接字 6. accept接受客户端连接 7.建立套接字数组 8. 建立多线程与客户端通信 9. 处理线程函数&…