Files
cheetah/OpenAISwift/Models/OpenAIModelType.swift
2023-03-26 18:42:42 -04:00

121 lines
4.7 KiB
Swift

//
// OpenAIModelType.swift
//
//
// Created by Yash Shah on 06/12/2022.
//
import Foundation
/// The type of model used to generate the output
public enum OpenAIModelType {
/// ``GPT3`` Family of Models
case gpt3(GPT3)
/// ``Codex`` Family of Models
case codex(Codex)
/// ``Feature`` Family of Models
case feature(Feature)
/// ``Chat`` Family of Models
case chat(Chat)
/// Other Custom Models
case other(String)
public var modelName: String {
switch self {
case .gpt3(let model): return model.rawValue
case .codex(let model): return model.rawValue
case .feature(let model): return model.rawValue
case .chat(let model): return model.rawValue
case .other(let modelName): return modelName
}
}
/// A set of models that can understand and generate natural language
///
/// [GPT-3 Models OpenAI API Docs](https://beta.openai.com/docs/models/gpt-3)
public enum GPT3: String {
/// Most capable GPT-3 model. Can do any task the other models can do, often with higher quality, longer output and better instruction-following. Also supports inserting completions within text.
///
/// > Model Name: text-davinci-003
case davinci = "text-davinci-003"
/// Very capable, but faster and lower cost than GPT3 ``davinci``.
///
/// > Model Name: text-curie-001
case curie = "text-curie-001"
/// Capable of straightforward tasks, very fast, and lower cost.
///
/// > Model Name: text-babbage-001
case babbage = "text-babbage-001"
/// Capable of very simple tasks, usually the fastest model in the GPT-3 series, and lowest cost.
///
/// > Model Name: text-ada-001
case ada = "text-ada-001"
}
/// A set of models that can understand and generate code, including translating natural language to code
///
/// [Codex Models OpenAI API Docs](https://beta.openai.com/docs/models/codex)
///
/// > Limited Beta
public enum Codex: String {
/// Most capable Codex model. Particularly good at translating natural language to code. In addition to completing code, also supports inserting completions within code.
///
/// > Model Name: code-davinci-002
case davinci = "code-davinci-002"
/// Almost as capable as ``davinci`` Codex, but slightly faster. This speed advantage may make it preferable for real-time applications.
///
/// > Model Name: code-cushman-001
case cushman = "code-cushman-001"
}
/// A set of models that are feature specific.
///
/// For example using the Edits endpoint requires a specific data model
///
/// You can read the [API Docs](https://beta.openai.com/docs/guides/completion/editing-text)
public enum Feature: String {
/// > Model Name: text-davinci-edit-001
case davinci = "text-davinci-edit-001"
}
/// A set of models for the new chat completions
/// You can read the [API Docs](https://platform.openai.com/docs/api-reference/chat/create)
public enum Chat: String {
/// Most capable GPT-3.5 model and optimized for chat at 1/10th the cost of text-davinci-003. Will be updated with our latest model iteration.
/// > Model Name: gpt-3.5-turbo
case chatgpt = "gpt-3.5-turbo"
/// Snapshot of gpt-3.5-turbo from March 1st 2023. Unlike gpt-3.5-turbo, this model will not receive updates, and will only be supported for a three month period ending on June 1st 2023.
/// > Model Name: gpt-3.5-turbo-0301
case chatgpt0301 = "gpt-3.5-turbo-0301"
/// More capable than any GPT-3.5 model, able to do more complex tasks, and optimized for chat. Will be updated with our latest model iteration.
/// > Model Name: gpt-4
case gpt4 = "gpt-4"
/// Snapshot of gpt-4 from March 14th 2023. Unlike gpt-4, this model will not receive updates, and will only be supported for a three month period ending on June 14th 2023.
/// > Model Name: gpt-4-0314
case gpt4_0314 = "gpt-4-0314"
/// Same capabilities as the base gpt-4 mode but with 4x the context length. Will be updated with our latest model iteration.
/// > Model Name: gpt-4-32k
case gpt4_32k = "gpt-4-32k"
/// Snapshot of gpt-4-32 from March 14th 2023. Unlike gpt-4-32k, this model will not receive updates, and will only be supported for a three month period ending on June 14th 2023.
/// > Model Name: gpt-4-32k-0314
case gpt4_32k_0314 = "gpt-4-32k-0314"
}
}