前面我们申请了Google的AI Gemini Pro的API,那么如何来使用API访问Gemini 的大语言模型呢。谷歌其实给出了很多入门文档,包括Python,Go,Node.js,Android等等。我自己也不怎么会python,但还是跟着文档试了一下,用Python访问谷歌的Gemini,中间遇到不会的我就问Copilot。
谷歌其实给了个例子,直接在Google Colab上就能跑起来。我就是参考它实践了一下,中间遇到的问题主要是连不上谷歌服务器(需要代理)。最后的结果也是个比较糙的,自己就是试试手,毕竟也不是干这个的,但是还挺有成就感。
去下载安装Python,这个就不多说了。我是用VS Code来编辑Python的。反正用啥看你自己习惯。
在 VS Code 上跑 Python真的是越来越喜欢VS Code这个编辑器了,轻量化,插件多。以前还用subline,自从用了VS Code以后就感觉回不去了。VS Code 要运行Python其实挺简单的。下面是步骤:安装软件其实VS Code 只是个编辑器,要跑Pyth...2023.12.19
本例中还用到了Jupyter Notebook,不过因为现在VS Code的Python插件中已经内置了Jupyter Notebook,所以不用额外安装了。
这里插一句,Jupyter Notebook是一个可以在网页上运行的程序,它可以让你在同一个界面中编写、查看和执行代码,从而使得在进行更改并立即查看结果变得更加容易。它支持多种编程语言,包括Python、R、Julia等。刚好可以用这个来当做Gemini的客户端来用了。
复制你的Gemini API Key,如果还没有申请的可以先去看看前面的文章。
谷歌 Gemini Pro 开放 API,可免费使用(附申请步骤)谷歌上周推出的多模态大模型 Gemini (双子座)把 ChatGPT 吊起来打,然后现在又发布了 Gemini API,并且免费开放给开发者使用。根据谷歌提供的价格信息,将会有两个收费方式,现阶段的免费版本可以每分钟60次请求,足够满足个...2023.12.23
然后右键点击我的电脑(此电脑) → 属性 → 高级系统设置 → 环境变量。
点击新建,然后输入你的API KEY:
点击确定保存设置。
看是否成功可以打开cmd,输入 echo %你设置的变量名% 来看看是不是输出了对应的KEY。
自己在本地创建一个ipynb文件,例如:gemini.ipynb。用VS code打开。也可以直接在VS Code里按Ctrl + Shift + P,输入Jupyter,然后选择 Create: New Jupyter Notebook。
然后就是往里面贴代码了,得益于Jupyter,我们可以写文章一样,把步骤写清楚,而且还能一段一段的执行代码。
第一步是使用 pip 命令安装google-generativeai包。在谷歌的文档中已经有了,只要点击一下该代码前面的运行标志即可。
!pip install -q -U google-generativeai
可能会有一个提示:DEPRECATION: Loading egg at c:\python\python311\lib\site-packages\pip-22.3.1-py3.11.egg is deprecated. pip 24.3 will enforce this behaviour change. A possible replacement is to use pip for package installation.. Discussion can be found at https://github.com/pypa/pip/issues/12330
。这个不用管它,其实就是说你的 pip 版本较旧,而新版本的 pip 已经不再支持加载 egg 文件。这个不会影响你代码的运行。
在notebook里运行一下下面的代码,导入几个需要的python package。然后因为我们在国内,只有美国的IP才能访问Gemini,所以需要加入代理。另外为了美观,将输出的文本转换成Markdown格式。
这里127.0.0.1:7890 是我本地的代理软件Clash的端口。我是简单的用requests搞了个代理,问了AI,说还能用grpc 来实现。
import textwrapimport osimport requestsimport google.generativeai as genaifrom IPython.display import displayfrom IPython.display import Markdownproxies = {"http": "http://127.0.0.1:7890","https": "https://127.0.0.1:7890",}def to_markdown(text):text = text.replace('•', ' *')return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
因为直接将API Key写在代码里不太安全,所以这里谷歌是把它存在了google colab的user data里(红色部分),我们现在是在本地,所以使用环境变量来访问API Key是个不错的做法。(这些都是AI 告诉我的,哈哈)
GOOGLE_API_KEY = os.environ.get("GOOGLE_GEMINI_API_KEY")genai.configure(api_key=GOOGLE_API_KEY)print("Google API Key:", GOOGLE_API_KEY) # 打印API KEY
列出当前的谷歌gemini的模型。感觉应该是可以省掉的,我注释掉反正也能跑。
for m in genai.list_models():if 'generateContent' in m.supported_generation_methods:print(m.name)
打印结果:
models/gemini-promodels/gemini-pro-vision
接下来就是调用模型生成回答了,把你要问的写在model.generate_content里,主要要有双引号。然后Gemini就会回答你的问题了。
model = genai.GenerativeModel('gemini-pro')%%timeresponse = model.generate_content("怎么禁止Wordpress的auto embeds")to_markdown(response.text)
这个只是输入文字的模型,想要多模态输入,要调用gemini-pro-vision。这个我没弄了,可以照着谷歌的文档自己弄。需要用到PIL包,大概就是在上面的基础上把下面的代码加进去:
import PIL.Imageimg = PIL.Image.open('图片的路径或者URL')imgmodel = genai.GenerativeModel('gemini-pro-vision')response = model.generate_content(["你的prompt", img], stream=True)response.resolve()to_markdown(response.text)
Linode 价格及其在域名管理中的应用好用的VPN推荐深度解析Vultr CN2线路:性能优势、使用方式及常见问题Clash全局规则与直连:深入探讨及使用指南如何注册 Google 账号?全面指南韩国苹果Apple ID注册详解:轻松申请韩国ID,快速搞定Python 报错 module 'collections' has no attribute 'Iterable'谷歌将支付 7 亿美元作为 Play 商店纠纷解决的一部分✈️机场推荐【龙猫云】 - 全IPLC专线、老牌机场quantumultX脚本定时任务查看机场剩余流量Clash节点名词解密:机场推荐与一元机场Fancy Network 机场怎么样?性价比专线 8 折优惠