namespace AIStudio.Provider; /// /// The kind of an AI model, i.e. what the model is made for. /// /// /// This describes what kind of model we are dealing with. It answers a different question than the /// Capability enum: capabilities describe what a chat model is able to do, for example whether it /// accepts images or performs reasoning. Note that Capability.EMBEDDING marks a chat model which is /// able to create embeddings as well, whereas ModelKind.EMBEDDING marks a model whose only purpose /// is creating embeddings. /// public enum ModelKind { /// /// The model is used for chat completions. /// /// /// This is the fallback: we report a model as a chat model whenever we do not recognize any /// other kind. Providers keep adding models we have never heard of, and a model we fail to /// recognize must stay visible to the user instead of silently disappearing from their list. /// CHAT, /// /// The model continues a text instead of answering in a conversation. /// /// /// These are the models from the era before chat completions, such as OpenAI's text-davinci-003. /// Some providers still offer them, but they only work through the completions endpoint. Asking /// them for a chat completion fails, so they must not show up as chat models. /// TEXT_COMPLETION, /// /// The model maps text or images into a vector space. /// EMBEDDING, /// /// The model scores documents against a query to reorder search results. /// RERANKING, /// /// The model generates or edits images. /// IMAGE_GENERATION, /// /// The model transcribes audio into text. /// TRANSCRIPTION, /// /// The model synthesizes speech from text. /// SPEECH_SYNTHESIS, /// /// The model extracts text from images or scanned documents. /// OCR, /// /// The model classifies content for policy violations. /// MODERATION, }