GitHub AI 모델을 .NET 애플리케이션에 통합하기: Semantic Kernel 사용하기
AI의 세계는 빠르게 발전하고 있으며, GitHub는 GPT, Llama, Phi와 같은 인기 있는 대형 언어 모델(LLM)을 GitHub Marketplace에 도입하여 개발자들이 강력한 AI 기반 애플리케이션을 쉽게 구축할 수 있도록 지원하고 있습니다. 이 글에서는 .NET 프로그래머가 Semantic Kernel을 사용하여 이러한 모델을 애플리케이션에 통합하는 방법을 살펴보겠습니다.
GitHub 모델 소개
GitHub는 100백만 이상의 개발자가 AI 엔지니어가 될 수 있도록 설계된 AI 모델 모음을 출시했습니다. 이 모델들은 자연어 처리(NLP) 작업에 특히 유용하며, GitHub Marketplace에서 무료로 다양한 프롬프트와 모델 매개변수를 테스트할 수 있는 내장된 플레이그라운드를 제공합니다. .NET 개발자들은 이러한 모델을 활용하여 인간 언어 또는 코드를 이해하고 생성할 수 있는 지능형 애플리케이션을 만들 수 있습니다.
Semantic Kernel: 간략 개요
Semantic Kernel은 Microsoft에서 제공하는 경량의 확장 가능한 프레임워크로, 개발자가 LLM 및 Azure AI Search와 같은 클라우드 서비스를 활용하여 정교한 AI 애플리케이션을 만들 수 있도록 합니다. Semantic Kernel을 사용하면 워크플로를 정의하고 LLM의 출력에 대한 추론을 적용하며, 모델을 연결하여 더 복잡한 AI 기반 경험을 생성할 수 있습니다.
GitHub 모델을 Semantic Kernel과 함께 사용하기
다음은 C# 애플리케이션에 GitHub 모델을 통합하는 방법에 대한 단계별 가이드입니다.
1단계: 필요한 NuGet 패키지 설치
C# 프로젝트에 필요한 NuGet 패키지를 추가합니다:
dotnet add package Microsoft.SemanticKernel --version 1.18.2
dotnet add package Microsoft.Extensions.Configuration.UserSecrets --version 9.0.0-rc.1.24431.7
2단계: GitHub 개인 액세스 토큰으로 프로젝트 비밀 설정
새로운 GitHub 개인 액세스 토큰을 생성하고, C# 프로젝트의 루트에서 다음 명령어를 실행하여 토큰을 추가합니다:
dotnet user-secrets init
dotnet user-secrets set "GH_PAT" "< PAT >"
3단계: Semantic Kernel 클라이언트 구성
GitHub 모델 API와 통합하기 위해 Semantic Kernel을 설정합니다:
var client = new OpenAIClient(new ApiKeyCredential(githubPAT), new OpenAIClientOptions { Endpoint = new Uri(uri) });
var builder = Kernel.CreateBuilder();
builder.AddOpenAIChatCompletion(modelId, client);
Kernel kernel = builder.Build();
var chat = kernel.GetRequiredService<IChatCompletionService>();
4단계: 애플리케이션 실행
GitHub 모델이 수행할 작업을 정의합니다. 샘플 콘솔 애플리케이션은 Q&A 챗봇으로 작동합니다:
var history = new ChatHistory();
history.AddSystemMessage("You are a useful chatbot. If you don't know an answer, say 'I don't know!'. Always reply in a funny way. Use emojis if possible.");
while (true)
{
Console.Write("Q: ");
var userQ = Console.ReadLine();
if (string.IsNullOrEmpty(userQ))
{
break;
}
history.AddUserMessage(userQ);
var sb = new StringBuilder();
var result = chat.GetStreamingChatMessageContentsAsync(history);
Console.Write("AI: ");
await foreach (var item in result)
{
sb.Append(item);
Console.Write(item.Content);
}
Console.WriteLine();
history.AddAssistantMessage(sb.ToString());
}
요약
GitHub 모델을 .NET 애플리케이션에 Semantic Kernel을 사용하여 통합하면 AI 기반 애플리케이션을 구축할 수 있는 흥미로운 가능성이 열립니다. Semantic Kernel과 같은 도구를 활용하면 개발 프로세스를 간소화하고 더 스마트한 애플리케이션을 만들 수 있습니다.