AI模型检索器

一个用于从各种提供商检索 AI 模型信息的实用工具。

概述

AIModelRetriever 包提供了一种简单且统一的方式来从不同的提供商(如 Anthropic、Google、Ollama 和 OpenAI(包括 OpenAI 兼容的 API))获取 AI 模型信息。

安装

您可以使用 Swift Package Manager 将 AIModelRetriever 作为依赖项添加到您的项目中,只需将其添加到 Package.swift 的 dependencies 值中即可。

dependencies: [
    .package(url: "https://github.com/kevinhermawan/swift-ai-model-retriever.git", .upToNextMajor(from: "1.0.0"))
],
targets: [
    .target(
        /// ...
        dependencies: [.product(name: "AIModelRetriever", package: "swift-ai-model-retriever")])
]

或者,在 Xcode 中

  1. 在 Xcode 中打开您的项目。
  2. 点击 File -> Swift Packages -> Add Package Dependency...
  3. 输入仓库 URL:https://github.com/kevinhermawan/swift-ai-model-retriever.git
  4. 选择您想要添加的版本。您可能想要添加最新版本。
  5. 点击 Add Package

文档

您可以在这里找到文档: https://kevinhermawan.github.io/swift-ai-model-retriever/documentation/aimodelretriever

用法

初始化

要开始使用 AIModelRetriever 包,首先导入它并创建 AIModelRetriever 结构体的实例

import AIModelRetriever

let modelRetriever = AIModelRetriever()

检索 Anthropic 模型

let models = modelRetriever.anthropic()

for model in models {
    print("Model ID: \(model.id), Name: \(model.name)")
}

注意

Anthropic 模型是硬编码的。它们不需要 API 调用来检索。

检索 Cohere 模型

let models = modelRetriever.cohere(apiKey: "your-cohere-api-key")

for model in models {
    print("Model ID: \(model.id), Name: \(model.name)")
}

检索 Google 模型

let models = modelRetriever.google()

for model in models {
    print("Model ID: \(model.id), Name: \(model.name)")
}

注意

Google 模型是硬编码的。它们不需要 API 调用来检索。

检索 Ollama 模型

do {
    let models = try await retriever.ollama()

    for model in models {
        print("Model ID: \(model.id), Name: \(model.name)")
    }
} catch {
    print("Error retrieving Ollama models: \(error)")
}

检索 OpenAI 模型

do {
    let models = try await retriever.openAI(apiKey: "your-openai-api-key")

    for model in models {
        print("Model ID: \(model.id), Name: \(model.name)")
    }
} catch {
    print("Error retrieving OpenAI models: \(error)")
}

从 OpenAI 兼容的 API 检索模型

openAI(apiKey:endpoint:headers:) 方法也可以通过指定自定义端点与 OpenAI 兼容的 API 一起使用

let customEndpoint = URL(string: "https://api.your-openai-compatible-service.com/v1/models")!

do {
    let models = try await modelRetriever.openAI(apiKey: "your-api-key", endpoint: customEndpoint)

    for model in models {
        print("Model ID: \(model.id), Name: \(model.name)")
    }
} catch {
    print("Error retrieving models from OpenAI-compatible API: \(error)")
}

错误处理

AIModelRetrieverError 通过 AIModelRetrieverError 枚举提供结构化的错误处理。此枚举包含多个代表您可能遇到的不同类型错误的情况

do {
    let models = try await modelRetriever.openAI(apiKey: "your-api-key")
} catch let error as AIModelRetrieverError {
    switch error {
    case .serverError(let statusCode, let message):
        // Handle server-side errors (e.g., invalid API key, rate limits)
        print("Server Error [\(statusCode)]: \(message)")
    case .networkError(let error):
        // Handle network-related errors (e.g., no internet connection)
        print("Network Error: \(error.localizedDescription)")
    case .decodingError(let error):
        // Handle errors that occur when the response cannot be decoded
        print("Decoding Error: \(error)")
    case .cancelled:
        // Handle requests that are cancelled
        print("Request was cancelled")
    }
} catch {
    // Handle any other errors
    print("An unexpected error occurred: \(error)")
}

支持

如果您觉得 AIModelRetriever 有用并希望支持其开发,请考虑捐款。您的贡献有助于维护项目和开发新功能。

非常感谢您的支持! ❤️

贡献

欢迎贡献!如果您有任何建议或改进,请打开一个 issue 或提交一个 pull request。

许可证

此仓库在 Apache License 2.0 许可下可用。