@@ -1,5 +1,11 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fixed `streamSimple()` defaults for models whose advertised output limit is effectively their full context window to avoid impossible default requests ([#4614](https://github.com/earendil-works/pi/issues/4614)).
|
||||||
|
|
||||||
## [0.74.1] - 2026-05-16
|
## [0.74.1] - 2026-05-16
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -1,9 +1,19 @@
|
|||||||
import type { Api, Model, SimpleStreamOptions, StreamOptions, ThinkingBudgets, ThinkingLevel } from "../types.js";
|
import type { Api, Model, SimpleStreamOptions, StreamOptions, ThinkingBudgets, ThinkingLevel } from "../types.js";
|
||||||
|
|
||||||
|
const DEFAULT_MAX_OUTPUT_TOKENS = 32000;
|
||||||
|
const CONTEXT_WINDOW_OUTPUT_TOLERANCE = 1024;
|
||||||
|
|
||||||
export function buildBaseOptions(model: Model<Api>, options?: SimpleStreamOptions, apiKey?: string): StreamOptions {
|
export function buildBaseOptions(model: Model<Api>, options?: SimpleStreamOptions, apiKey?: string): StreamOptions {
|
||||||
|
const defaultMaxTokens =
|
||||||
|
model.maxTokens > 0
|
||||||
|
? model.maxTokens >= model.contextWindow - CONTEXT_WINDOW_OUTPUT_TOLERANCE
|
||||||
|
? Math.min(model.maxTokens, DEFAULT_MAX_OUTPUT_TOKENS)
|
||||||
|
: model.maxTokens
|
||||||
|
: undefined;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
temperature: options?.temperature,
|
temperature: options?.temperature,
|
||||||
maxTokens: options?.maxTokens ?? (model.maxTokens > 0 ? model.maxTokens : undefined),
|
maxTokens: options?.maxTokens ?? defaultMaxTokens,
|
||||||
signal: options?.signal,
|
signal: options?.signal,
|
||||||
apiKey: apiKey || options?.apiKey,
|
apiKey: apiKey || options?.apiKey,
|
||||||
transport: options?.transport,
|
transport: options?.transport,
|
||||||
|
|||||||
Reference in New Issue
Block a user