Add OpenAI/LiteLLM provider support with settings UI

- Add openai/ provider module with translator, client, convert, request/response translators
- Add shared provider/ types (ConversationMessage, MessageRole, ProviderConfig enum)
- Wire OpenAI-compatible provider dispatch alongside Bedrock in response_stream.rs
- Add ai.openai.* settings (enabled, base_url, api_key, model, models)
- Add OpenAI/LiteLLM settings page with model fetch, picker, and config UI
- Extend model menu items and llms.rs to surface LiteLLM models
- Update WARP.md with OpenAI provider architecture docs
This commit is contained in:
Ryan Ward
2026-06-17 14:14:40 -05:00
parent 59cfd0e2f5
commit 5ea378a38d
32 changed files with 2442 additions and 137 deletions
@@ -81,6 +81,7 @@ fn make_item_fields<A: Action + Clone>(
};
let is_using_api_key = is_using_api_key_for_provider(&llm.provider, app);
let is_bedrock = llm.provider == LLMProvider::Bedrock;
let is_litellm = llm.provider == LLMProvider::LiteLLM;
let mut item = if let Some(position_id_fn) = position_id_fn {
let position_id = position_id_fn(&llm.id);
@@ -94,6 +95,10 @@ fn make_item_fields<A: Action + Clone>(
Icon::BedrockLogo
.to_galaxyui_icon(appearance.theme().foreground())
.finish()
} else if is_litellm {
Icon::OpenAILogo
.to_galaxyui_icon(appearance.theme().foreground())
.finish()
} else if is_using_api_key {
Icon::Key
.to_galaxyui_icon(appearance.theme().foreground())