diff --git a/src/lib/Setting/Pages/BotSettings.svelte b/src/lib/Setting/Pages/BotSettings.svelte
index 61aec249..7ead5cca 100644
--- a/src/lib/Setting/Pages/BotSettings.svelte
+++ b/src/lib/Setting/Pages/BotSettings.svelte
@@ -115,7 +115,7 @@
{/if}
-{#if $DataBase.aiModel.startsWith('palm2') || $DataBase.subModel.startsWith('palm2')}
+{#if $DataBase.aiModel.startsWith('palm2') || $DataBase.subModel.startsWith('palm2') || $DataBase.aiModel.startsWith('gemini') || $DataBase.subModel.startsWith('gemini')}
Google Bearer Token
diff --git a/src/lib/UI/ModelList.svelte b/src/lib/UI/ModelList.svelte
index d7cbd4dd..6a0ad43c 100644
--- a/src/lib/UI/ModelList.svelte
+++ b/src/lib/UI/ModelList.svelte
@@ -75,6 +75,8 @@
return "Mistral Small"
case 'mistral-medium':
return "Mistral Medium"
+ case 'gemini-pro':
+ return "Gemini Pro"
default:
if(name.startsWith("horde:::")){
return name.replace(":::", " ")
@@ -160,6 +162,10 @@
+
+
+
+
{/if}
diff --git a/src/ts/image.ts b/src/ts/image.ts
index f944dcb3..0db61712 100644
--- a/src/ts/image.ts
+++ b/src/ts/image.ts
@@ -94,7 +94,7 @@ export async function getInlayImage(id: string){
export function supportsInlayImage(){
const db = get(DataBase)
- return db.aiModel.startsWith('gptv') || (db.aiModel === 'reverse_proxy' && db.proxyRequestModel?.startsWith('gptv'))
+ return db.aiModel.startsWith('gptv') || (db.aiModel === 'reverse_proxy' && db.proxyRequestModel?.startsWith('gptv')) || db.aiModel === 'gemini-pro-vision'
}
export async function reencodeImage(img:Uint8Array){
diff --git a/src/ts/process/request.ts b/src/ts/process/request.ts
index f7ec831a..7ff2602b 100644
--- a/src/ts/process/request.ts
+++ b/src/ts/process/request.ts
@@ -306,14 +306,14 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
}
}
else{
- const prevChat = reformatedChat[i-1]
+ const prevChat = reformatedChat[reformatedChat.length-1]
if(prevChat.role === chat.role){
- reformatedChat[i-1].content += '\n' + chat.content
+ reformatedChat[reformatedChat.length-1].content += '\n' + chat.content
continue
}
else if(chat.role === 'system'){
if(prevChat.role === 'user'){
- reformatedChat[i-1].content += '\nSystem:' + chat.content
+ reformatedChat[reformatedChat.length-1].content += '\nSystem:' + chat.content
}
else{
reformatedChat.push({
@@ -322,6 +322,12 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
})
}
}
+ else if(chat.role === 'function'){
+ reformatedChat.push({
+ role: 'user',
+ content: chat.content
+ })
+ }
else{
reformatedChat.push({
role: chat.role,
@@ -1003,6 +1009,202 @@ export async function requestChatDataMain(arg:requestDataArgument, model:'model'
}
}
}
+ case 'gemini-pro':
+ case 'gemini-pro-vision':{
+ interface GeminiPart{
+ text?:string
+ "inlineData"?: {
+ "mimeType": string,
+ "data": string
+ },
+ }
+
+ interface GeminiChat {
+ role: "USER"|"MODEL"
+ parts:|GeminiPart[]
+ }
+
+
+ let reformatedChat:GeminiChat[] = []
+ let pendingImage = ''
+
+ for(let i=0;i