Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GitHub Modeller ger åtkomst till olika AI-modeller, inklusive OpenAIGPT-modeller, DeepSeek, Microsofts Phi-modeller och andra ledande AI-modeller, som alla är tillgängliga via GitHubinfrastrukturen. Med AspireGitHub modellintegreringen kan du ansluta till GitHub modeller från dina .NET program för prototyper och produktionsscenarier.
Integrering av värdtjänster
Modellerna AspireGitHub som är värd för integrationsmodellerna GitHub modellerar resurser som GitHubModelResource. Om du vill komma åt dessa typer och API:er för att uttrycka dem i ditt AppHost-projekt installerar du 📦Aspire. Hosting.GitHub. NuGet-paket för modeller :
dotnet add package Aspire.Hosting.GitHub.Models
Mer information finns i dotnet lägg till paket eller Hantera paketberoenden i .NET applikationer.
Lägga till en GitHub modellresurs
Om du vill lägga till en GitHubModelResource i ditt AppHost-projekt anropar du AddGitHubModel metoden:
var builder = DistributedApplication.CreateBuilder(args);
var chat = builder.AddGitHubModel("chat", "openai/gpt-4o-mini");
builder.AddProject<Projects.ExampleProject>()
       .WithReference(chat);
// After adding all resources, run the app...
Föregående kod lägger till en GitHub modellresurs med namnet chat med hjälp av openai/gpt-4o-mini modellen. Metoden WithReference skickar anslutningsinformationen till ExampleProject-projektet.
Ange en organisation
För organisationsspecifika begäranden kan du ange en organisationsparameter:
var builder = DistributedApplication.CreateBuilder(args);
var organization = builder.AddParameter("github-org");
var chat = builder.AddGitHubModel("chat", "openai/gpt-4o-mini", organization);
builder.AddProject<Projects.ExampleProject>()
       .WithReference(chat);
// After adding all resources, run the app...
När en organisation har angetts måste token tillskrivas organisationen i GitHub.
Konfigurera API-nyckelautentisering
Modellintegrering GitHub stöder flera sätt att konfigurera autentisering:
Standard-API-nyckelparameter
Som standard skapar integreringen en parameter med namnet {resource_name}-gh-apikey som automatiskt återgår till GITHUB_TOKEN miljövariabeln:
var chat = builder.AddGitHubModel("chat", "openai/gpt-4o-mini");
Sedan i användarhemligheter:
{
  "Parameters": {
    "chat-gh-apikey": "YOUR_GITHUB_TOKEN_HERE"
  }
}
Anpassad API-nyckelparameter
Du kan också ange en anpassad parameter för API-nyckeln:
var apiKey = builder.AddParameter("my-api-key", secret: true);
var chat = builder.AddGitHubModel("chat", "openai/gpt-4o-mini")
                  .WithApiKey(apiKey);
Sedan i användarhemligheter:
{
  "Parameters": {
    "my-api-key": "YOUR_GITHUB_TOKEN_HERE"
  }
}
Hälsokontroller
Du kan lägga till hälsokontroller för att verifiera tillgängligheten för modellers GitHub slutpunkt och API-nyckelns giltighet:
var chat = builder.AddGitHubModel("chat", "openai/gpt-4o-mini")
                  .WithHealthCheck();
Important
Eftersom hälsokontroller ingår i hastighetsgränsen för API:et GitHub Modeller använder du den här hälsokontrollen sparsamt, till exempel vid felsökning av anslutningsproblem. Hälsokontrollen körs bara en gång per programinstans för att minimera API-användningen.
Tillgängliga modeller
GitHub Modeller stöder olika AI-modeller. Några populära alternativ är:
- openai/gpt-4o-mini
- openai/gpt-4o
- deepseek/DeepSeek-V3-0324
- microsoft/Phi-4-mini-instruct
I dokumentationenGitHub för modeller finns den mest up-to-date-listan över tillgängliga modeller.
Client integration
För att komma igång med AspireGitHub klientintegrering av modeller kan du använda antingen Azure AI-slutsatsdragningsklienten OpenAI eller klienten, beroende på dina behov och modellkompatibilitet.
Använda Azure AI-slutsatsdragningsklient
Installera 📦Aspire.Azure.AI.Inference NuGet-paketet i klientprojektet:
dotnet add package Aspire.Azure.AI.Inference
Lägga till en ChatCompletionsClient
I filen Program.cs för ditt klientkrävande projekt använder du AddAzureChatCompletionsClient metoden för att registrera en ChatCompletionsClient för beroendeinjektion:
builder.AddAzureChatCompletionsClient("chat");
Du kan sedan hämta instansen ChatCompletionsClient med hjälp av beroendeinjektion.
public class ExampleService(ChatCompletionsClient client)
{
    public async Task<string> GetResponseAsync(string prompt)
    {
        var response = await client.GetChatCompletionsAsync(
            "openai/gpt-4o-mini",
            new[]
            {
                new ChatMessage(ChatRole.User, prompt)
            });
        
        return response.Value.Choices[0].Message.Content;
    }
}
Lägg till ChatCompletionsClient med registrerad IChatClient
Om du använder Microsoft.Extensions.AI abstraktioner kan du registrera en IChatClient:
builder.AddAzureChatCompletionsClient("chat")
       .AddChatClient();
Använd den sedan i dina tjänster:
public class StoryService(IChatClient chatClient)
{
    public async Task<string> GenerateStoryAsync(string prompt)
    {
        var response = await chatClient.GetResponseAsync(prompt);
        return response.Text;
    }
}
Använda OpenAI klienten
För modeller som är kompatibla med API:et OpenAI (till exempel openai/gpt-4o-mini) kan du använda OpenAI klienten. 
              
              📦
              AspireInstallera .OpenAI NuGet-paket:
dotnet add package Aspire.OpenAI
Lägga till en OpenAI klient
builder.AddOpenAIClient("chat");
Du kan sedan använda OpenAI klienten:
public class ChatService(OpenAIClient client)
{
    public async Task<string> GetChatResponseAsync(string prompt)
    {
        var chatClient = client.GetChatClient("openai/gpt-4o-mini");
        var response = await chatClient.CompleteChatAsync(
            new[]
            {
                new UserChatMessage(prompt)
            });
        
        return response.Value.Content[0].Text;
    }
}
Lägga till OpenAI klient med registrerad IChatClient
builder.AddOpenAIClient("chat")
       .AddChatClient();
Configuration
Modellintegreringen GitHub stöder konfiguration via användarhemligheter, miljövariabler eller appinställningar. Integreringen använder automatiskt miljövariabeln om den GITHUB_TOKEN är tillgänglig, eller så kan du ange en anpassad API-nyckelparameter.
Authentication
Modellintegrering GitHub kräver en GitHub personlig åtkomsttoken med models: read behörighet. Token kan tillhandahållas på flera sätt:
Miljövariabler i Codespaces och GitHub Actions
När du kör en app i GitHub Codespaces eller GitHub Actions GITHUB_TOKEN är miljövariabeln automatiskt tillgänglig och kan användas utan ytterligare konfiguration. Den här token har de behörigheter som krävs för att komma åt GitHub modeller för lagringsplatskontexten.
// No additional configuration needed in Codespaces/GitHub Actions
var chat = builder.AddGitHubModel("chat", "openai/gpt-4o-mini");
Personliga åtkomsttoken för lokal utveckling
För lokal utveckling måste du skapa en detaljerad personlig åtkomsttoken med omfånget models: read och konfigurera den i användarhemligheter:
{
  "Parameters": {
    "chat-gh-apikey": "github_pat_YOUR_TOKEN_HERE"
  }
}
Format för anslutningssträng
Anslutningssträngen följer det här formatet:
Endpoint=https://models.github.ai/inference;Key={api_key};Model={model_name};DeploymentId={model_name}
För organisationsspecifika begäranden:
Endpoint=https://models.github.ai/orgs/{organization}/inference;Key={api_key};Model={model_name};DeploymentId={model_name}
Hastighetsbegränsningar och kostnader
Important
Varje modell har hastighetsbegränsningar som varierar beroende på modell- och användningsnivå. Vissa modeller inkluderar kostnader om du överskrider gränserna för den kostnadsfria nivån. I dokumentationenGitHub för modeller finns aktuell prisgräns och prisinformation.
Tip
Använd hälsokontroller sparsamt för att undvika att använda din hastighetsgräns. Integreringen cachelagrar hälsokontrollresultat för att minimera API-anrop.
Exempelprogram
Lagringsplatsen dotnet/aspire innehåller ett exempelprogram som visar modellintegreringen GitHub . Du hittar exemplet på lagringsplatsenAspireGitHub.
Observerbarhet och telemetri
Aspire integreringar konfigurerar automatiskt konfigurationer för loggning, spårning och mått, som ibland kallas grundpelarna för observerbarhet. Mer information om integreringsobservabilitet och telemetri finns i Aspire översikten över integreringar. Beroende på säkerhetskopieringstjänsten kanske vissa integreringar bara stöder vissa av dessa funktioner. Vissa integreringar stöder till exempel loggning och spårning, men inte mått. Telemetrifunktioner kan också inaktiveras med hjälp av de tekniker som visas i avsnittet Konfiguration .
Logging
Modellintegrering GitHub använder standardkategorier för HTTP-klientloggning:
- System.Net.Http.HttpClient
- Microsoft.Extensions.Http
Tracing
HTTP-begäranden till modell-API:et GitHub spåras automatiskt när du använder Azure AI-slutsatsdragningen eller OpenAI klienterna.