Spaces:
Runtime error
Runtime error
const buildDefaultConversation = ({ | |
conversation, | |
endpoint, | |
endpointsConfig = {}, | |
lastConversationSetup = {}, | |
}) => { | |
const lastSelectedModel = JSON.parse(localStorage.getItem('lastSelectedModel')) || {}; | |
const lastSelectedTools = JSON.parse(localStorage.getItem('lastSelectedTools')) || []; | |
const lastBingSettings = JSON.parse(localStorage.getItem('lastBingSettings')) || []; | |
if (endpoint === 'azureOpenAI' || endpoint === 'openAI') { | |
conversation = { | |
...conversation, | |
endpoint, | |
model: | |
lastConversationSetup?.model ?? | |
lastSelectedModel[endpoint] ?? | |
endpointsConfig[endpoint]?.availableModels?.[0] ?? | |
'gpt-3.5-turbo', | |
chatGptLabel: lastConversationSetup?.chatGptLabel ?? null, | |
promptPrefix: lastConversationSetup?.promptPrefix ?? null, | |
temperature: lastConversationSetup?.temperature ?? 1, | |
top_p: lastConversationSetup?.top_p ?? 1, | |
presence_penalty: lastConversationSetup?.presence_penalty ?? 0, | |
frequency_penalty: lastConversationSetup?.frequency_penalty ?? 0, | |
}; | |
} else if (endpoint === 'google') { | |
conversation = { | |
...conversation, | |
endpoint, | |
model: | |
lastConversationSetup?.model ?? | |
lastSelectedModel[endpoint] ?? | |
endpointsConfig[endpoint]?.availableModels?.[0] ?? | |
'chat-bison', | |
modelLabel: lastConversationSetup?.modelLabel ?? null, | |
promptPrefix: lastConversationSetup?.promptPrefix ?? null, | |
examples: lastConversationSetup?.examples ?? [ | |
{ input: { content: '' }, output: { content: '' } }, | |
], | |
temperature: lastConversationSetup?.temperature ?? 0.2, | |
maxOutputTokens: lastConversationSetup?.maxOutputTokens ?? 1024, | |
topP: lastConversationSetup?.topP ?? 0.95, | |
topK: lastConversationSetup?.topK ?? 40, | |
}; | |
} else if (endpoint === 'bingAI') { | |
const { jailbreak, toneStyle } = lastBingSettings; | |
conversation = { | |
...conversation, | |
endpoint, | |
jailbreak: lastConversationSetup?.jailbreak ?? jailbreak ?? false, | |
context: lastConversationSetup?.context ?? null, | |
systemMessage: lastConversationSetup?.systemMessage ?? null, | |
toneStyle: lastConversationSetup?.toneStyle ?? toneStyle ?? 'creative', | |
jailbreakConversationId: lastConversationSetup?.jailbreakConversationId ?? null, | |
conversationSignature: null, | |
clientId: null, | |
invocationId: 1, | |
}; | |
} else if (endpoint === 'anthropic') { | |
conversation = { | |
...conversation, | |
endpoint, | |
model: | |
lastConversationSetup?.model ?? | |
lastSelectedModel[endpoint] ?? | |
endpointsConfig[endpoint]?.availableModels?.[0] ?? | |
'claude-1', | |
modelLabel: lastConversationSetup?.modelLabel ?? null, | |
promptPrefix: lastConversationSetup?.promptPrefix ?? null, | |
temperature: lastConversationSetup?.temperature ?? 0.7, | |
maxOutputTokens: lastConversationSetup?.maxOutputTokens ?? 1024, | |
topP: lastConversationSetup?.topP ?? 0.7, | |
topK: lastConversationSetup?.topK ?? 40, | |
}; | |
} else if (endpoint === 'chatGPTBrowser') { | |
conversation = { | |
...conversation, | |
endpoint, | |
model: | |
lastConversationSetup?.model ?? | |
lastSelectedModel[endpoint] ?? | |
endpointsConfig[endpoint]?.availableModels?.[0] ?? | |
'text-davinci-002-render-sha', | |
}; | |
} else if (endpoint === 'gptPlugins') { | |
const agentOptions = lastConversationSetup?.agentOptions ?? { | |
agent: 'functions', | |
skipCompletion: true, | |
model: 'gpt-3.5-turbo', | |
temperature: 0, | |
// top_p: 1, | |
// presence_penalty: 0, | |
// frequency_penalty: 0 | |
}; | |
conversation = { | |
...conversation, | |
endpoint, | |
tools: lastSelectedTools ?? lastConversationSetup?.tools ?? [], | |
model: | |
lastConversationSetup?.model ?? | |
lastSelectedModel[endpoint] ?? | |
endpointsConfig[endpoint]?.availableModels?.[0] ?? | |
'gpt-3.5-turbo', | |
chatGptLabel: lastConversationSetup?.chatGptLabel ?? null, | |
promptPrefix: lastConversationSetup?.promptPrefix ?? null, | |
temperature: lastConversationSetup?.temperature ?? 0.8, | |
top_p: lastConversationSetup?.top_p ?? 1, | |
presence_penalty: lastConversationSetup?.presence_penalty ?? 0, | |
frequency_penalty: lastConversationSetup?.frequency_penalty ?? 0, | |
agentOptions, | |
}; | |
} else if (endpoint === null) { | |
conversation = { | |
...conversation, | |
endpoint, | |
}; | |
} else { | |
console.error(`Unknown endpoint ${endpoint}`); | |
conversation = { | |
...conversation, | |
endpoint: null, | |
}; | |
} | |
return conversation; | |
}; | |
const getDefaultConversation = ({ conversation, endpointsConfig, preset }) => { | |
const { endpoint: targetEndpoint } = preset || {}; | |
if (targetEndpoint) { | |
// try to use preset | |
const endpoint = targetEndpoint; | |
if (endpointsConfig?.[endpoint]) { | |
conversation = buildDefaultConversation({ | |
conversation, | |
endpoint, | |
lastConversationSetup: preset, | |
endpointsConfig, | |
}); | |
return conversation; | |
} else { | |
console.log(endpoint); | |
console.warn(`Illegal target endpoint ${targetEndpoint} ${endpointsConfig}`); | |
} | |
} | |
// try { | |
// // try to use current model | |
// const { endpoint = null } = prevConversation || {}; | |
// if (endpointsConfig?.[endpoint]) { | |
// conversation = buildDefaultConversation({ | |
// conversation, | |
// endpoint, | |
// lastConversationSetup: prevConversation, | |
// endpointsConfig | |
// }); | |
// return conversation; | |
// } | |
// } catch (error) {} | |
try { | |
// try to read latest selected model from local storage | |
const lastConversationSetup = JSON.parse(localStorage.getItem('lastConversationSetup')); | |
let endpoint = null; | |
if (lastConversationSetup) { | |
({ endpoint } = lastConversationSetup); | |
} | |
if (endpointsConfig?.[endpoint]) { | |
conversation = buildDefaultConversation({ conversation, endpoint, endpointsConfig }); | |
return conversation; | |
} | |
} catch (error) { | |
console.error(error); | |
} | |
// if anything happens, reset to default model | |
const endpoint = [ | |
'openAI', | |
'azureOpenAI', | |
'bingAI', | |
'chatGPTBrowser', | |
'gptPlugins', | |
'google', | |
'anthropic', | |
].find((e) => endpointsConfig?.[e]); | |
if (endpoint) { | |
conversation = buildDefaultConversation({ conversation, endpoint, endpointsConfig }); | |
return conversation; | |
} else { | |
conversation = buildDefaultConversation({ conversation, endpoint: null, endpointsConfig }); | |
return conversation; | |
} | |
}; | |
export default getDefaultConversation; | |