Docker部署ChatGLM3、One API、FastGPT

创建并运行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

接下来就是玩了:

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

k8s基本使用(namespace,pod增删查)-持续更新中

目录 1. 查看Namespace 2. 创建Namespace 2.1 使用纯命令行创建 2.2 编写yaml文件创建 3. 删除Namespace 3.1 使用纯命令行删除 3.2 使用yaml文件删除 二、Pod 1. 查看pod 1.1 查看默认空间的pod 1.2 查看指定空间的pod 1.3 查看全部pod 1.4 查看pod更多信息 1…

HUAWEI 华为交换机 配置 MAC 地址漂移检测示例

组网需求 如 图 2-17 所示,网络中两台 LSW 间网线误接形成了网络环路,引起 MAC 地址发生漂 移、MAC 地址表震荡。 为了能够及时检测网络中出现的环路,可以在 Switch 上配置 MAC 地址漂移检测功能, 通过检测是否发生MAC 地址漂移…

Python in Visual Studio Code 2024年3月发布

排版:Alan Wang 我们很高兴地宣布 2024 年 3 月发布适用于 Visual Studio Code 的 Python 和 Jupyter 扩展! 此版本包括以下公告: 新的“Add Imports”代码操作设置调试 Django 或 Flask 应用时自动启动浏览器Python REPL 的 Shell 集成对本…

Python学习:基本数据类型

Python3 命令行参数 Python 提供了 getopt 模块来获取命令行参数。 %> python test.py arg1 arg2 arg3Python 中也可以所用 sys 的 sys.argv 来获取命令行参数: sys.argv 是命令行参数列表。 len(sys.argv) 计算命令行参数个数。 sys.argv[0] 表示脚本名。tes…

docker ENTRYPOINT [“sh“,“-c“,“java“,“-jar“,“Hello.jar“] 启动失败问题分析

因为没系统的学过linux语法,所以才会产生如下疑问。大佬请跳过。 问题:当在dockerfile里面配置 ENTRYPOINT ["sh","-c","java","-jar","Hello.jar"] ,启动对应容器时会无法正常运行&…

剑指offer经典题目整理(四)

一、树的子结构 1.链接 树的子结构_牛客题霸_牛客网 (nowcoder.com) 2.描述 给两颗二叉树A B,判断B是不是A的子结构 3.思路 将问题拆解开来,首先是找到a树中子结构的位置,然后是判断是否相同,也就是说,我们需要去…

【小白学机器学习8】统计里的自由度

目录 1 自由度 /degree of freedom / df 1.1 物理学的自由度(摘自网上 ^) 1.2 数学里的自由度 1.2.2 统计里的自由度 1.2.3 需要补充线性代数的,用线性代数来理解自由度 1.3 统计学里自由度的定义 1.4 自由度的公式 1.5 线性回归公式…

stm32使用时钟生成PWM时调用__HAL_TIM_SetAutoreload导致PWM消失处理

stm32使用时钟生成PWM时调用__HAL_TIM_SetAutoreload导致PWM消失处理 这一个是配置的时候没有使用影子寄存器导致的, 如果加载的Autoreload的值比原来的这一个值小, 这是会出现一个问题, 如果计数器里面的值记为Count, 如果改变的时候New_Autoreload < Count < Old_Auto…

结构体的增删查改

结构体&#xff0c;是为了解决生活中的一些不方便利用c语言自带数据类型来表示的问题。例如表示一个学生&#xff0c;那么学生这个个体假如用c语言自带数据类型怎么表示呢。可以使用名字&#xff0c;也就是字符数组&#xff1b;也可以使用学号&#xff0c;也就是int类型。但是这…

Hadoop学习2:完全分布集群搭建

文章目录 Fully-Distributed Operation&#xff08;完全分布模式&#xff09; 重点机器环境同步集群规划配置文件修改以及同步步骤0&#xff1a;下面其他步骤涉及修改配置以这里为准&#xff08;要不然部署使用过程会有很多问题&#xff09;通用配置&#xff08;三台节点机器&a…

工具-百度云盘服务-身份认证

目标 通过百度网盘API的方式去获取网盘中的文件&#xff0c;要实现这的第一步就是需要获取网盘的权限。资料(参考) 如果期望应用访问用户的网盘文件&#xff0c;则需要经过用户同意&#xff0c;这个流程被称为“授权”。百度网盘开放平台基于 OAuth2.0 接入授权。OAuth2.0 是…

配置中心概述

目录 一、配置中心的定义 二、配置中心的工作 三、配置中心的作用 四、SpringBoot中的配置文件 一、配置中心的定义 配置中心就是用来管理项目当中所有配置的系统&#xff0c;也是微服务系统当中不可或缺的一部分。 nacos是一个更易于构建云原生应用的动态服务发现、配置管理…

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

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

跨境电商选品实战——Ownips静态ip代理+Python爬虫轻松搞定Lazada电商选品

文章目录 一、引言二、Lazada电商平台爬虫实战2.1、分析Lazada电商平台的商品列表接口2.2、定位商品列表计算逻辑2.3、封装IP代理2.4、运行爬虫 三、数据处理及选品分析四、Ownips——企业级全球静态IP代理 一、引言 互联网与外贸的结合&#xff0c;催生了蓬勃兴起的跨境电子商…

el-Switch 开关二次确认

前言 最近在做毕设&#xff0c;有个需求是点击按钮控制用户的状态是否禁用&#xff0c;就看到element有个switch组件可以改造一下&#xff0c;就上网看了一下&#xff0c;结果为了这个效果忙活了很久。。。所以说记录一下&#xff0c;让大家少踩坑。 前置条件 先看完我的需求再…

spring-boot操作elasticsearch

一、环境准备 springboot与elasticsearch的更新都非常快&#xff0c;为了避免兼容性问题&#xff0c;要注意下选择的版本问题。具体的可参考官网 --> springboot与elasticsearch版本兼容性 1.1导入依赖 <dependencies><dependency><groupId>org.spring…

挖掘内容资讯App流量价值,Xinstall传参安装技术引领行业变革

在移动互联网时代&#xff0c;内容资讯App已经成为人们获取信息的重要途径。然而&#xff0c;随着用户量的不断增长和业务的不断拓展&#xff0c;如何有效地挖掘流量价值&#xff0c;成为了摆在众多内容资讯App面前的一大难题。而传参安装技术的出现&#xff0c;为这一难题的解…

Web——HTML

一.HTML概述 超文本标记语言&#xff08;英语&#xff1a;HyperText Markup Language&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言。可以使用 HTML 来建立自己的 WEB 站点&#xff0c;HTML 运行在浏览器上&#xff0c;由浏览器来解析。 二.…

2024 遗传编程实战(一)基因实战

2024 遗传编程实战&#xff08;一&#xff09;基因实战 文章目录 2024 遗传编程实战&#xff08;一&#xff09;基因实战一、遗传编程实战介绍1、遗传编程简介2、遗传编程和进化论的关系3、遗传编程过程解释 二、基于遗传编程的例子1、实战题目介绍2、遗传算法的伪代码3、遗传实…

无人机机载频谱监测方案助力空中频谱监测与干扰排查

作者介绍 一、方案背景 频谱资源是通信最重要的资产之一&#xff0c;随着宽带无线业务的快速增长&#xff0c;对频率资源的需求大幅增加。未来频率资源的供需矛盾将非常突出&#xff0c;空中频谱环境也会越来越复杂&#xff0c;对于工程师来说&#xff0c;在复杂的电磁环境条件…