Skip to content

Commit 838281c

Browse files
committed
up
1 parent ec430f8 commit 838281c

File tree

7 files changed

+36
-19
lines changed

7 files changed

+36
-19
lines changed

app/assets/css/main.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,4 @@
1919

2020
:root {
2121
--ui-container: var(--container-3xl);
22-
}
22+
}

app/components/ModelSelect.vue

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
<script setup lang="ts">
2-
const { model, models } = useLLM()
2+
const { model, models } = useModels()
3+
4+
const items = computed(() => models.map(model => ({
5+
label: model,
6+
value: model,
7+
icon: `i-simple-icons-${model.split('/')[0]}`
8+
})))
39
</script>
410

511
<template>
612
<USelectMenu
713
v-model="model"
8-
:items="models"
14+
:items="items"
15+
:icon="`i-simple-icons-${model.split('/')[0]}`"
916
variant="ghost"
17+
value-key="value"
1018
class="hover:bg-default focus:bg-default data-[state=open]:bg-default"
1119
:ui="{
1220
trailingIcon: 'group-data-[state=open]:rotate-180 transition-transform duration-200'

app/composables/useLLM.ts

Lines changed: 0 additions & 13 deletions
This file was deleted.

app/composables/useModels.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
export function useModels() {
2+
const models = [
3+
// OpenAI Models
4+
'openai/gpt-5',
5+
'openai/gpt-5-mini',
6+
'openai/gpt-4o',
7+
'openai/gpt-4o-mini',
8+
// Anthropic Claude Models
9+
'anthropic/claude-sonnet-4',
10+
'anthropic/claude-sonnet-3.7',
11+
// Google Gemini Models
12+
'google/gemini-2.5-pro',
13+
'google/gemini-2.5-flash'
14+
]
15+
16+
const model = useCookie<string>('model', { default: () => 'openai/gpt-4o-mini' })
17+
18+
return {
19+
models,
20+
model
21+
}
22+
}

app/pages/chat/[id].vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const components = {
1414
const route = useRoute()
1515
const toast = useToast()
1616
const clipboard = useClipboard()
17-
const { model } = useLLM()
17+
const { model } = useModels()
1818
1919
const { data } = await useFetch(`/api/chats/${route.params.id}`, {
2020
cache: 'force-cache'

app/pages/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
const input = ref('')
33
const loading = ref(false)
44
5-
const { model } = useLLM()
5+
const { model } = useModels()
66
77
async function createChat(prompt: string) {
88
input.value = prompt

server/api/chats/[id].post.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export default defineEventHandler(async (event) => {
3434

3535
if (!chat.title) {
3636
const { text: title } = await generateText({
37-
model: gateway('openai/gpt-4.1-nano'),
37+
model: gateway('openai/gpt-5-nano'),
3838
system: `You are a title generator for a chat:
3939
- Generate a short title based on the first user's message
4040
- The title should be less than 30 characters long

0 commit comments

Comments
 (0)