use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ApiEndpoint {
#[serde(rename = "/v1/chat/completions")]
SlashV1SlashChatSlashCompletions,
#[serde(rename = "/v1/embeddings")]
SlashV1SlashEmbeddings,
#[serde(rename = "/v1/fim/completions")]
SlashV1SlashFimSlashCompletions,
#[serde(rename = "/v1/moderations")]
SlashV1SlashModerations,
#[serde(rename = "/v1/chat/moderations")]
SlashV1SlashChatSlashModerations,
#[serde(rename = "/v1/ocr")]
SlashV1SlashOcr,
#[serde(rename = "/v1/classifications")]
SlashV1SlashClassifications,
#[serde(rename = "/v1/chat/classifications")]
SlashV1SlashChatSlashClassifications,
#[serde(rename = "/v1/conversations")]
SlashV1SlashConversations,
#[serde(rename = "/v1/audio/transcriptions")]
SlashV1SlashAudioSlashTranscriptions,
}
impl std::fmt::Display for ApiEndpoint {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::SlashV1SlashChatSlashCompletions => write!(f, "/v1/chat/completions"),
Self::SlashV1SlashEmbeddings => write!(f, "/v1/embeddings"),
Self::SlashV1SlashFimSlashCompletions => write!(f, "/v1/fim/completions"),
Self::SlashV1SlashModerations => write!(f, "/v1/moderations"),
Self::SlashV1SlashChatSlashModerations => write!(f, "/v1/chat/moderations"),
Self::SlashV1SlashOcr => write!(f, "/v1/ocr"),
Self::SlashV1SlashClassifications => write!(f, "/v1/classifications"),
Self::SlashV1SlashChatSlashClassifications => write!(f, "/v1/chat/classifications"),
Self::SlashV1SlashConversations => write!(f, "/v1/conversations"),
Self::SlashV1SlashAudioSlashTranscriptions => write!(f, "/v1/audio/transcriptions"),
}
}
}
impl Default for ApiEndpoint {
fn default() -> ApiEndpoint {
Self::SlashV1SlashChatSlashCompletions
}
}