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

Aberta
#2,034 0 comentários 0 reações 1 responsável Ver no GitHub

Mantenedores costumam responder em até 1 dia

@waldekmastykarz já está trabalhando nisso.

Desde 31/10/2026.

  • #2035 de @waldekmastykarz — aberto

Avaliação

Esta issue ainda não foi avaliada.

Descrição

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.

Linguagem predominante
C#
Estrelas
838
Forks
90
Merge médio
2d 11h
PRs com merge (30d)
59

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de dotnet/dev-proxy

Todas as issues de dotnet/dev-proxy

Issues semelhantes

Mais issues de C#

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.