部署谷歌的Gemini大模型

前言

本文将介绍如何使用Docker、Docker-Compose私有化部署谷歌的Gemini大模型,以及没有服务器的情况下如何使用Vercel来部署。

Demo:

使用新加坡云服务器部署:Gemini Pro Chat (snowice.eu.org)

使用Vercel部署:Gemini Pro Chat (snowice.eu.org)

作者项目地址babaohuang/GeminiProChat: Minimal web UI for GeminiPro. (github.com)

部署

获取API

Docker部署

如果你还没有安装Docker,Centos7安装Docker和Docker-Compose

本教程使用的是新加坡的云服务器,如果你使用国内的可能需要代理!

docker run --name geminiprochat \
--restart always \
-p 3000:3000 \
-itd \
-e GEMINI_API_KEY=*** \
babaohuang/geminiprochat:latest

***改为你获取到的API

还可以设置别的环境变量,例如设置网站密码为'123'

docker run --name geminiprochat \
--restart always \
-p 2990:3000 \
-itd \
-e GEMINI_API_KEY=*** \
-e SITE_PASSWORD=123 \
babaohuang/geminiprochat:latest

环境名描述是否必填
GEMINI_API_KEY您的 GEMINI 的 API 密钥。你可以从这里得到它。
API_BASE_URLGEMINI API 的自定义基础 URL。点击此处查看如何使用。
HEAD_SCRIPTS在页面的 </head> 标签之前注入分析或其他脚本。
PUBLIC_SECRET_KEY项目的秘密字符串。用于生成 API 调用的签名。
SITE_PASSWORD为站点设置密码,支持多个用逗号分隔的密码。如果未设置,站点将是公共的。

Docker-Compose部署

首先创建docker-compose.yml

vim docker-compose.yml

将以下内容粘贴到yml文件中,同样的将***换成获取到的API,同样的也可以设置别的环境变量

version: '3'

services:
  geminiprochat:
    container_name: geminiprochat
    restart: always
    ports:
      - "3000:3000"
    environment:
      - GEMINI_API_KEY=***
    image: babaohuang/geminiprochat:latest

设置网站密码为'123'

version: '3'

services:
  geminiprochat:
    container_name: geminiprochat
    restart: always
    ports:
      - "3000:3000"
    environment:
      - GEMINI_API_KEY=***
      - SITE_PASSWORD=123
    image: babaohuang/geminiprochat:latest

以“后台模式”运行服务

docker-compose up -d

更新服务

首先先暂停容器(回到你这个容器的docker-compose.yml目录下执行命令)

docker-compose down

重新拉取镜像

docker-compose pull

再次运行即可

docker-compose up -d

Vervel部署

Vercel点击一键部署,当然你也可以fork该项目自行使用Vervel部署

[t-primary icon='']点击Create[/t-primary]

输入你的API 点击Deploy

稍等片刻 部署成功

部署成功之后Vervel会送你一个域名可以访问该项目,但是该域名被墙了,因此需要自行添加域名。

在Vercel上配置自定义域名

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

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

相关文章

【美团大数据面试】Java面试题附答案

目录 1.多线程代码示例 2.单例代码示例 3.LinkedBlockingQueue原理解析 4.模板设计模式讲解 5.生产者-消费者队列设计方法 6.堆内存和栈内存的区别 7.ThreadLocal底层机制 8.synchronized原理&#xff0c;存在的问题&#xff0c;解决方案 9.volatile使用场景和原理&am…

一篇讲透:箭头函数、普通函数有什么区别

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热衷分享有趣实用的文章&#xff0c;希望大家多多支持&#xff0c;一起进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 目录 什么是箭头函数 箭头函数和普通函数的区别 更简洁的语法 箭头函数…

【WPF.NET开发】数据绑定应用场景

目录 1、实现属性更改通知 示例 2、双向绑定​​​更新源 示例 3、对分层数据使用主-从模式 示例 4、对分层 XML 数据使用主-从模式 示例 5、绑定两个控件的属性 示例 6、创建和绑定到 ObservableCollection 示例 7、使用 XMLDataProvider 和 XPath 查询绑定到 XML…

Java@RequestParam注解和@RequestBody注解接收参数

目录 Java后端接收数据 第一章、后端不写任何注解情况下接收参数1.1&#xff09;后端不写注解postman发出get请求1.2&#xff09;后端不写注解postman发出post请求 第二章、后端写RequestParam注解接收参数2.1&#xff09;postman发出post请求2.2&#xff09;postman发出get请求…

锂电池搅拌机的设备健康管理解决方案

随着电动车辆和可再生能源市场的迅速发展&#xff0c;锂电池作为一种重要的能源存储产品&#xff0c;正变得越来越重要。而锂电池搅拌机作为锂电池生产线中的核心设备之一&#xff0c;其正常运行对于生产线的高效稳定至关重要。为了确保锂电池搅拌机的可靠性和设备寿命&#xf…

SQL进阶理论篇(二十一):基于SQLMap的自动化SQL注入

文章目录 简介获取当前数据库和用户信息获取MySQL中的所有数据库名称查询wucai数据库中的所有数据表查看heros数据表中的所有字段查询heros表中的英雄信息总结参考文献 简介 从上一小节&#xff0c;可以发现&#xff0c;如果我们编写的代码存在着SQL注入的漏洞&#xff0c;后果…

android内存管理机制概览

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、相关概念3.1 垃圾回收3.2 应用内存的分配与回…

crtc 原理

CRTC Streams the framebuffer following the screen’s timings Driving screens : the CRT ControllerDriving screens : the CRT Controller Streams the framebuffer following the screen’s timings After each line, the CRTC must wait for the CRT to go back to th…

GoDance分布式搜索引擎项目

目录 前言一、布尔模型二、 实用评分函数1. 查询归一化因子2. 协调因子3. TF-IDF3.1 TF3.2 IDF3.3 字段长度归一值BOOST 4. 向量空间模型具体方案 三、按受欢迎度提升权重四、实时搜索与相关搜索五、具体实现方案1. 布尔模型2. 评分函数3. 实时相关搜索 前言 5月6日参加了字节…

<script setup> 的作用

一、使用<script setup> 之后&#xff0c;就不需要手动写以下代码&#xff0c;只要写逻辑代码 未加setup&#xff0c;vite 工程要加上下面代码 *export default{ * setup(){ * //只要写逻辑代码 * return{***} * } * } 加了setup &#xff0c;export default 、…

doris基本操作,05-Rollup

简述 Rollup类似于mysql的视图&#xff0c;区别在于视图并没有将数据独立存储&#xff0c;视图是逻辑上的连接。而Rollup将数据独立存储了&#xff0c;玩的是真的。当查询命中Rollup时&#xff0c;会从Rollup表里获取数据&#xff0c;提高查询效率。 操作 创建Rollup表 alt…

web自动化测试的智能革命:AI如何推动软件质量保证的未来

首先这个标题不是我取的&#xff0c;是我喂了关键字让AI给取的&#xff0c;果然非常的标题党&#xff0c;让人印象深刻&#xff0c;另外题图也是AI自动生成的。 先简单回顾一下web自动化测试的一些发展阶段 QTP时代 很多年前QTP横空出世的时候&#xff0c;没有人会怀疑这种工…

插入排序详解(C语言)

前言 插入排序是一种简单直观的排序算法&#xff0c;在小规模数据排序或部分有序的情况下插入排序的表现十分良好&#xff0c;今天我将带大家学习插入排序的使用。let’s go ! ! ! 插入排序 插入排序的基本思想是将待排序的序列分为已排序和未排序两部分。初始时&#xff0c…

【序列化和反序列化】

&#x1f341;什么是序列化和反序列化&#xff1f; &#x1f341;典型解析&#x1f341;拓展知识仓&#x1f341;如何进行序列化和反序列化&#x1f341;未实现Serializable&#xff0c;可以序列化吗? &#x1f341;典型解析 在Java中&#xff0c;我们可以通过多种方式来创建对…

java接口限流详解

目录 1.简介1.1.为什么需要限流?1.2.限流和熔断有什么区别&#xff1f;1.3.限流和削峰有什么区别&#xff1f;1.4 缓存&#xff0c;降级&#xff0c;限流简介 2.应用级限流2.1 控制并发数量2.2 控制访问速率2.2.1 令牌桶算法2.2.2 漏桶算法 3.分布式限流4.交流群 1.简介 接口…

渗透测试——1.3计算机网络基础

一、黑客术语 1、肉鸡&#xff1a;被黑客攻击电脑&#xff0c;可以受黑客控制不被发现 2、端口&#xff08;port&#xff09;&#xff1a;数据传输的通道 3、弱口令&#xff1a;强度不高&#xff0c;容易被猜到的口令、密码 4、客户端&#xff1a;请求申请电脑&#xff08;…

宝塔mysql本地服务器状态异常如何解决

今天安装宝塔的时候突然遇到的问题 来吧 直接上bug图 答案&#xff1a;修改Mysql数据库密码

【论文阅读笔记】SegVol: Universal and Interactive Volumetric Medical Image Segmentation

Du Y, Bai F, Huang T, et al. SegVol: Universal and Interactive Volumetric Medical Image Segmentation[J]. arXiv preprint arXiv:2311.13385, 2023.[代码开源] 【论文概述】 本文思路借鉴于自然图像分割领域的SAM&#xff0c;介绍了一种名为SegVol的先进医学图像分割模型…

不同参数规模大语言模型在不同微调方法下所需要的显存总结

原文来自DataLearnerAI官方网站&#xff1a; 不同参数规模大语言模型在不同微调方法下所需要的显存总结 | 数据学习者官方网站(Datalearner)https://www.datalearner.com/blog/1051703254378255 大模型的微调是当前很多人都在做的事情。微调可以让大语言模型适应特定领域的任…

JY901S 9轴姿态角度传感器模块

JY901S 9轴姿态角度传感器模块 JY901S 简介模块特性引脚说明IIC通讯IIC读写寄存器代码示例 JY901S 简介 模块集成高精度的陀螺仪、加速度计、地磁场传感器&#xff0c;采用高性能的微处理器和先进的动力学解算与卡尔曼动态滤波算法&#xff0c;能够快速求解出模块当前的实时运…