Google 最近通过 API 免费提供了其最新的多模态 LLMS 系列,并提供了慷慨的免费优惠**。 谷歌还发布了几种流行编程语言的SDK,包括Go。 本文概述了如何开始使用 Go SDK 向模型询问混合文本和图像的问题。
翻译自 go 中使用 gemini 模型。 由Eli Bendersky撰写。 我们将要求模型解释的两张图像之间的区别,这张:
还有这个:
使用 Google AI SDK,您只需生成一个 API 密钥(类似于 OpenAI 的 API)即可访问模型。 GO SDK 位于其包文档中,其中有很多我们可以参考的例子。 以下是我们正在做的事情
package mainimport ( "context" "encoding/json" "fmt" "log" "os" "github.com/google/generative-ai-go/genai" "google.golang.org/api/option")func main() defer client.close() model := client.generativemodel("gemini-pro-vision") imgdata1, err := os.readfile("../images/turtle1.png") if err != nil imgdata2, err := os.readfile("../images/turtle2.png") if err != nil prompt := genai.part resp, err := model.generatecontent(ctx, prompt...if err != nil bs, _= json.marshalindent(resp, "", " ") fmt.println(string(bs))}由于 LLM API 是多模态的,因此 SDK 提供了 Genai 等服务ImageData 和 Genai文本以类型安全的方式换行输入。 当我们运行此示例时,模型的响应将输出为 JSON 对象。 其中重要的部分是:
"content": ,好的,现在我们知道了
使用 GCP Vertex SDK
如果您是 GCP 客户,并且已经为 GCP 项目设置了其他内容(例如计费),则可能需要使用 Vertex Go SDK。 GO SDK 的一大优点是您几乎不需要更改它**!唯一的更改是从以下位置导入行:
"github.com/google/generative-ai-go/genai"修改为:
"cloud.google.com/go/vertexai/genai"然后更改客户端的创建方式,因为身份验证是不同的。 对于顶点,客户端应按如下方式创建:
client, err := genai.newclient(ctx, os.getenv("gcp_project_id"), "us-central1")除其他外
gcp_project_id
是 GCP 项目的 ENV 变量,可以根据您的喜好设置位置区域。 其余的**保持不变!
有两个 SDK,因为这两种产品提供的功能在某些情况下可能会有所不同。 例如,适用于 GCP 的开发工具包可能允许您直接从存储桶或数据库表中读取数据。
本文中所有示例的完整列表包括示例图像 - 可在 GitHub 上找到。