谷歌免费开放了Gemini(https://ai.google.dev)的API,每分钟可发出60个请求(RPM)。
这样我们除了免费体验Bard: https://bard.google.com/ 外,还可以写程序来调用。
安装依赖
pip install -q -U google-generativeai
-q
或--quiet
:这个参数用于减少安装过程中输出的信息量。通常,pip install 命令会显示正在安装的包的详细信息,包括版本、下载进度等。使用-q
参数会使输出更加简洁,只显示最关键的信息。-U
或--upgrade
:这个参数指示 pip 升级指定的包。如果没有这个参数,pip 只会安装指定包的最新版本,而不会升级已安装的旧版本。使用-U
参数,pip 会检查是否已安装该包的旧版本,如果有,则会将其升级到最新版本。
申请AppKey
在使用 Gemini API 之前,您必须先获取 API 密钥。
用谷歌账号登录后,访问: https://makersuite.google.com/app/apikey 然后点击Get API key。
示例:列出已有模型
genai
软件包还支持 PaLM
系列模型,但只有 Gemini
模型支持该 generateContent
方法的通用多模态功能。
# 列出模型
import google.generativeai as genai
genai.configure(api_key="你的appkey")
for m in genai.list_models():
if 'generateContent' in m.supported_generation_methods:
print(m.name)
我们可以看到的可用模型:
-
gemini-pro
:针对纯文本提示进行了优化。 -
gemini-pro-vision
:针对文本和图像提示进行了优化。
示例:对话续写
通过给出已有的对话上下文,让对话续写,可用于聊天机器人。
import google.generativeai as genai
genai.configure(api_key="你的appkey")
context = """你是一个30岁左右的程序员,下面的乙这个角色,正在跟朋友聊天,
请根据已有的聊天内容,产生对应的对话内容,要求:
1. 字数不要超过30个字;
2. 如果没有合适的回复内容,给上一条回复给出点赞的话语;
3. 产生对话内容,只要内容,不用出现'乙:'这样的说明作者的部分。
下面三个波浪线包含的部分是聊天历史内容:
~~~
甲:你好!最近怎么样?
乙:我很好,谢谢。你呢?
甲:我也不错。最近在忙些什么?
乙:我在学习新的编程语言,挺有趣的。你呢?
甲:我最近在准备一个旅行计划。
乙:哦,听起来很棒!你打算去哪里?
甲:我打算去日本。一直很想去那里看樱花。
~~~
"""
model = genai.GenerativeModel('gemini-pro')
response = model.generate_content(context)
print(response.text)
下面是几次执行后,续写出来的一些内容:
樱花真的很漂亮,祝你旅途愉快!
哇,日本是个美丽的地方!
想去日本看樱花,真是个浪漫的想法!
真棒!祝你旅途愉快!
Gemini 的 ChatSession
类通过管理会话的状态来实现多轮对话。下面是同样功能我们的代码。
import google.generativeai as genai
genai.configure(api_key="你的appkey")
model = genai.GenerativeModel('gemini-pro')
chat_history = [
{"role": "user","parts": [{"text": """你是一个30岁左右的程序员,
会对我的会话产生回复。
回复要求:
1. 字数不要超过30个字;
2. 如果没有合适的回复内容,给上一条回复给出点赞的话语;
3. 产生对话内容,只要内容,不用出现说明作者的部分。
随后我就会开始这个会话,你明白了自己的设定了么?
"""}]},
{"role":"model","parts":[{"text":"明白了,你可以开始了。"}]},
{"role":"user","parts":[{"text":"你好!最近怎么样?"}]},
{"role":"model","parts":[{"text":"我很好,谢谢。你呢?"}]},
{"role":"user","parts":[{"text":"我也不错。最近在忙些什么?"}]},
{"role":"model","parts":[{"text":"我在学习新的编程语言,挺有趣的。你呢?"}]},
{"role":"user","parts":[{"text":"我最近在准备一个旅行计划。"}]},
{"role":"model","parts":[{"text":"哦,听起来很棒!你打算去哪里?"}]},
]
chat = model.start_chat(history=chat_history)
response = chat.send_message("""
我打算去日本,
一直很想去那里看樱花。""")
print(response.text)
回复内容:
日本是个美丽的地方,樱花也很漂亮。祝你旅途愉快!
示例:识别图片
我是用下面这张图来让Gemini产生一段资深解说员级别的评论。
import google.generativeai as genai
import PIL.Image
genai.configure(api_key="你的appkey")
img = PIL.Image.open('01.jpeg')
context = """请给这张图,以资深解说员的角度,产生一段解说评论,要足够生动、吸引人。"""
model = genai.GenerativeModel('gemini-pro-vision')
response = model.generate_content([context,img])
print(response.text)
产生的解说:
大家好,欢迎收看本场比赛的解说。
比赛进行到第89分钟,日本队获得了一个任意球的机会。中村俊辅主罚任意球,皮球绕过人墙,直奔球门而去。德国门将诺伊尔奋力扑救,将球挡出底线。
这是一个非常精彩的任意球,中村俊辅的脚法非常出色,诺伊尔的扑救也非常神勇。双方球员在场上拼尽全力,为我们奉献了一场精彩的比赛。
让我们期待接下来的比赛,看看哪支球队能够取得胜利。
总结
本文通过实际示例,展示了Gemini API在续写对话和解说图像方面的能力。特别是在图像识别的应用示例中,Gemini API成功生成了生动、吸引人的体育比赛解说。
具有高频访问优势且支持图像识别的Gemini API,无疑是开拓创新的理想选择。它不仅免费开放,更在技术的海洋中为我们展现了无限的可能性,我们为什么还要犹豫不决?立即拥抱Gemini,让我们一同驶向智能技术的新纪元!
标签:API,python,text,parts,Gemini,role,model,genai From: https://blog.51cto.com/u_15588078/9095581