Skip to content

Commit 0daf4ab

Browse files
committed
chore: opengpt meta
1 parent fcf9360 commit 0daf4ab

File tree

2 files changed

+105
-0
lines changed

2 files changed

+105
-0
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
import type {
2+
OllamaChatRequest,
3+
OllamaChatRequestMessages,
4+
OllamaChatRequestThinking_OpenAI,
5+
OllamaChatRequestTools,
6+
OllamaMessageThinking,
7+
OllamaMessageTools,
8+
OllamaModelMeta,
9+
} from './models-meta'
10+
11+
const OPT_OSS_LATEST = {
12+
name: 'gpt-oss:latest',
13+
supports: {
14+
input: ['text'],
15+
output: ['text'],
16+
capabilities: ['tools', 'thinking'],
17+
},
18+
size: '14gb',
19+
context: 128_000,
20+
} as const satisfies OllamaModelMeta<
21+
OllamaChatRequest &
22+
OllamaChatRequestMessages<OllamaMessageTools & OllamaMessageThinking> &
23+
OllamaChatRequestTools &
24+
OllamaChatRequestThinking_OpenAI
25+
>
26+
27+
const OPT_OSS_20b = {
28+
name: 'gpt-oss:20b',
29+
supports: {
30+
input: ['text'],
31+
output: ['text'],
32+
capabilities: ['tools'],
33+
},
34+
size: '14gb',
35+
context: 128_000,
36+
} as const satisfies OllamaModelMeta<
37+
OllamaChatRequest &
38+
OllamaChatRequestMessages<OllamaMessageTools & OllamaMessageThinking> &
39+
OllamaChatRequestTools &
40+
OllamaChatRequestThinking_OpenAI
41+
>
42+
43+
const OPT_OSS_120b = {
44+
name: 'gpt-oss:120b',
45+
supports: {
46+
input: ['text'],
47+
output: ['text'],
48+
capabilities: ['tools'],
49+
},
50+
size: '65gb',
51+
context: 128_000,
52+
} as const satisfies OllamaModelMeta<
53+
OllamaChatRequest &
54+
OllamaChatRequestMessages<OllamaMessageTools & OllamaMessageThinking> &
55+
OllamaChatRequestTools &
56+
OllamaChatRequestThinking_OpenAI
57+
>
58+
59+
export const GPT_OSS_MODELS = [
60+
OPT_OSS_LATEST.name,
61+
OPT_OSS_20b.name,
62+
OPT_OSS_120b.name,
63+
] as const
64+
65+
// const GPT_OSS_IMAGE_MODELS = [] as const
66+
67+
// export const GPT_OSS_EMBEDDING_MODELS = [] as const
68+
69+
// const GPT_OSS_AUDIO_MODELS = [] as const
70+
71+
// const GPT_OSS_VIDEO_MODELS = [] as const
72+
73+
// export type GptOssChatModels = (typeof GPT_OSS_MODELS)[number]
74+
75+
// Manual type map for per-model provider options
76+
export type GptOssChatModelProviderOptionsByName = {
77+
// Models with thinking and structured output support
78+
[OPT_OSS_LATEST.name]: OllamaChatRequest &
79+
OllamaChatRequestMessages<OllamaMessageTools & OllamaMessageThinking> &
80+
OllamaChatRequestTools &
81+
OllamaChatRequestThinking_OpenAI
82+
[OPT_OSS_20b.name]: OllamaChatRequest &
83+
OllamaChatRequestMessages<OllamaMessageTools & OllamaMessageThinking> &
84+
OllamaChatRequestTools &
85+
OllamaChatRequestThinking_OpenAI
86+
[OPT_OSS_120b.name]: OllamaChatRequest &
87+
OllamaChatRequestMessages<OllamaMessageTools & OllamaMessageThinking> &
88+
OllamaChatRequestTools &
89+
OllamaChatRequestThinking_OpenAI
90+
}
91+
92+
export type GptOssModelInputModalitiesByName = {
93+
// Models with text, image, audio, video (no document)
94+
[OPT_OSS_LATEST.name]: typeof OPT_OSS_LATEST.supports.input
95+
[OPT_OSS_20b.name]: typeof OPT_OSS_20b.supports.input
96+
[OPT_OSS_120b.name]: typeof OPT_OSS_120b.supports.input
97+
}

packages/typescript/ai-ollama/src/model-meta.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { FIREFUNCTION_V2_MODELS } from './meta/model-meta-firefunction-v2'
1919
import { GEMMA_MODELS } from './meta/model-meta-gemma'
2020
import { GEMMA2_MODELS } from './meta/model-meta-gemma2'
2121
import { GEMMA3_MODELS } from './meta/model-meta-gemma3'
22+
import { GPT_OSS_MODELS } from './meta/model-meta-gpt-oss'
2223
import { GRANITE3_DENSE_MODELS } from './meta/model-meta-granite3-dense'
2324
import { GRANITE3_GUARDIAN_MODELS } from './meta/model-meta-granite3-guardian'
2425
import { GRANITE3_MOE_MODELS } from './meta/model-meta-granite3-moe'
@@ -145,6 +146,10 @@ import type {
145146
Gemma3ChatModelProviderOptionsByName,
146147
Gemma3ModelInputModalitiesByName,
147148
} from './meta/model-meta-gemma3'
149+
import type {
150+
GptOssChatModelProviderOptionsByName,
151+
GptOssModelInputModalitiesByName,
152+
} from './meta/model-meta-gpt-oss'
148153
import type {
149154
Granite3DenseChatModelProviderOptionsByName,
150155
Granite3DenseModelInputModalitiesByName,
@@ -343,6 +348,7 @@ export const OLLAMA_TEXT_MODELS = [
343348
...GEMMA_MODELS,
344349
...GEMMA2_MODELS,
345350
...GEMMA3_MODELS,
351+
...GPT_OSS_MODELS,
346352
...GRANITE3_DENSE_MODELS,
347353
...GRANITE3_GUARDIAN_MODELS,
348354
...GRANITE3_MOE_MODELS,
@@ -411,6 +417,7 @@ export type OllamaChatModelProviderOptionsByName =
411417
GemmaChatModelProviderOptionsByName &
412418
Gemma2ChatModelProviderOptionsByName &
413419
Gemma3ChatModelProviderOptionsByName &
420+
GptOssChatModelProviderOptionsByName &
414421
Granite3DenseChatModelProviderOptionsByName &
415422
Granite3GuardianChatModelProviderOptionsByName &
416423
Granite3MoeChatModelProviderOptionsByName &
@@ -477,6 +484,7 @@ export type OllamaModelInputModalitiesByName =
477484
GemmaModelInputModalitiesByName &
478485
Gemma2ModelInputModalitiesByName &
479486
Gemma3ModelInputModalitiesByName &
487+
GptOssModelInputModalitiesByName &
480488
Granite3DenseModelInputModalitiesByName &
481489
Granite3GuardianModelInputModalitiesByName &
482490
Granite3MoeModelInputModalitiesByName &

0 commit comments

Comments
 (0)