@@ -96,3 +96,38 @@ Unlike most other tryAGI SDKs, this repo has significant **hand-written code** a
9696- The NuGet package name is ` tryAGI.OpenAI ` (not just ` OpenAI ` ) to avoid conflicts with the official OpenAI package
9797- The main client class is ` OpenAiApi ` (for backward compatibility) with ` OpenAiClient ` as the generated variant
9898- Custom providers are accessed via static factory methods on ` CustomProviders ` class (e.g., ` CustomProviders.Azure(...) ` )
99+
100+ ## CustomProviders — Environment Variables for Tests
101+
102+ Each custom provider requires specific environment variables to run its integration tests. Tests skip (not fail) if the key is unset.
103+
104+ | Provider | Env Var(s) | Default Model | Capabilities |
105+ | ----------| -----------| ---------------| --------------|
106+ | ** OpenAI** | ` OPENAI_API_KEY ` | ` gpt-4o-mini ` | Chat, streaming, tools, embeddings, images, audio |
107+ | ** Azure** | ` AZURE_OPENAI_API_KEY ` , ` AZURE_OPENAI_ENDPOINT ` , ` AZURE_OPENAI_MODEL ` (optional), ` AZURE_OPENAI_EMBEDDING_MODEL ` (optional) | ` gpt-4o-mini ` | Chat, streaming, tools, embeddings |
108+ | ** DeepInfra** | ` DEEPINFRA_API_KEY ` | ` meta-llama/Meta-Llama-3.1-8B-Instruct ` | Chat, streaming, tools, embeddings (` BAAI/bge-en-icl ` ) |
109+ | ** Groq** | ` GROQ_API_KEY ` , ` GROQ_CHAT_MODEL ` (optional) | ` llama-3.3-70b-versatile ` | Chat, streaming, tools |
110+ | ** OpenRouter** | ` OPENROUTER_API_KEY ` | ` meta-llama/llama-3.1-8b-instruct:free ` | Chat, streaming, tools |
111+ | ** Fireworks** | ` FIREWORKS_API_KEY ` | ` accounts/fireworks/models/llama-v3p1-8b-instruct ` | Chat, streaming, tools, embeddings (` nomic-ai/nomic-embed-text-v1.5 ` ) |
112+ | ** Together** | ` TOGETHER_API_KEY ` , ` TOGETHER_CHAT_MODEL ` (optional) | ` meta-llama/Llama-3.3-70B-Instruct-Turbo ` | Chat, streaming, tools, embeddings (` BAAI/bge-large-en-v1.5 ` ) |
113+ | ** DeepSeek** | ` DEEPSEEK_API_KEY ` | ` deepseek-chat ` | Chat, streaming, tools |
114+ | ** XAi** | ` XAI_API_KEY ` , ` XAI_CHAT_MODEL ` (optional) | ` grok-3-mini ` | Chat, streaming, tools |
115+ | ** Perplexity** | ` PERPLEXITY_API_KEY ` | ` llama-3.1-sonar-small-128k-online ` | Chat, streaming (no tools) |
116+ | ** SambaNova** | ` SAMBANOVA_API_KEY ` | ` Meta-Llama-3.1-8B-Instruct ` | Chat, streaming, tools |
117+ | ** Mistral** | ` MISTRAL_API_KEY ` | ` mistral-large-latest ` | Chat, streaming, tools, embeddings (` mistral-embed ` ) |
118+ | ** Codestral** | ` CODESTRAL_API_KEY ` | ` codestral-latest ` | Chat, streaming |
119+ | ** Cerebras** | ` CEREBRAS_API_KEY ` | ` llama3.1-70b ` | Chat, streaming, tools |
120+ | ** Cohere** | ` COHERE_API_KEY ` | ` command-r-08-2024 ` | Chat, streaming, tools, embeddings (` embed-english-v3.0 ` ) |
121+ | ** Nebius** | ` NEBIUS_API_KEY ` | ` meta-llama/Meta-Llama-3.1-8B-Instruct ` | Chat, streaming, tools, embeddings (` BAAI/bge-en-icl ` ) |
122+ | ** GitHub Models** | ` TOKEN_FOR_GITHUB_MODELS ` | ` gpt-4o ` | Chat, streaming, tools, embeddings (` text-embedding-3-small ` ) |
123+ | ** Hyperbolic** | ` HYPERBOLIC_API_KEY ` , ` HYPERBOLIC_CHAT_MODEL ` (optional) | ` meta-llama/Llama-3.3-70B-Instruct ` | Chat, streaming |
124+ | ** Ollama** | * (local, no key)* | ` llama3.2 ` | Chat, streaming (local only) |
125+ | ** LM Studio** | * (local, no key)* | ` lmstudio-community/Llama-3.2-3B-Instruct-GGUF ` | Chat, streaming (local only) |
126+
127+ ### MEAI Namespace Conflict
128+
129+ The generated SDK has its own ` IChatClient ` interface that shadows ` Microsoft.Extensions.AI.IChatClient ` . In tests, use the alias pattern:
130+ ``` csharp
131+ using Meai = Microsoft .Extensions .AI ;
132+ Meai .IChatClient chatClient = client ;
133+ ```
0 commit comments