python 使用 Google Gemini API

import base64
import requests
import json API_KEY = 'your api key'
img_path = './scones.jpg' # 设置模型参数和过滤规则 https://ai.google.dev/api/rest/v1beta/SafetySetting?hl=zh-cn#HarmBlockThreshold
safetySettings = {
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_NONE" # 默认BLOCK_ONLY_HIGH,屏蔽高危险的生成
}
generationConfig = {
"stopSequences": [
"Title"
],
"temperature": 1.0,
"maxOutputTokens": 800,
"topP": 0.8,
"topK": 10
} data1 = {
"prompt": {
"text": "1+1=?"
}
}
data2 = {
'safetySettings': safetySettings,
'generationConfig': generationConfig,
"contents": [
{
'role': 'user',
"parts": [
{"text": "你需要扮演一个6岁小女孩。如果你理解了,请回复:好的"}
]
},
{
'role': 'model',
"parts": [
{"text": "好的"}
]
},
{
'role': 'user',
"parts": [
{"text": "你今年几岁了?"}
]
},
]
}
with open(img_path, 'rb') as f:
image_base64 = base64.b64encode(f.read()).decode("utf-8")
data3 = {
"contents": [
{
"parts": [
{"text": "这张图上面是什么?"},
{
"inline_data": {
"mime_type": "image/jpeg",
"data": image_base64
}
}
]
}
]
} def gemini_pro(API_KEY, data):
url = f"https://generativelanguage.googleapis.com/v1beta3/models/text-bison-001:generateText?key={API_KEY}"
headers = {
'Content-Type': 'application/json',
}
response = requests.post(url, headers=headers, data=json.dumps(data))
return response.json().get('candidates')[0].get('output') def gemini_pro_stream(API_KEY, data):
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:streamGenerateContent?key={API_KEY}"
headers = {
'Content-Type': 'application/json',
}
response = requests.post(url, headers=headers, data=json.dumps(data), stream=True)
if response.status_code != 200:
raise ValueError("Failed to generate response: " + response.text) for line in response.iter_lines():
if b"text" in line:
yield json.loads(line.decode('utf-8').split(':')[1]) def gemini_pro_vision(API_KEY, data):
url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-pro-vision:generateContent?key={API_KEY}"
headers = {
'Content-Type': 'application/json',
}
response = requests.post(url, headers=headers, data=json.dumps(data), stream=True)
if response.status_code != 200:
raise ValueError("Failed to generate response: " + response.text) return response.json().get('candidates')[0].get('content').get('parts')[0].get('text') # 纯文本输入
print(gemini_pro(API_KEY, data1)) # 多轮对话(聊天)
for i in gemini_pro_stream(API_KEY, data2):
print(i) # 文本和图像输入
print(gemini_pro_vision(API_KEY, data3)) '''
2
我今年6岁了。
这张图上面是蓝莓松饼、咖啡和花。
'''

python 使用 Google Gemini API的更多相关文章

  1. Google Maps API Web Services

    原文:Google Maps API Web Services 摘自:https://developers.google.com/maps/documentation/webservices/ Goo ...

  2. Google Maps API的使用

    之前在学习了简单的API调用后,查看了几个知名网站的API调用方法,发现Google的API调用还是相对比较简单的.下面就从API key的获取.googlemaps的安装,再到实际使用做一下说明. ...

  3. Goslate: Free Google Translate API

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  4. 使用google 语言 api 来实现整个网站的翻译

    ---恢复内容开始--- 使用google 语言 api 来实现整个网站的翻译,这时我们可以利用免费的google api来做处理来实现多语言的功能. 放在 HTML 文件中 <div id=& ...

  5. Google Map API Version3 :代码添加和删除marker标记

    转自:http://blog.sina.com.cn/s/blog_4cdc44df0100u80h.html Google Map API Version3 教程:在地图 通过代添加和删除mark标 ...

  6. Google Map API V3开发(1)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

  7. Google Map API V3开发(2)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

  8. Google Map API V3开发(3)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

  9. Google Map API V3开发(4)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

  10. Google Map API V3开发(5)

    Google Map API V3开发(1) Google Map API V3开发(2) Google Map API V3开发(3) Google Map API V3开发(4) Google M ...

随机推荐

  1. C/C++字符函数库<ctype.h>/<cctype>(常用)

    头文件:<ctype.h> 形式:int 函数(int c)  参数:传入的一定是一个字符或者EOF 返回值:满足条件返回非0(true),否则返回0: int isalnum(int c ...

  2. 关联规则挖掘:Apriori算法的深度探讨

    在本文中,我们深入探讨了Apriori算法的理论基础.核心概念及其在实际问题中的应用.文章不仅全面解析了算法的工作机制,还通过Python代码段展示了具体的实战应用.此外,我们还针对算法在大数据环境下 ...

  3. keepass

  4. TS版LangChain实战:基于文档的增强检索(RAG)

    LangChain LangChain是一个以 LLM (大语言模型)模型为核心的开发框架,LangChain的主要特性: 可以连接多种数据源,比如网页链接.本地PDF文件.向量数据库等 允许语言模型 ...

  5. 用EXCEL VBA 做的学生成绩分析系统

    标题:基于EXCEL VBA的学生成绩分析系统--详细介绍与说明导言:学生成绩分析对于教育机构和学生个体来说具有重要意义.本文将详细介绍基于EXCEL VBA的学生成绩分析系统的设计与实现.通过该系统 ...

  6. 开源地图库OpenLayers的简单使用

    引言 最近在学习可视化的东西,这让我想起了一些以前用过的图表库,其实我在日常做的大多是普通的需求,可视化方面应用的并不多,只是偶尔会因为个别特殊的需求,去借助一些图表库来实现图表的展示,这些普通的图表 ...

  7. ElasticSearch查询数据、全文检索、补全提示、拼写纠错

    https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search.html https://www.elastic.co/guide ...

  8. 加速计算,为何会成为 AI 时代的计算力“新宠” 审核中

    随着科技的发展,处理大量数据和进行复杂计算的需求越来越高,人工智能.大数据和物联网等领域更是如此,传统的计算方式已经无法满足这些需求.因此,加速计算作为一种现代计算方式,成了必要的手段.加速计算具有前 ...

  9. 安装了华企盾DSC防泄密,所有进程的加密文件都无法打开

    用pchunter等工具查看系统回调中是否有文件厂商不存在的(system目录的除外),在恢复模式删除掉,或者用360系统急救箱查杀一下

  10. MySQL运维实战(1.1)安装部署:使用RPM进行安装部署

    作者:俊达 我们在生产环境部署mysql时,一般很少使用RedHat Package Manager(RedHat软件包管理工具).用rpm或或者其他包管理器安装mysql有其好处,例如安装简单,并且 ...