feat(openai): add getModelSetup() and typed provider options for OpenAI reasoning settings

This commit is contained in:
2026-05-06 19:09:58 +00:00
parent 8ad0b90f95
commit 5c871242b0
10 changed files with 952 additions and 1178 deletions
+33 -1
View File
@@ -70,11 +70,43 @@ const options: ISmartAiOptions = {
baseUrl: 'http://localhost:11434',
// Ollama-only: model runtime options
ollamaOptions: { think: true, num_ctx: 4096 },
// OpenAI request-time options for generateText()/streamText()
providerOptions: { openai: { reasoningEffort: 'xhigh' } },
};
const model = getModel(options);
```
### `getModelSetup(options): { model, providerOptions }`
Use this when a provider needs request-time AI SDK `providerOptions`, such as GPT-5 reasoning settings for OpenAI. `getModel()` remains available for existing consumers; `getModelSetup()` returns the same model plus provider options to pass into `generateText()` or `streamText()`.
```typescript
import { getModelSetup, generateText } from '@push.rocks/smartai';
const setup = getModelSetup({
provider: 'openai',
apiKey: process.env.OPENAI_API_KEY,
model: 'gpt-5.5',
providerOptions: {
openai: {
reasoningEffort: 'xhigh',
textVerbosity: 'high',
},
},
});
const result = await generateText({
model: setup.model,
prompt: 'Draft a careful migration plan.',
providerOptions: setup.providerOptions,
});
console.log(result.text);
```
OpenAI `reasoningEffort` supports `'none'`, `'minimal'`, `'low'`, `'medium'`, `'high'`, and `'xhigh'`. Model IDs are accepted as strings, so new IDs like `'gpt-5.5'` can be used before upstream model unions are updated.
### Re-exported AI SDK Functions
SmartAI re-exports the most commonly used functions from `ai` for convenience:
@@ -101,7 +133,7 @@ import type {
| Provider | Package | Example Models |
|----------|---------|----------------|
| **Anthropic** | `@ai-sdk/anthropic` | `claude-sonnet-4-5-20250929`, `claude-opus-4-5-20250929` |
| **OpenAI** | `@ai-sdk/openai` | `gpt-4o`, `gpt-4o-mini`, `o3-mini` |
| **OpenAI** | `@ai-sdk/openai` | `gpt-5.5`, `gpt-5`, `gpt-4o`, `o3-mini` |
| **Google** | `@ai-sdk/google` | `gemini-2.0-flash`, `gemini-2.5-pro` |
| **Groq** | `@ai-sdk/groq` | `llama-3.3-70b-versatile`, `mixtral-8x7b-32768` |
| **Mistral** | `@ai-sdk/mistral` | `mistral-large-latest`, `mistral-small-latest` |