Back to OSS

swift-llm-structured-outputs

Type-safe structured output generation for Swift LLM clients

Swift
llmaistructured-output

swift-llm-structured-outputs

型安全な構造化出力を生成する Swift LLM クライアントライブラリ

🌐 English | 日本語

Swift Platforms License

概要

Claude、GPT、Gemini から型安全な構造化出力を取得できる Swift ライブラリです。Swift Macro で定義した構造体に LLM の応答を直接マッピングします。

主要機能

  • 構造化出力 - @Structured マクロで型安全な出力を定義、スキーマ自動生成
  • エージェント - ツール自動実行と構造化出力生成(runAgent
  • 会話 - ConversationHistory でマルチターン会話のコンテキスト維持
  • マルチモーダル - 画像・音声・動画の入力(Vision)と生成
  • 3プロバイダー対応 - Claude、GPT、Gemini を統一 API で利用

クイックスタート

import LLMStructuredOutputs

@Structured("ユーザー情報")
struct UserInfo {
    @StructuredField("名前") var name: String
    @StructuredField("年齢", .minimum(0)) var age: Int
}

let client = AnthropicClient(apiKey: "sk-ant-...")
let user: UserInfo = try await client.generate(
    input: "山田太郎さんは35歳です",
    model: .sonnet
)
// user.name → "山田太郎", user.age → 35

インストール

// Package.swift
dependencies: [
    .package(url: "https://github.com/no-problem-dev/swift-llm-structured-outputs.git", from: "1.0.0")
]

.target(
    name: "YourApp",
    dependencies: [
        .product(name: "LLMStructuredOutputs", package: "swift-llm-structured-outputs"),
        // オプション
        .product(name: "LLMToolkits", package: "swift-llm-structured-outputs"),
        .product(name: "LLMMCP", package: "swift-llm-structured-outputs")
    ]
)

ドキュメント

API リファレンス(DocC)

モジュール 説明
LLMStructuredOutputs メインモジュール(構造化出力、エージェント、会話)
LLMClient LLMクライアント、プロンプト、マルチモーダル
LLMToolkits プリセット、組み込みツール、共通出力構造体
LLMMCP MCP統合、組み込みToolKit

ガイド

トピック 説明
はじめに インストールと基本的な使い方
プロンプト構築 Prompt DSL によるプロンプト構築
会話 マルチターン会話の実装
エージェントループ ツール自動実行と構造化出力生成
会話型エージェント マルチターン会話を保持したエージェント
マルチモーダル 画像・音声・動画の入力と生成
プロバイダー 各プロバイダーとモデルの詳細

機能マトリックス

テキスト機能

機能 Anthropic OpenAI Gemini
構造化出力
ストリーミング
ツールコール
エージェントループ

マルチモーダル入力(Vision)

機能 Anthropic OpenAI Gemini
画像解析
音声解析 -
動画解析 - -

マルチモーダル生成

機能 Anthropic OpenAI Gemini
画像生成 - ✓ DALL-E, GPT-Image ✓ Imagen 4
音声生成 - ✓ TTS-1, TTS-1-HD -
動画生成 - ✓ Sora 2 ✓ Veo 2.0-3.1

対応プロバイダー

プロバイダー クライアント モデル例
Anthropic AnthropicClient .sonnet, .opus, .haiku
OpenAI OpenAIClient .gpt4o, .gpt4oMini, .o1, .o3Mini
Google GeminiClient .flash3, .pro25, .flash25

要件

  • iOS 17.0+ / macOS 14.0+ / Linux
  • Swift 6.0+
  • Xcode 16+

サンプルアプリ

Examples/LLMStructuredOutputsExample に iOS サンプルアプリがあります。

ライセンス

MIT License - 詳細は LICENSE を参照


Made with ❤️ by NOPROBLEM

© 2026 Kyoichi Taniguchi. All rights reserved.