Back to OSS
Swift Package LLM / AI

swift-llm-cloud

Anthropic / OpenAI / Gemini を束ねるマルチプロバイダー LLM クラウドクライアント

Swift
llmanthropicopenaigemini

English | 日本語

LLMCloud

マルチプロバイダー LLM クラウドクライアント Swift パッケージ

Swift Platforms License

特徴

  • マルチプロバイダー - 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+

依存関係

ライセンス

MIT License - 詳細は LICENSE を参照

リンク

© 2026 Kyoichi Taniguchi. All rights reserved.