使用 Google Gemini 免费 API

✨ 谷歌在 12 月 14 日起免费开放 Gemini Pro 和 Gemini Pro Vision 的 API。Gemini Pro 的个人使用体验类似于 ChatGPT-3.5,但是它的 API 是免费的。通过 Gemini SDK,我们可以编码调用 API 来获取图片之间的区别。具体的调用方式和参数请参考谷歌 Gemini 官方文档。同时,还可以通过其他开源项目将 Telegram Bot 接入 Gemini API,并在 Vercel 等平台快速部署项目。

谷歌在官网宣布,12月14日0点起免费开放Gemini Pro和Gemini Pro Vision的 API。每分钟可发出60个请求。

我们可在 Bard 上快速体验:bard.google.com

Gemini Pro 个人使用下来体感比较接近 ChatGPT-3.5 ,但是它的 API 免费,相比较起来就很香了,还要啥自行车……

首先我们申请免费的 API Key,地址:https://makersuite.google.com/app/apikey

下面便可以通过 Gemini SDK 来编码调用 API , 具体调用方式以及相应的参数、响应,详见 Google Gemini 官方文档:https://ai.google.dev/docs

如下代码是最简单的调用 gemini-pro-vision 模型来获取两张测试图片之间的区别:

package main

import (
  "context"
  "encoding/json"
  "fmt"
  "log"
  "os"

  "github.com/google/generative-ai-go/genai"
  "google.golang.org/api/option"
)

func main() {
  ctx := context.Background()
  client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
  if err != nil {
    log.Fatal(err)
  }
  defer client.Close()

  model := client.GenerativeModel("gemini-pro-vision")

  imgData1, err := os.ReadFile("../images/test-1.png")
  if err != nil {
    log.Fatal(err)
  }

  imgData2, err := os.ReadFile("../images/test-2.png")
  if err != nil {
    log.Fatal(err)
  }

  prompt := []genai.Part{
    genai.ImageData("png", imgData1),
    genai.ImageData("png", imgData2),
    genai.Text("Describe the difference between these two pictures, with scientific detail"),
  }
  resp, err := model.GenerateContent(ctx, prompt...)

  if err != nil {
    log.Fatal(err)
  }

  bs, _ := json.MarshalIndent(resp, "", "    ")
  fmt.Println(string(bs))
}

Telegram Bot 接入 Gemini API

https://github.com/hkint/go-gemini-telegram-bothttps://t.me/hk_gemini_bot

相关开源项目

下面是可在 Vercel 等平台或 Docker 快速部署的开源项目,按提示配置好 Gemini API Key 即可实现与 AI 大模型的对话式交互。

https://github.com/babaohuang/GeminiProChathttps://github.com/ChatGPTNextWeb/ChatGPT-Next-Webhttps://github.com/blacksev/Gemini-Next-Webhttps://github.com/loo-y/GeminiChatUphttps://github.com/bclswl0827/ChatGeminihttps://github.com/sinnedpenguin/dennx