跳至主要內容

Google Gemini大模型API使用

SmartDeng...大约 3 分钟AILLMLLMGeminiAI

Google Gemini大模型API使用

前不久Google 开放了他们的大语言模型Gemini,目前Gemini Pro版已经可以通过开放API使用,搭建过程非常方便。 顺带,我把这个API接入到了我的Telegram机器人中,反正免费的,当作一个个人助手使用。 参考我的另一篇博客:基于flask和webhook的telegram 机器人open in new window Github仓库在这:mawwalker/Archbotopen in new window

准备

你需要有一个google帐号,并且能有海外网络环境,方便访问API。

并且最好有一台海外的vps,在海外的vps用API访问,并且搭建网页前端,都是很方便的。

申请API

官网链接:Google AI Studioopen in new window 进去直接点击申请即可,复制API Key。官方给出了一个测试的命令,可以测试下:

curl \
  -H 'Content-Type: application/json' \
  -d '{"contents":[{"parts":[{"text":"Write a story about a magic backpack"}]}]}' \
  -X POST https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=YOUR_API_KEY

将YOUR_API_KEY替换为你刚申请的API Key,如果正常有结果返回就行。

海外VPS

自行准备一个境外的服务器,推荐的有亚马逊的Lightsail,vultr,阿里云/腾讯云海外region的轻量应用服务器等。 亚马逊Lightsail用起来挺爽的,3.5$一个月,新用户注册免费用三个月前两个基础配置的服务器,但是帐号注册有点折腾,可以自行找网上教程。

Vultr新用户,有一个月的免费$250的赠送额度(活动可能有时效,以注册时的官网信息为准),需要绑定visa申请,有visa卡的朋友可以白嫖一下,点击链接申请: https://www.vultr.comopen in new window 后续付款是支持支付宝、paypal等方式的,这里用visa开通,应该是为了避免被无限白嫖。vultr是按小时收费的,可以随用随开,用完即删。

阿里云跟腾讯云差不多,注意是买轻量应用服务器,不是阿里云ECS这种,ECS很贵。。。缺点是,这两个是包月购买。

Python 示例

官方提供了Python的Quick Start: Gemini API: Quickstart with Pythonopen in new window

初始化

使用如下命令,安装两个依赖:

pip install google-generativeai ipykernel

导入必要的库,设置环境变量GOOGLE_API_KEY为你前面申请的KEY,并初始化Google API

import pathlib
import textwrap
import os
import google.generativeai as genai

from IPython.display import display
from IPython.display import Markdown


def to_markdown(text):
  text = text.replace('•', '  *')
  return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))

GOOGLE_API_KEY = os.getenv('GOOGLE_API_KEY')

genai.configure(api_key=GOOGLE_API_KEY)

其中,to_markdown函数,用来将模型返回的结果,转换成可以在Python Notebook上显示的Markdown对象

列出可以使用的模型

for m in genai.list_models():
  if 'generateContent' in m.supported_generation_methods:
    print(m.name)

输出:

models/gemini-pro
models/gemini-pro-vision

调用模型

model = genai.GenerativeModel('gemini-pro')
response = model.generate_content("给我讲个笑话")
print(response.text)

markdown格式化

如果是在Notebook中运行的,使用如下命令,可以显示markdown的格式化文本

to_markdown(response.text)

更多的使用方式可以参考官方文档,github上还有一个自建聊天前端的仓库,折腾中。。。

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3