開發個人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.pswp.cn/web/44320.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44320.shtml
英文地址,請注明出處:http://en.pswp.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 這段代碼通常出現在…