notdiamond
Version:
The official TypeScript library for the Notdiamond API
110 lines • 3.57 kB
TypeScript
import { APIResource } from "../core/resource.js";
import { APIPromise } from "../core/api-promise.js";
import { RequestOptions } from "../internal/request-options.js";
export declare class Models extends APIResource {
/**
* List all supported text generation models with optional filtering.
*
* including pricing, context length, latency, and OpenRouter availability.
*
* **Note:** Image generation models are excluded from this endpoint.
*
* **Examples:**
*
* - Get all models: `/v2/models`
* - OpenRouter only: `/v2/models?openrouter_only=true`
* - Specific provider: `/v2/models?provider=openai`
* - Multiple providers: `/v2/models?provider=openai&provider=anthropic`
*
* **Query Parameters:**
*
* - **provider**: Filter by provider name(s). Can specify multiple times for
* multiple providers (e.g., `?provider=openai&provider=anthropic`)
* - **openrouter_only**: Return only models that have OpenRouter support (default:
* false)
*
* **Returns:**
*
* - **models**: List of active text generation model objects with metadata
* - **total**: Total number of active models returned
* - **deprecated_models**: List of deprecated text generation model objects with
* metadata (respects the same filters as active models)
*
* **Caching:**
*
* - Response is cacheable for 1 hour (model list rarely changes)
*
* @example
* ```ts
* const models = await client.models.list();
* ```
*/
list(query?: ModelListParams | null | undefined, options?: RequestOptions): APIPromise<ModelListResponse>;
}
/**
* Response model for a single LLM model from GET /v2/models endpoint.
*
* Contains metadata about a supported text generation model including pricing,
* context limits, and availability information.
*/
export interface Model {
/**
* Maximum context window size in tokens
*/
context_length: number;
/**
* Price per million input tokens in USD
*/
input_price: number;
/**
* Model identifier (e.g., 'gpt-4', 'claude-3-opus-20240229')
*/
model: string;
/**
* Price per million output tokens in USD
*/
output_price: number;
/**
* Provider name (e.g., 'openai', 'anthropic', 'google')
*/
provider: string;
/**
* OpenRouter model identifier if available, null if not supported via OpenRouter
*/
openrouter_model?: string | null;
}
/**
* Response model for GET /v2/models endpoint.
*
* Returns a list of all supported text generation models with their metadata,
* separated into active and deprecated models.
*/
export interface ModelListResponse {
/**
* List of deprecated models that are no longer recommended but may still work
*/
deprecated_models: Array<Model>;
/**
* List of active/supported text generation models with their metadata
*/
models: Array<Model>;
/**
* Total count of active models in the response
*/
total: number;
}
export interface ModelListParams {
/**
* Return only OpenRouter-supported models
*/
openrouter_only?: boolean;
/**
* Filter by provider name(s). Can specify multiple providers (e.g., 'openai',
* 'anthropic')
*/
provider?: Array<string> | null;
}
export declare namespace Models {
export { type Model as Model, type ModelListResponse as ModelListResponse, type ModelListParams as ModelListParams, };
}
//# sourceMappingURL=models.d.ts.map