@typia/utils


Utility functions and converters for the typia ecosystem.
Automatically installed as a dependency of typia.
Key Exports
HttpLlm | Create LLM controllers from OpenAPI documents and execute function calls |
HttpMigration | HTTP migration utilities |
HttpError | HTTP error type |
OpenApiConverter | Convert between OpenAPI versions |
OpenApiTypeChecker | Type checker for OpenAPI documents |
LlmSchemaConverter | Convert JSON Schema to LLM schema |
LlmTypeChecker | Type checker for LLM schemas |
LlmJson | Parse lenient JSON and format validation errors for LLM-friendly feedback |
LlmJson
Parse lenient JSON and format validation errors for LLM-friendly feedback:
import { IValidation } from "@typia/interface";
import { LlmJson } from "@typia/utils";
const validation: IValidation<unknown> = func.validate(llmArguments);
if (validation.success === false) {
console.log(LlmJson.stringify(validation));
}
Output:
{
"x": "not a number",
"y": 5
}
HttpLlm
Create LLM controllers from OpenAPI documents:
import { IHttpLlmController } from "@typia/interface";
import { HttpLlm } from "@typia/utils";
const controller: IHttpLlmController = HttpLlm.controller({
name: "shopping",
document: await fetch("https://shopping.example.com/swagger.json").then(r => r.json()),
connection: {
host: "https://shopping.example.com",
headers: { Authorization: "Bearer ..." },
},
});
toLangChainTools({ controllers: [controller] });
toVercelTools({ controllers: [controller] });
OpenApiConverter is used internally to normalize any OpenAPI version into a unified format. You can also use it directly:
import { OpenApi, OpenApiV3 } from "@typia/interface";
import { OpenApiConverter } from "@typia/utils";
const emended: OpenApi.IDocument = OpenApiConverter.upgradeDocument(swagger2doc);
const downgraded: OpenApiV3.IDocument = OpenApiConverter.downgradeDocument(emended, "3.0");