Download codex-rs/app-server/src/models.rs from SaylorTwift/codex: direct link, hf CLI and curl.
- Browser
- Download file 3.03 kB
-
https://huggingface.co/SaylorTwift/codex/resolve/main/codex-rs/app-server/src/models.rs
- Command line
-
hf download hf://SaylorTwift/codex/codex-rs/app-server/src/models.rs
-
curl -L -o models.rs https://huggingface.co/SaylorTwift/codex/resolve/main/codex-rs/app-server/src/models.rs
3.03 kB
| use std::sync::Arc; | |
| use codex_app_server_protocol::Model; | |
| use codex_app_server_protocol::ModelServiceTier; | |
| use codex_app_server_protocol::ModelUpgradeInfo; | |
| use codex_app_server_protocol::ReasoningEffortOption; | |
| use codex_core::ThreadManager; | |
| use codex_http_client::HttpClientFactory; | |
| use codex_models_manager::manager::RefreshStrategy; | |
| use codex_protocol::openai_models::ModelPreset; | |
| use codex_protocol::openai_models::ReasoningEffortPreset; | |
| pub async fn supported_models( | |
| thread_manager: Arc<ThreadManager>, | |
| include_hidden: bool, | |
| http_client_factory: HttpClientFactory, | |
| ) -> Vec<Model> { | |
| thread_manager | |
| .list_models(RefreshStrategy::OnlineIfUncached, http_client_factory) | |
| .await | |
| .into_iter() | |
| .filter(|preset| include_hidden || preset.show_in_picker) | |
| .map(model_from_preset) | |
| .collect() | |
| } | |
| fn model_from_preset(preset: ModelPreset) -> Model { | |
| Model { | |
| id: preset.id.to_string(), | |
| model: preset.model.to_string(), | |
| upgrade: preset.upgrade.as_ref().map(|upgrade| upgrade.id.clone()), | |
| upgrade_info: preset.upgrade.as_ref().map(|upgrade| ModelUpgradeInfo { | |
| model: upgrade.id.clone(), | |
| upgrade_copy: upgrade.upgrade_copy.clone(), | |
| model_link: upgrade.model_link.clone(), | |
| migration_markdown: upgrade.migration_markdown.clone(), | |
| retirement_at: upgrade | |
| .retirement_at | |
| .as_ref() | |
| .map(chrono::DateTime::timestamp), | |
| }), | |
| availability_nux: preset.availability_nux.map(Into::into), | |
| display_name: preset.display_name.to_string(), | |
| description: preset.description.to_string(), | |
| model_specialty: preset.model_specialty, | |
| hidden: !preset.show_in_picker, | |
| supported_reasoning_efforts: reasoning_efforts_from_preset( | |
| preset.supported_reasoning_efforts, | |
| ), | |
| default_reasoning_effort: preset.default_reasoning_effort, | |
| input_modalities: preset.input_modalities, | |
| supports_personality: preset.supports_personality, | |
| multi_agent_version: preset.multi_agent_version.map(Into::into), | |
| additional_speed_tiers: preset.additional_speed_tiers, | |
| service_tiers: preset | |
| .service_tiers | |
| .into_iter() | |
| .map(|service_tier| ModelServiceTier { | |
| id: service_tier.id, | |
| name: service_tier.name, | |
| description: service_tier.description, | |
| }) | |
| .collect(), | |
| default_service_tier: preset.default_service_tier, | |
| available_access_programs: preset.available_access_programs.map(Into::into), | |
| is_default: preset.is_default, | |
| } | |
| } | |
| fn reasoning_efforts_from_preset( | |
| efforts: Vec<ReasoningEffortPreset>, | |
| ) -> Vec<ReasoningEffortOption> { | |
| efforts | |
| .into_iter() | |
| .map(|preset| ReasoningEffortOption { | |
| reasoning_effort: preset.effort, | |
| description: preset.description, | |
| }) | |
| .collect() | |
| } | |