一个用于从各种提供商检索 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 中
File
-> Swift Packages
-> Add Package Dependency...
https://github.com/kevinhermawan/swift-ai-model-retriever.git
Add Package
。您可以在这里找到文档: https://kevinhermawan.github.io/swift-ai-model-retriever/documentation/aimodelretriever
要开始使用 AIModelRetriever
包,首先导入它并创建 AIModelRetriever
结构体的实例
import AIModelRetriever
let modelRetriever = AIModelRetriever()
let models = modelRetriever.anthropic()
for model in models {
print("Model ID: \(model.id), Name: \(model.name)")
}
注意
Anthropic 模型是硬编码的。它们不需要 API 调用来检索。
let models = modelRetriever.cohere(apiKey: "your-cohere-api-key")
for model in models {
print("Model ID: \(model.id), Name: \(model.name)")
}
let models = modelRetriever.google()
for model in models {
print("Model ID: \(model.id), Name: \(model.name)")
}
注意
Google 模型是硬编码的。它们不需要 API 调用来检索。
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)")
}
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(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 许可下可用。