開發個人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.pswp.cn/web/41824.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41824.shtml
英文地址,請注明出處:http://en.pswp.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. 處理線程函數&…