internal/model-profiles/README.md
A CLI tool for automatically generating TypeScript model profile files from the models.dev API. This tool fetches model capabilities and constraints, applies provider-level and model-specific overrides, and generates type-safe TypeScript files using the TypeScript AST API.
The model-profiles generator simplifies the process of maintaining model capability profiles across LangChain provider packages.
--filter commandsModelProfile interface from @langchain/coreThe model-profiles generator consists of:
internal/model-profiles/
āāā src/
ā āāā cli.ts # Command-line interface
ā āāā config.ts # TOML config parsing and override logic
ā āāā generator.ts # TypeScript code generation and API integration
ā āāā api-schema.ts # TypeScript types for models.dev API
ā āāā tests/ # Test suite
ā āāā config.test.ts
ā āāā generator.test.ts
āāā package.json # Tool dependencies
āāā vitest.config.ts # Test configuration
āāā README.md # This documentation
Create a TOML configuration file (e.g., profiles.toml) in a provider package:
provider = "openai"
output = "src/chat_models/profiles.ts"
Then run the generator:
# From the model-profiles package
pnpm --filter @langchain/model-profiles make --config profiles.toml
# Or if running from within a provider package
pnpm --filter @langchain/model-profiles make --config profiles.toml
The TOML configuration file supports the following structure:
# Required: Provider ID from models.dev
provider = "openai"
# Required: Output path for generated TypeScript file (relative to config file)
output = "src/chat_models/profiles.ts"
# Optional: Provider-level overrides (applied to all models)
[overrides]
maxInputTokens = 100000
toolCalling = true
structuredOutput = true
imageUrlInputs = true
# Optional: Model-specific overrides (override provider-level settings)
[overrides."gpt-4"]
maxOutputTokens = 8192
[overrides."gpt-3.5-turbo"]
maxInputTokens = 16385
imageUrlInputs = false