DSL ビルダーガイド¶
本ライブラリは、複雑なリクエストを簡単に記述できる型安全な DSL ビルダーを提供しています。
チャット DSL¶
client.chat { ... } または chatRequest { ... } を使用して、リクエストを構築できます。
val request = chatRequest {
model = "openai/gpt-4o-mini"
systemMessage("Assistant instruction")
userMessage("Hello!")
}
メッセージビルダー¶
メッセージは、コンテンツを指定するだけで簡単に追加できます。
client.chat {
systemMessage("You are an assistant.")
userMessage("Hi!")
assistantMessage("Hello! How can I help you today?")
userMessage("Tell me a joke.")
}
ツールと関数の定義¶
OpenRouter (OpenAI 互換) の関数呼び出し(Tool Calling)も DSL で簡単に定義できます。
client.chat {
model = "openai/gpt-4o-mini"
userMessage("東京の天気を教えて。")
tools {
function(
name = "get_weather",
description = "指定された場所の現在の天気を取得します。"
) {
parameters {
property("location", "string") {
description = "都市名(例: 東京)"
}
required("location")
}
}
}
}
JSON Schema ビルダー¶
parameters { ... } ブロック内では、JSON Schema を直感的に構築できます。
property(name, type) { ... }: プロパティの追加。required(names...): 必須項目の指定。enum(values...): 列挙型の値の設定。
プロバイダールーティング¶
特定のプロバイダーを優先したり、除外したりする設定も DSL で行えます。
client.chat {
model = "openai/gpt-4o-mini"
provider {
order = listOf("OpenAI", "Azure")
allowFallbacks = true
requireParameters = true
}
}
階層構造¶
DSL は以下の階層構造を持っています。
ChatCompletionRequestBuilder(chatRequest { ... })ChatMessageBuilder(messages { ... })ToolBuilder(tools { ... })FunctionBuilder(function { ... })JsonSchemaBuilder(parameters { ... })
ProviderSettingsBuilder(provider { ... })