Google Gemini接口调用(node版)

一、打开Google AI Studio

https://makersuite.google.com/app/apikey

二、在国外服务器上部署一个接口用于真正的请求

const sdAxiosOnAzure = async (req, res) => {let {config = {url: 'https://sinkin.ai/api/inference',method: 'post',data: {},timeout: 30 * 60 * 1000,},apiKey = '',} = req.bodyif (apiKey === 'XXX') {if (config.headers &&config.headers['Content-Type'] &&config.headers['Content-Type'].includes('multipart/form-data')) {const data = new FormData()let tempData = config.datafor (let key in tempData) {data.append(key, tempData[key])}config.data = dataconfig.headers['Content-Type'] ='multipart/form-data; boundary=' + data.getBoundary()}axios({...config,}).then((response) => {res.send({code: 200,data: {response: response.data,},message: '成功',})}).catch((err) => {res.send({code: 400,data: {err,},message: '失败',})})} else {res.send({code: 400,message: '失败:参数apiKey',})}
}

三、在postman上发起请求

 

请求:

{"config": {"url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=xxx","data": {"contents": [{"role": "user","parts": [{"text": "北京有多少人?"}]}]},"method": "post"},"apiKey": "XXX"
}

响应:

{"code": 200,"data": {"response": {"candidates": [{"content": {"parts": [{"text": "截至 2023 年 3 月,北京的人口总数约为 2,154 万。然而,这一数字可能因人口流动和其他因素而变化。因此,您最好查阅更接近实时的数据源,例如北京市政府或国家统计局网站,以获取最准确的北京人口信息。"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}],"promptFeedback": {"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}}},"message": "成功"
}

四、在node里发起请求

const { GoogleGenerativeAI } = require('@google/generative-ai')const genAI = new GoogleGenerativeAI('你的key')const chatVertexaiOnAzure = async (req, res) => {let { prompt = 'Write a story about a magic backpack.', apiKey = 'sk-xxx' } =req.bodyif (apiKey === apiKeyOnServer) {const model = genAI.getGenerativeModel({ model: 'gemini-pro' })const result = await model.generateContent(prompt)const response = await result.responseconst text = response.text()res.send({code: 200,data: {text,},message: '成功',})} else {res.send({code: 400,message: '失败:参数apiKey',})}
}

参考链接:

https://chat.xutongbao.top/

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

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

相关文章

计算机网络期末复习题(一)

文章目录 第一章第二章第三章第四章第五章第六章 第一章 1.在OSI七层结构模型中,处于数据链路层与传输层之间的是() 选项A:物理层 选项B:网络层 选项C:会话层 选项D:表示层 正确答案&#xff…

Python爬虫中的协程

协程 基本概念 协程:当程序执行的某一个任务遇到了IO操作时(处于阻塞状态),不让CPU切换走(就是不让CPU去执行其他程序),而是选择性的切换到其他任务上,让CPU执行新的任务&#xff…

网络安全—认证技术

文章目录 加密认证对称密钥体制公钥密码体制公钥的加密公钥身份认证和加密 鉴别码认证MAC鉴别码 报文摘要认证认证 加密只认证数字签名 通过了解以前前辈们使用的消息认证慢慢渐进到现代的完整的认证体系。所以在学习的时候也很蒙圈,因为前期的很多技术都是有很严重…

这次,数据泄露的目标受害者指向了---救护车服务公司

已停业的救护车服务遭到勒索软件攻击导致近百万人受到威胁! 此次数据泄露的目标受害者是法伦救护车服务公司,该公司是Transformative Healthcare的子公司。ALPHV勒索软件团伙声称对2023年4月下旬对Transformative Healthcare的攻击负责,并导…

Docker命令---重新启动容器

介绍 使用docker命令重新启动容器 示例 docker restart 容器ID或者容器名

SortedMap、NavigableMap

SortedMap、NavigableMap SortedMap获取比较器 comparator生成子视图 subMap、headMap、tailMap获取最小、最大的键 firstKey、lastKey NavigableMap获取小于、小于等于、大于、大于等于指定键的且与指定键最接近的匹配项 lowerEntry、higherEntry、ceilingEntry、floorEntry、…

前端及其优雅的去重方式

核心思路:将一个值的的类型值作为key 代码如下: let obj{} return arr.filter(item > {return obj.hasOwnProperty(typeof item item) ?false : (obj[typeof item item] true)}) arr就是需要筛选的数据 相较于new Set()方法,能区分…

SpringBoot 集成支付宝支付

网页操作步骤 1.进入支付宝开发平台—沙箱环境 使用开发者账号登录开放平台控制平台 2.点击沙箱进入沙箱环境 说明:沙箱环境支持的产品,可以在沙箱控制台 沙箱应用 > 产品列表 中查看。 3.进入沙箱,配置接口加签方式 在沙箱进行调试前…

rime中州韵小狼毫 inputShow lua Translator 输入字符透传翻译器

在 rime中州韵小狼毫 help lua Translator 中我们分享了如何使用 lua 脚本定义一个 translator,并以 五笔・拼音 为例引用了该 translator,并且达到了预期的效果。 今天,我们继续通过 lua 脚本为 rime中州韵/小狼毫 输入法打造一个 translat…

实验3 vTPM相关

可以代做实验手册等私聊 一、实验目的 1.了解vTPM原理和相关知识;2.创建具备vTPM的虚拟机;3.加深对可信计算技术的理解。 二、实验内容 安装seabios,libtpms,swtpm,qemu‐tpm;启动vTPM;安装…

守正出奇,穿越周期 - Bytebase 的 2023

前情提要:Bytebase 的 2022|埋头苦干,孕育希望 产品迭代 2023 年共发布了 25 个版本。这个数字和 2022 年一样,除开春节和一次全员疫情,做到了两周一次的更新。 版本号从 1.11.0 升级到了 2.13.0。其中在 5 月份&…

基于ExoPlayer的缓存方案实现

音视频APP 的一个必备功能就是在播放的时候会持续缓存完整个音频,同时进度条会更新缓存进度。但是目前Google推出的播放器ExoPlayer本身并没有提供什么方便的接口去实现这个功能,因此大多数的开发者可能会使用AndroidVideoCache 开源库来实现缓存。 AndroidVideoCache 的原理…

MySQL常见面试题总结

1.MySQL基础 1.1什么是关系型数据库? 顾名思义,关系型数据库(RDB,Relational Database)就是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系(一对一、一对多、多对多…

图像分割-漫水填充法 floodFill

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 本文的C#版本请访问:图像分割-漫水填充法 floodFill (C#)-CSDN博客 FloodFill方法是一种图像处理算法&#…

自定义Redis配置以优化你的Spring应用

在开发Spring应用时,Redis作为一个高效且功能丰富的内存数据存储,经常被用作缓存层来加速应用的响应速度。Spring Boot提供了与Redis集成的便捷方式,但有时默认的配置可能不满足我们的特定需求。这时,自定义Redis配置就显得尤为重…

kotlin 中 any, all , none

any 如果至少有一个元素匹配给定谓词,那么 any() 返回 true。 all 如果没有元素与给定谓词匹配,那么 none() 返回 true。 none 如果所有元素都匹配给定谓词,那么 all() 返回 true。 请注意,在一个空集合上使用任何有效的谓词去…

JAVA设计小分队02

import java.util.Objects;/*** description: 学生类* author: sfj* Email&#xff1a;2238414084qq.com* create: 2023-12-18 20:15**/ public class Student implements Comparable<Student> {private int sno;private String name;private int age;private int math;p…

C++上位软件通过Snap7开源库访问西门子S7-200/合信M226ES数据块的方法

前言 上一篇文章中介绍了Snap7访问西门子S7-1200/S7-1500 DB块的方法&#xff0c;对于S7-200PLC是没有数据块访问的。S7-200PLC中Snap7只能通过访问MB块&#xff0c;VB块的方法进行和PLC之间的Snap7通信和数据交换。手头没有S7-200PLC故通过合信CTMC M226ES运动控制器进行测试&…

SSM的校园二手交易平台----计算机毕业设计

项目介绍 本次设计的是一个校园二手交易平台&#xff08;C2C&#xff09;&#xff0c;C2C指个人与个人之间的电子商务&#xff0c;买家可以查看所有卖家发布的商品&#xff0c;并且根据分类进行商品过滤&#xff0c;也可以根据站内搜索引擎进行商品的查询&#xff0c;并且与卖…

如何用js动态修改字体大小

在项目中&#xff0c;我们常常会遇到使用v-html渲染文本的情况。 如果需要点击大中小三个字号按钮&#xff0c;需要修改字体的大小。那我们应该怎么做呢 function fontSize(element, type) {let size {big: 22,middle: 16,small: 12};var result element.innerHTML.replac…