diff --git a/plugin/gemini/api.go b/plugin/gemini/api.go index 3a7e67e..9e0624b 100644 --- a/plugin/gemini/api.go +++ b/plugin/gemini/api.go @@ -3,7 +3,7 @@ package gemini // Models: https://ai.google.dev/gemini-api/docs/models/gemini const ( - ApiUrlGemini = "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent" + ApiUrlGemini = "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContent" ApiUrlFileUpload = "https://generativelanguage.googleapis.com/upload/v1beta/files?key=%s" RoleModel = "model" RoleUser = "user" @@ -41,7 +41,7 @@ type ( Parts []Part `json:"parts"` } - // GenerateContentRequest - https://ai.google.dev/api/rest/v1beta/models/generateContent#request-body + // GenerateContentRequest - https://ai.google.dev/api/generate-content#request-body GenerateContentRequest struct { Contents []Content `json:"contents"` SafetySettings []SafetySetting `json:"safetySettings"` @@ -49,7 +49,7 @@ type ( SystemInstruction SystemInstruction `json:"system_instruction"` } - // GenerateContentResponse - https://ai.google.dev/api/rest/v1beta/GenerateContentResponse + // GenerateContentResponse - https://ai.google.dev/api/generate-content#generatecontentresponse GenerateContentResponse struct { Candidates []struct { Content Content `json:"content"` @@ -61,7 +61,7 @@ type ( } `json:"candidates"` } - // FileUploadResponse - https://ai.google.dev/api/rest/v1beta/media/upload#response-body + // FileUploadResponse - https://ai.google.dev/api/files#response-body FileUploadResponse struct { File struct { MimeType string `json:"mimeType"` diff --git a/plugin/gemini/gemini.go b/plugin/gemini/gemini.go index 601fac6..8342990 100644 --- a/plugin/gemini/gemini.go +++ b/plugin/gemini/gemini.go @@ -29,7 +29,7 @@ const ( TopP = 1 MaxOutputTokens = 700 MaxInputCharacters = 250000 // Should be roughly 1 mio tokens, max input tokens are 1048576 - TokensPerImage = 258 // https://ai.google.dev/gemini-api/docs/prompting_with_media?lang=python#video_formats + TokensPerImage = 258 // https://ai.google.dev/gemini-api/docs/tokens?lang=go#multimodal-tokens DefaultSystemInstruction = "Antworte nur auf Deutsch. Nutze nur Standard-Text, da Markdown für den Nutzer nicht angezeigt wird. Verwende keine Emoji. Bilder-Analyse ist eingeschaltet." ) @@ -67,7 +67,7 @@ func (p *Plugin) Commands() []gotgbot.BotCommand { func (p *Plugin) Handlers(botInfo *gotgbot.User) []plugin.Handler { return []plugin.Handler{ &plugin.CommandHandler{ - Trigger: regexp.MustCompile(`(?i)^Bot,? ([\s\S]+)$`), + Trigger: regexp.MustCompile(`(?i)^Bot, ([\s\S]+)$`), HandlerFunc: p.onGemini, GroupOnly: true, }, @@ -157,7 +157,7 @@ func (p *Plugin) onGemini(b *gotgbot.Bot, c plugin.GobotContext) error { parts := []Part{{Text: inputText.String()}} - //Upload photo first: https://ai.google.dev/gemini-api/docs/prompting_with_media + //Upload photo first: https://ai.google.dev/gemini-api/docs/vision?lang=rest#image-input if photo != nil { _, _ = c.EffectiveChat.SendAction(b, gotgbot.ChatActionUploadPhoto, nil) diff --git a/plugin/gemini/gemini.http b/plugin/gemini/gemini.http index 8c76ea3..3c3cdbf 100644 --- a/plugin/gemini/gemini.http +++ b/plugin/gemini/gemini.http @@ -1,5 +1,5 @@ # Chat prompt -POST https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key={{google_generative_language_api_key}} +POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContent?key={{google_generative_language_api_key}} Content-Type: application/json { @@ -57,7 +57,7 @@ Content-Type: image/jpeg ### # Vision prompt (edit fileUri below) -POST https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key={{google_generative_language_api_key}} +POST https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContent?key={{google_generative_language_api_key}} Content-Type: application/json { @@ -71,7 +71,7 @@ Content-Type: application/json { "fileData": { "mimeType": "image/jpeg", - "fileUri": "https://generativelanguage.googleapis.com/v1beta/files/ihbunuo8sc77" + "fileUri": "https://generativelanguage.googleapis.com/v1beta/files/sdkqtahx67k4" } } ]