Support bring-your-own LLM (hosted OpenAI-compatible / Azure OpenAI) for language model integration

Offen
#2,034 0 Kommentare 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@waldekmastykarz arbeitet bereits daran.

Seit 31.10.2026.

  • #2035 von @waldekmastykarz — offen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Beschreibung

work in progress

Summary

Dev Proxy's language model integration is currently designed for local SLMs (default: Ollama llama3.2 at localhost:11434). As inference prices drop, using hosted LLMs is increasingly viable and yields better results (e.g. operation IDs/descriptions in OpenApiSpecGeneratorPlugin/TypeSpecGeneratorPlugin, mock responses in OpenAIMockResponsePlugin).

Current limitations

  • OpenAILanguageModelClient sends no Authorization/api-key header, so hosted endpoints (OpenAI, Azure OpenAI, GitHub Models, OpenRouter, Foundry) can't be used.
  • Only Ollama and OpenAI clients; no Azure OpenAI support (api-key header, api-version, deployment-based URLs).
  • IsEnabledCoreAsync sends a real "Are you there?" completion on startup, which costs money on paid endpoints.
  • languageModel schema describes the feature as "local language model".

Proposed changes

  1. Add apiKey to languageModel config, supporting @env:VAR_NAME so secrets stay out of config files; send as Bearer token (OpenAI-compatible) or api-key (Azure).
  2. Add AzureOpenAI client (or evaluate moving to Microsoft.Extensions.AI IChatClient).
  3. Replace the startup availability probe with a non-billable check (e.g. GET /models) where possible.
  4. Update rc.schema.json (current version folder) and docs.
  5. Never log API keys.

Follow-ups (out of scope here): per-plugin model overrides, redaction/opt-in for sending captured traffic to cloud models.

Vorherrschende Sprache
C#
Sterne
841
Forks
90
Ø Merge
2 T. 11 Std.
Gemergte PRs (30 T.)
59

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus dotnet/dev-proxy

Alle Issues in dotnet/dev-proxy

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.