From 93ca54126232e8b76d50caf3093e766347fd7cce Mon Sep 17 00:00:00 2001 From: Aaron Pham Date: Thu, 29 Aug 2024 01:26:26 -0400 Subject: [PATCH] feat(gemini): support vision model (closes #294) (#351) Signed-off-by: Aaron Pham --- lua/avante/providers/claude.lua | 1 - lua/avante/providers/gemini.lua | 12 ++++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lua/avante/providers/claude.lua b/lua/avante/providers/claude.lua index ceb858e..ec69a95 100644 --- a/lua/avante/providers/claude.lua +++ b/lua/avante/providers/claude.lua @@ -1,4 +1,3 @@ -local Config = require("avante.config") local Utils = require("avante.utils") local Clipboard = require("avante.clipboard") local P = require("avante.providers") diff --git a/lua/avante/providers/gemini.lua b/lua/avante/providers/gemini.lua index 2c6f7f9..86d21dd 100644 --- a/lua/avante/providers/gemini.lua +++ b/lua/avante/providers/gemini.lua @@ -1,5 +1,6 @@ local Utils = require("avante.utils") local P = require("avante.providers") +local Clipboard = require("avante.clipboard") ---@class AvanteProviderFunctor local M = {} @@ -28,6 +29,17 @@ M.parse_message = function(opts) table.insert(message_content, selected_code_obj) end + if Clipboard.support_paste_image() and opts.image_path then + local image_data = { + inline_data = { + mime_type = "image/png", + data = Clipboard.get_base64_content(opts.image_path), + }, + } + + table.insert(message_content, image_data) + end + -- insert a part into parts table.insert(message_content, { text = string.format("%s", opts.question),