Back to OSS
Swift Package LLM / AI
swift-llm-cloud
Anthropic / OpenAI / Gemini を束ねるマルチプロバイダー LLM クラウドクライアント
Swift
llmanthropicopenaigemini
English | 日本語
LLMCloud
マルチプロバイダー LLM クラウドクライアント Swift パッケージ
特徴
- マルチプロバイダー - Anthropic Claude、OpenAI GPT、Google Gemini を統一 API で利用
- 統一インターフェース - プロバイダー間で共通のプロトコルベース設計
- ストリーミング - 全プロバイダーで AsyncThrowingStream によるリアルタイム出力
- Function Calling - 全プロバイダーでツール呼び出しをサポート
- 構造化出力 - JSON Schema ベースの型安全なレスポンス
インストール
// Package.swift
dependencies: [
.package(url: "https://github.com/no-problem-dev/swift-llm-cloud.git", .upToNextMajor(from: "1.0.0"))
]
モジュール構成
用途に応じて必要なモジュールのみをインポートできます:
| モジュール | 用途 |
|---|---|
LLMCloud |
アンブレラ(全プロバイダー再エクスポート) |
LLMCloudClient |
プロバイダー共通インフラストラクチャ |
LLMCloudAnthropic |
Anthropic Claude プロバイダー |
LLMCloudOpenAI |
OpenAI GPT プロバイダー |
LLMCloudGemini |
Google Gemini プロバイダー |
クイックスタート
Anthropic Claude
import LLMCloudAnthropic
let client = AnthropicClient(apiKey: "your-api-key")
@Structured("応答")
struct Reply {
@StructuredField("回答")
var answer: String
}
let result: Reply = try await client.generate(
input: "Swift 6 の並行処理について教えて",
model: .sonnet
)
print(result.answer)
OpenAI GPT
import LLMCloudOpenAI
let client = OpenAIClient(apiKey: "your-api-key")
@Structured("応答")
struct Reply {
@StructuredField("回答")
var answer: String
}
let result: Reply = try await client.generate(
input: "関数型プログラミングの利点は?",
model: .gpt4o
)
print(result.answer)
Google Gemini
import LLMCloudGemini
let client = GeminiClient(apiKey: "your-api-key")
@Structured("応答")
struct Reply {
@StructuredField("回答")
var answer: String
}
let result: Reply = try await client.generate(
input: "SwiftUI のベストプラクティスを教えて",
model: .flash25
)
print(result.answer)
ドキュメント
詳細なガイドと API リファレンスは DocC ドキュメントを参照してください。
| ガイド | 内容 |
|---|---|
| API Reference | 全パブリック API |
要件
- iOS 17.0+ / macOS 14.0+
- Swift 6.2+
- Xcode 16.0+
依存関係
- swift-llm-client (>= 3.9.0) - LLM クライアント抽象化
ライセンス
MIT License - 詳細は LICENSE を参照