From 8dba46becfbcc4669867db4487aa9b91c51e4afa Mon Sep 17 00:00:00 2001 From: sigoden Date: Tue, 30 Apr 2024 12:52:58 +0800 Subject: feat: openai-compatible platforms share the same client (#469) --- src/client/mod.rs | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) (limited to 'src/client/mod.rs') diff --git a/src/client/mod.rs b/src/client/mod.rs index a8519b3..4ea5533 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -14,12 +14,15 @@ pub use sse_handler::*; register_client!( (openai, "openai", OpenAIConfig, OpenAIClient), + ( + openai_compatible, + "openai-compatible", + OpenAICompatibleConfig, + OpenAICompatibleClient + ), (gemini, "gemini", GeminiConfig, GeminiClient), (claude, "claude", ClaudeConfig, ClaudeClient), - (mistral, "mistral", MistralConfig, MistralClient), (cohere, "cohere", CohereConfig, CohereClient), - (perplexity, "perplexity", PerplexityConfig, PerplexityClient), - (groq, "groq", GroqConfig, GroqClient), (ollama, "ollama", OllamaConfig, OllamaClient), ( azure_openai, @@ -33,30 +36,17 @@ register_client!( (replicate, "replicate", ReplicateConfig, ReplicateClient), (ernie, "ernie", ErnieConfig, ErnieClient), (qianwen, "qianwen", QianwenConfig, QianwenClient), - (moonshot, "moonshot", MoonshotConfig, MoonshotClient), - ( - openai_compatible, - "openai-compatible", - OpenAICompatibleConfig, - OpenAICompatibleClient - ), ); -pub const KNOWN_OPENAI_COMPATIBLE_PLATFORMS: [(&str, &str); 5] = [ +pub const OPENAI_COMPATIBLE_PLATFORMS: [(&str, &str); 10] = [ ("anyscale", "https://api.endpoints.anyscale.com/v1"), ("deepinfra", "https://api.deepinfra.com/v1/openai"), ("fireworks", "https://api.fireworks.ai/inference/v1"), + ("groq", "https://api.groq.com/openai/v1"), + ("mistral", "https://api.mistral.ai/v1"), + ("moonshot", "https://api.moonshot.cn/v1"), + ("openrouter", "https://openrouter.ai/api/v1"), ("octoai", "https://text.octoai.run/v1"), + ("perplexity", "https://api.perplexity.ai"), ("together", "https://api.together.xyz/v1"), ]; - -pub const KNOWN_OPENAI_COMPATIBLE_PROMPTS: [PromptType<'static>; 3] = [ - ("api_key", "API Key:", false, PromptKind::String), - ("models[].name", "Model Name:", true, PromptKind::String), - ( - "models[].max_input_tokens", - "Max Input Tokens:", - false, - PromptKind::Integer, - ), -]; -- cgit v1.2.3