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 | 日本語
概要
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 |
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