Docker部署ChatGLM3、One API、FastGPT

news2024/11/25 20:45:49

创建并运行chatglm3容器

docker run --name chatglm3 -p 8000:8000 registry.cn-hangzhou.aliyuncs.com/ryyan/chatglm.cpp:chatglm3-q5_1

创建并运行one-api容器

(其中挂载路径 D:\one-api 可以选择你自己喜欢的目录)

docker run --name oneapi -d -p 3000:3000 -e TZ=Asia/Shanghai -v D:\one-api:/data justsong/one-api

 浏览器登录  http://127.0.0.1:3000/

默认用户名 root   密码 123456 

添加渠道

添加令牌

 

 复制令牌

测试一下刚刚创建的渠道

部署FastGPT

在你自己喜欢的磁盘上创建fastgpt目录,我是 D:\fastgpt

创建两个文件  docker-compose.yml  和  config.json

其中,docker-compose.yml 内容为:

# 非 host 版本, 不使用本机代理
version: '3.3'
services:
  pg:
    image: ankane/pgvector:v0.5.0 # git
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.5.0 # 阿里云
    container_name: pg
    restart: always
    ports: # 生产环境建议不要暴露
      - 5432:5432
    networks:
      - fastgpt
    environment:
      # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
      - POSTGRES_USER=username
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=postgres
    volumes:
      - ./pg/data:/var/lib/postgresql/data
  mongo:
    image: mongo:5.0.18
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
    container_name: mongo
    restart: always
    ports: # 生产环境建议不要暴露
      - 27017:27017
    networks:
      - fastgpt
    environment:
      # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
      - MONGO_INITDB_ROOT_USERNAME=username
      - MONGO_INITDB_ROOT_PASSWORD=password
    volumes:
      - ./mongo/data:/data/db
  fastgpt:
    container_name: fastgpt
    #image: ghcr.io/labring/fastgpt:latest # git
    image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.6.6 # 阿里云
    ports:
      - 3020:3000 #与One API的默认3000地址冲突,所有修改为3020
    networks:
      - fastgpt
    depends_on:
      - mongo
      - pg
    restart: always
    environment:
      # root 密码,用户名为: root
      - DEFAULT_ROOT_PSW=1234
      # 中转地址,如果是用官方号,不需要管
      - OPENAI_BASE_URL=http://172.16.xxx.yyy:3000/v1
      - CHAT_API_KEY=sk-lBKqDxIOQtVgkPYo7274CbC9632748B6Ac8d515123456789
      - DB_MAX_LINK=5 # database max link
      - TOKEN_KEY=any
      - ROOT_KEY=root_key
      - FILE_TOKEN_KEY=filetoken
      # mongo 配置,不需要改. 如果连不上,可能需要去掉 ?authSource=admin
      - MONGODB_URI=mongodb://username:password@mongo:27017/fastgpt?authSource=admin
      # pg配置. 不需要改
      - PG_URL=postgresql://username:password@pg:5432/postgres
    volumes:
      - ./config.json:/app/data/config.json
networks:
  fastgpt:

需要修改的地方是

      - OPENAI_BASE_URL=http://172.16.xxx.yyy:3000/v1
      - CHAT_API_KEY=sk-lBKqDxIOQtVgkPYo7274CbC9632748B6Ac8d515123456789

改成你的IP,和刚才在 One API 中复制的令牌 

config.json 的内容为:

{
	"systemEnv": {
		"openapiPrefix": "fastgpt",
		"vectorMaxProcess": 15,
		"qaMaxProcess": 15,
		"pgHNSWEfSearch": 100
	},
	"chatModels": [
		{
			"model": "chatglm3",
			"name": "chatglm3",
			"inputPrice": 0,
			"outputPrice": 0,
			"maxContext": 4000,
			"maxResponse": 4000,
			"quoteMaxToken": 2000,
			"maxTemperature": 1.2,
			"censor": false,
			"vision": false,
			"defaultSystemChatPrompt": ""
		}
	],
	"qaModels": [
		{
			"model": "gpt-3.5-turbo-16k",
			"name": "GPT35-16k",
			"maxContext": 16000,
			"maxResponse": 16000,
			"inputPrice": 0,
			"outputPrice": 0
		}
	],
	"cqModels": [
		{
			"model": "gpt-3.5-turbo",
			"name": "GPT35",
			"maxContext": 4000,
			"maxResponse": 4000,
			"inputPrice": 0,
			"outputPrice": 0,
			"toolChoice": true,
			"functionPrompt": ""
		},
		{
			"model": "gpt-4",
			"name": "GPT4-8k",
			"maxContext": 8000,
			"maxResponse": 8000,
			"inputPrice": 0,
			"outputPrice": 0,
			"toolChoice": true,
			"functionPrompt": ""
		}
	],
	"extractModels": [
		{
			"model": "gpt-3.5-turbo-1106",
			"name": "GPT35-1106",
			"maxContext": 16000,
			"maxResponse": 4000,
			"inputPrice": 0,
			"outputPrice": 0,
			"toolChoice": true,
			"functionPrompt": ""
		}
	],
	"qgModels": [
		{
			"model": "gpt-3.5-turbo-1106",
			"name": "GPT35-1106",
			"maxContext": 1600,
			"maxResponse": 4000,
			"inputPrice": 0,
			"outputPrice": 0
		}
	],
	"vectorModels": [
		{
			"model": "text-embedding-ada-002",
			"name": "Embedding-2",
			"inputPrice": 0,
			"outputPrice": 0,
			"defaultToken": 700,
			"maxToken": 3000,
			"weight": 100
		}
	],
	"reRankModels": [],
	"audioSpeechModels": [
		{
			"model": "tts-1",
			"name": "OpenAI TTS1",
			"inputPrice": 0,
			"outputPrice": 0,
			"voices": [
				{
					"label": "Alloy",
					"value": "alloy",
					"bufferId": "openai-Alloy"
				},
				{
					"label": "Echo",
					"value": "echo",
					"bufferId": "openai-Echo"
				},
				{
					"label": "Fable",
					"value": "fable",
					"bufferId": "openai-Fable"
				},
				{
					"label": "Onyx",
					"value": "onyx",
					"bufferId": "openai-Onyx"
				},
				{
					"label": "Nova",
					"value": "nova",
					"bufferId": "openai-Nova"
				},
				{
					"label": "Shimmer",
					"value": "shimmer",
					"bufferId": "openai-Shimmer"
				}
			]
		}
	],
	"whisperModel": {
		"model": "whisper-1",
		"name": "Whisper1",
		"inputPrice": 0,
		"outputPrice": 0
	}
}

保存完之后,在当前目录中打开 Windows PowerShell,我是用 Git Bash Here, 两个都是一样的。

输入以下两个命令:

拉取镜像

docker-compose pull

运行容器

docker-compose up -d

运行成功了,可以使用 docker ps 命令检查以下所有容器是否正常启动

打开浏览器访问  http://127.0.0.1:3020/

 默认用户名 root  密码 1234

接下来就是玩了:

 

 

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

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

相关文章

FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+图像缩放,提供3套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收发送本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI接收OSD动态字符叠加输出应用本方案的SDI接收HLS多路视频融合叠加应…

服务器被大流量攻击怎么办?如何防御攻击?

随着网络的发展,我们所遇到的安全挑战也越来越多。尤其是近年来,网络攻击频发,许多互联网企业深受其扰。为了不影响自身业务的稳定运行,许多企业都在想方设法的寻求解决方案,防止服务器被攻击而影响业务发展。下面我们…

Java代码审计安全篇-SSRF(服务端请求伪造)漏洞

前言: 堕落了三个月,现在因为被找实习而困扰,着实自己能力不足,从今天开始 每天沉淀一点点 ,准备秋招 加油 注意: 本文章参考qax的网络安全java代码审计,记录自己的学习过程,还希望各…

常见的排序算法的时间复杂度

常见的排序算法的时间复杂度 排序算法的时间复杂度通常取决于输入数据的规模(通常表示为n)。以下是一些常见排序算法及其平均、最好和最坏情况下的时间复杂度: 1、冒泡排序(Bubble Sort) 平均时间复杂度:…

使用reprepro+nginx搭建apt服务器

目录 项目背景 项目要求 项目开发过程 1、apt服务器的搭建 2、实现自定义指定源文件列表来实现apt update更新 3、实现软件启动时自动更新 4. source.list中镜像源地址的格式 项目开发的难点/坑点 总结 项目背景 前面写过一篇“利用Nginx搭建一个apt服务器”&#xff…

FreeRTOS学习笔记-基于stm32(5)列表和列表项

一、列表与列表项简介 列表是FreeRTOS中的一种数据结构,类似双向循环链表。用来跟踪FreeRTOS中的任务。列表项就是存放在列表中的项目。 二、列表 列表结构体: typedef struct xLIST {listFIRST_LIST_INTEGRITY_CHECK_VALUE //校验值c…

闲聊电脑(7)常见故障排查

闲聊电脑(7)常见故障排查 夜深人静,万籁俱寂,老郭趴在电脑桌上打盹,桌子上的小黄鸭和桌子旁的冰箱又开始窃窃私语…… 小黄鸭:冰箱大哥,平时遇到电脑故障该咋处理呢? 冰箱&#xf…

vscode使用svn

网上这种文章很多,但很多都实现不了,自己亲测安装有效的过程记录下来,分享给大家。 第一步:去官网下载svn.安装TortoiseSVN 下载地址 下载的地址: Apache Subversion Binary Packageshttps://subversion.apache.or…

55. 跳跃游戏(力扣LeetCode)

文章目录 55. 跳跃游戏贪心每一次都更新最大的步数 取最大跳跃步数(取最大覆盖范围) 55. 跳跃游戏 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后…

信号处理--基于Fisher分数的通道选择的多通道脑电信号情绪识别

目录 背景 亮点 环境配置 数据 方法 结果 代码获取 参考文献 背景 基于脑电的情绪分析,目前是当前研究的一个主要方向和热点。 亮点 使用基于Fisher score的标准来筛选具有高判别意义的脑电通道; 使用基于特征选择的遗传算法实现特征的筛选,从…

vue项目:webpack打包优化实践

本文目录 一、项目基本信息二、分析当前项目情况1、使用 webpack-bundle-analyzer 插件2、使用 speed-measure-webpack-plugin 插件 三、解决构建问题1、caniuse-lite 提示的问题2、 warning 问题 四、打包速度优化1、修改source map2、处理 loader 五、webpack性能优化1、使用…

SPI机制详解

SPI机制详解 什么是SPI机制? SPI:Service Provider Interface,中文直译:服务提供者接口,它通过在ClassPath路径下的META-INF/service文件夹中查找文件,并自动加载文件里所定义的类 在面向对象的设计原则…

Linux中文件的权限

我们首先需要明白,权限 用户角色 文件的权限属性 一、拥有者、所属组和other(用户角色) 以文件file1为例 第一个箭头所指处即是文件的拥有者,拥有者为zz 第二个箭头所指处即使文件的所属组,所属组为zz 除去拥有者…

利用高分五号02星高光谱数据进行地物识别

高分五号02星搭载了一台60公里幅宽、330谱段、30米分辨率的可见短波红外高光谱相机(AHSI),可见近红外(400~1000nm)和短波红外光谱(1000~2500nm)分辨率分别达到5纳米和10纳米。单看参数性能优越&…

spring boot使用mybatisplus访问mysql的配置流程

网上教程大多教人新建一个带对应组件的项目,本文记录如何在一个已有springboot2.x项目中,配置使用mybatisplus来访问mysql。包括使用wrapper和自己写mapper.xml的自定义函数两种和数据库交互的方式。 关于项目的创建,参考创建springboot 2.x…

PFMEA的输入输出和特殊特性

DFMEA輸入:技术条件、市场需求 DFMEA輸出:产品特殊特性、试验、样件CPPFMEA輸入:过往经验、流程图、DPMEA PFMEA輸出:CP、过程特殊特性、SIP、SOP1. PFMEA的输入包括:()过程流程图、DFMEA 、图样…

基于springboot+vue的线上教育系统(源码+论文)

目录 前言 一、功能设计 二、功能实现 三、库表设计 四、论文 前言 现在大家的生活方式正在被计算机的发展慢慢改变着,学习方式也逐渐由书本走向荧幕,我认为这并不是不能避免的,但说实话,现在的生活方式与以往相比有太大的改变,人们的娱乐方式不仅仅…

P4513 小白逛公园 习题笔记(线段树维护区间最大连续子段和)

传送门https://www.luogu.com.cn/problem/P4513本文参考了董晓老师的博客 这道题着实想了很长时间(新手),只能想到一个O(mn)的dp普通写法,那么遇上区间修改问题改怎么操作呢。答案很明显,线段树…

微服务day01 -- SpringCloud01 -- (Eureka , Ribbon , Nacos)

介绍微服务 1.认识微服务(p1-p5) 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构&#…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的稻田虫害检测系统详解(深度学习+Python代码+UI界面+训练数据集)

摘要:本篇文章深入探讨了如何利用深度学习技术开发一个用于检测稻田虫害的系统,并且分享了完整的实现过程和资源代码下载。该系统采用了当前的YOLOv8、YOLOv7、YOLOv6、YOLOv5算法,对其进行了性能对比,包括mAP、F1 Score等关键指标…