Skip to content

Commit

Permalink
Fixed issue causing palm and claude conversation to not load correctly.
Browse files Browse the repository at this point in the history
this caused loss of previous portions of the chat history for context.
  • Loading branch information
fingerthief committed Mar 9, 2024
1 parent 5a316c5 commit e6b377d
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 49 deletions.
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
<div class="settings-header">
<h2 data-bind="click: () => { window.location.reload(true); }">
<span class="fa-solid fa-arrows-rotate"></span>
Settings | V4.1.0</h2>
Settings | V4.1.1</h2>
</div>
<div class="sidebar-content-container">
<div class="api-key">
Expand Down
72 changes: 24 additions & 48 deletions js/app-view-model.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import {
fetchPalmConversationTitle
} from '../js/palm-api-access.js';

import { fetchClaudeResponse, fetchClaudeConversationTitle } from '../js/claude-api-access.js';
import { fetchClaudeResponse, fetchClaudeConversationTitle, fetchClaudeVisionResponse } from '../js/claude-api-access.js';

import "../node_modules/swiped-events/dist/swiped-events.min.js";

Expand Down Expand Up @@ -363,6 +363,18 @@ export function AppViewModel() {
self.showConversationOptions(false);

self.messages(selectedMessages);

if (self.selectedModel().indexOf("claude") !== -1) {
for (const chatMessage of self.messages()) {
self.claudeMessages.push({ role: chatMessage.role, content: chatMessage.content });
}
}

if (self.selectedModel().indexOf("bison") !== -1) {
for (const chatMessage of self.messages()) {
self.palmMessages.push({ role: chatMessage.role, content: chatMessage.content });
}
}
};

self.showSearchField = async function (isFromSearch) {
Expand Down Expand Up @@ -536,8 +548,7 @@ export function AppViewModel() {
{
type: "text",
text: message.content
}
;
};

visionFormattedMessages.push(visionFormattedMessage);
}
Expand Down Expand Up @@ -588,39 +599,14 @@ export function AppViewModel() {
}
});

const response = await fetch(`https://corsproxy.io/?${encodeURIComponent("https://api.anthropic.com/v1/messages")}`, {
method: "POST",
headers: {
"x-api-key": apiKey,
"anthropic-version": "2023-06-01",
"content-type": "application/json"
},
body: JSON.stringify({
max_tokens: 4096,
stream: false,
model: self.selectedModel(),
messages: [
{
role: "user",
content: visionFormattedMessages
}
],
temperature: 0.5
}),
});

const result = await response.json();
const response = await fetchClaudeVisionResponse(visionFormattedMessages, apiKey, self.selectedModel())

if (result.content && result.content.length > 0) {
addMessage("assistant", result.content[0].text);
self.claudeMessages.push({ role: "assistant", content: result.content[0].text })
addMessage("assistant", response);
self.claudeMessages.push({ role: "assistant", content: response })

self.saveMessages();
self.isAnalyzingImage(false);
self.scrollToBottom();
} else {
return "I'm sorry, I couldn't generate a response.";
}
self.saveMessages();
self.isAnalyzingImage(false);
self.scrollToBottom();
}
else {
return "not implemented for selected model";
Expand Down Expand Up @@ -699,20 +685,10 @@ export function AppViewModel() {
self.isClaudeEnabled(true);
self.isLoading(true);



if (self.claudeMessages.length === 0) {
self.claudeMessages.push({ role: "user", content: messageText });
addMessage("user", messageText);

this.scrollToBottom();
}
else {
self.claudeMessages.push({ role: "user", content: messageText });
addMessage("user", messageText);
this.scrollToBottom();
}

self.claudeMessages.push({ role: "user", content: messageText });
addMessage("user", messageText);
this.scrollToBottom();

let messageContext = self.claudeMessages.slice(0);

const response = await fetchClaudeResponse(messageContext, self.claudeSliderValue(), self.selectedModel());
Expand Down
31 changes: 31 additions & 0 deletions js/claude-api-access.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,35 @@ export async function fetchClaudeConversationTitle(messages) {
return "An error occurred while fetching Claude conversation title.";
}
}
}

export async function fetchClaudeVisionResponse(visionMessages, apiKey, model,) {
const response = await fetch(`https://corsproxy.io/?${encodeURIComponent("https://api.anthropic.com/v1/messages")}`, {
method: "POST",
headers: {
"x-api-key": apiKey,
"anthropic-version": "2023-06-01",
"content-type": "application/json"
},
body: JSON.stringify({
max_tokens: 4096,
stream: false,
model: model,
messages: [
{
role: "user",
content: visionMessages
}
],
temperature: 0.5
}),
});

const result = await response.json();

if (result.content && result.content.length > 0) {
return result.content[0].text;
} else {
return "I'm sorry, I couldn't generate a response.";
}
}

0 comments on commit e6b377d

Please sign in to comment.