feat: make the chat box display the correct model name, and allow multiple different models to be used at the same time (#49)

This commit is contained in:
josc146
2023-03-27 13:50:26 +08:00
parent a70682a7d3
commit 66af38a828
6 changed files with 26 additions and 25 deletions
+1 -1
View File
@@ -47,7 +47,7 @@ export async function generateAnswersWithBingWebApi(
answer += token
// remove reference markers [^number^]
answer = answer.replaceAll(/\[\^\d+\^\]/g, '')
port.postMessage({ answer: answer, done: false, session: session })
port.postMessage({ answer: answer, done: false, session: null })
},
})
.catch((err) => {
+1 -1
View File
@@ -122,7 +122,7 @@ export async function generateAnswersWithChatgptWebApi(port, question, session,
answer = data.message?.content?.parts?.[0]
if (answer) {
port.postMessage({ answer: answer, done: false, session: session })
port.postMessage({ answer: answer, done: false, session: null })
}
},
async onStart() {
+13 -9
View File
@@ -15,6 +15,7 @@ import {
defaultConfig,
getUserConfig,
gptApiModelKeys,
Models,
} from '../config/index.mjs'
import { isSafari } from '../utils/is-safari'
import { config as menuConfig } from '../content-script/menu-tools'
@@ -58,47 +59,50 @@ Browser.runtime.onConnect.addListener((port) => {
const session = msg.session
if (!session) return
const config = await getUserConfig()
if (!session.modelName) session.modelName = config.modelName
if (!session.aiName) session.aiName = Models[session.modelName].desc
port.postMessage({ session })
try {
if (chatgptWebModelKeys.includes(config.modelName)) {
if (chatgptWebModelKeys.includes(session.modelName)) {
const accessToken = await getChatGptAccessToken()
session.messageId = crypto.randomUUID()
if (session.parentMessageId == null) {
session.parentMessageId = crypto.randomUUID()
}
await generateAnswersWithChatgptWebApi(port, session.question, session, accessToken)
} else if (bingWebModelKeys.includes(config.modelName)) {
} else if (bingWebModelKeys.includes(session.modelName)) {
const accessToken = await getBingAccessToken()
await generateAnswersWithBingWebApi(
port,
session.question,
session,
accessToken,
config.modelName,
session.modelName,
)
} else if (gptApiModelKeys.includes(config.modelName)) {
} else if (gptApiModelKeys.includes(session.modelName)) {
await generateAnswersWithGptCompletionApi(
port,
session.question,
session,
config.apiKey,
config.modelName,
session.modelName,
)
} else if (chatgptApiModelKeys.includes(config.modelName)) {
} else if (chatgptApiModelKeys.includes(session.modelName)) {
await generateAnswersWithChatgptApi(
port,
session.question,
session,
config.apiKey,
config.modelName,
session.modelName,
)
} else if (customApiModelKeys.includes(config.modelName)) {
} else if (customApiModelKeys.includes(session.modelName)) {
await generateAnswersWithCustomApi(
port,
session.question,
session,
config.apiKey,
config.modelName,
session.modelName,
)
}
} catch (err) {