fix(stage-web|stage-tamagotchi): locked to openrouter-ai
This commit is contained in:
@@ -20,7 +20,7 @@ const { send, onAfterSend } = useChatStore()
|
||||
const { messages } = storeToRefs(useChatStore())
|
||||
const { t } = useI18n()
|
||||
const providersStore = useProvidersStore()
|
||||
const { activeModel } = storeToRefs(useConsciousnessStore())
|
||||
const { activeModel, activeProvider } = storeToRefs(useConsciousnessStore())
|
||||
|
||||
async function handleSend() {
|
||||
if (!messageInput.value.trim()) {
|
||||
@@ -28,9 +28,11 @@ async function handleSend() {
|
||||
}
|
||||
|
||||
try {
|
||||
const providerConfig = providersStore.getProviderConfig(activeProvider.value)
|
||||
await send(messageInput.value, {
|
||||
model: activeModel.value,
|
||||
chatProvider: providersStore.getProviderInstance('openrouter-ai') as ChatProvider,
|
||||
chatProvider: providersStore.getProviderInstance(activeProvider.value) as ChatProvider,
|
||||
providerConfig,
|
||||
})
|
||||
}
|
||||
catch (error) {
|
||||
|
||||
@@ -34,7 +34,13 @@ const { transcribe: generate, load: loadWhisper, status: whisperStatus, terminat
|
||||
return
|
||||
}
|
||||
|
||||
await send(res, { chatProvider: providersStore.getProviderInstance(activeProvider.value) as ChatProvider, model: activeModel.value })
|
||||
const providerConfig = providersStore.getProviderConfig(activeProvider.value)
|
||||
|
||||
await send(res, {
|
||||
chatProvider: providersStore.getProviderInstance(activeProvider.value) as ChatProvider,
|
||||
model: activeModel.value,
|
||||
providerConfig,
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
@@ -44,7 +50,13 @@ async function handleSend() {
|
||||
}
|
||||
|
||||
try {
|
||||
await send(messageInput.value, { chatProvider: providersStore.getProviderInstance(activeProvider.value) as ChatProvider, model: activeModel.value })
|
||||
const providerConfig = providersStore.getProviderConfig(activeProvider.value)
|
||||
|
||||
await send(messageInput.value, {
|
||||
chatProvider: providersStore.getProviderInstance(activeProvider.value) as ChatProvider,
|
||||
model: activeModel.value,
|
||||
providerConfig,
|
||||
})
|
||||
}
|
||||
catch (error) {
|
||||
messages.value.pop()
|
||||
|
||||
@@ -27,7 +27,13 @@ async function handleSend() {
|
||||
return
|
||||
}
|
||||
|
||||
await send(messageInput.value, { chatProvider: providersStore.getProviderInstance(activeProvider.value) as ChatProvider, model: activeModel.value })
|
||||
const providerConfig = providersStore.getProviderConfig(activeProvider.value)
|
||||
|
||||
await send(messageInput.value, {
|
||||
chatProvider: providersStore.getProviderInstance(activeProvider.value) as ChatProvider,
|
||||
model: activeModel.value,
|
||||
providerConfig,
|
||||
})
|
||||
}
|
||||
|
||||
const { destroy, start } = useMicVAD(selectedAudioDeviceId, {
|
||||
|
||||
@@ -71,7 +71,7 @@ export const useChatStore = defineStore('chat', () => {
|
||||
|
||||
const streamingMessage = ref<AssistantMessage>({ role: 'assistant', content: '' })
|
||||
|
||||
async function send(sendingMessage: string, options: { model: string, chatProvider: ChatProvider }) {
|
||||
async function send(sendingMessage: string, options: { model: string, chatProvider: ChatProvider, providerConfig?: Record<string, unknown> }) {
|
||||
try {
|
||||
sending.value = true
|
||||
|
||||
@@ -95,7 +95,16 @@ export const useChatStore = defineStore('chat', () => {
|
||||
await hook(sendingMessage)
|
||||
}
|
||||
|
||||
const res = await stream(options.model, options.chatProvider, newMessages as Message[])
|
||||
const headersArray = options.providerConfig?.headers as { key: string, value: string }[] | undefined
|
||||
|
||||
const headers = headersArray
|
||||
?.filter(h => h.key && h.value)
|
||||
.reduce((acc, curr) => {
|
||||
acc[curr.key] = curr.value
|
||||
return acc
|
||||
}, {} as Record<string, string>)
|
||||
|
||||
const res = await stream(options.model, options.chatProvider, newMessages as Message[], { headers })
|
||||
|
||||
for (const hook of onAfterSendHooks.value) {
|
||||
await hook(sendingMessage)
|
||||
|
||||
@@ -6,13 +6,18 @@ import { streamText } from '@xsai/stream-text'
|
||||
import { defineStore } from 'pinia'
|
||||
|
||||
export const useLLM = defineStore('llm', () => {
|
||||
async function stream(model: string, chatProvider: ChatProvider, messages: Message[]) {
|
||||
async function stream(model: string, chatProvider: ChatProvider, messages: Message[], options?: {
|
||||
headers?: Record<string, string>
|
||||
}) {
|
||||
const headers = options?.headers
|
||||
|
||||
return await streamText({
|
||||
...chatProvider.chat(model),
|
||||
messages,
|
||||
streamOptions: {
|
||||
usage: true,
|
||||
},
|
||||
headers,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user