반응형
소개
이 2부작 블로그 시리즈에서는 OpenAI ChatGPT API를 C#으로 사용하는 방법을 탐구합니다. 첫 번째 부분에서는 환경을 설정하고 기본 C# 프로젝트를 만들고 첫 번째 API 호출을 수행하는 것에 대해 다룹니다.
사전 준비
시작하기 전에 다음이 설치되어 있는지 확인하세요:
- .NET SDK
- IDE (예: Visual Studio 또는 Visual Studio Code)
1단계: 새로운 C# 프로젝트 생성
터미널이나 명령 프롬프트를 열고 다음 명령을 실행하여 새로운 콘솔 애플리케이션을 생성하세요.
dotnet new console -n ChatGPTDemo
프로젝트 디렉토리로 이동하세요.
cd ChatGPTDemo
2단계: 필요한 NuGet 패키지 설치
HTTP 요청을 수행하기 위해 System.Net.Http 패키지가 필요합니다. 다음 명령을 실행하여 프로젝트에 추가하세요.
dotnet add package System.Net.Http
3단계: ChatGPT API 호출을 위한 기본 코드 작성
IDE에서 Program.cs 파일을 열고 다음 코드로 내용을 교체하세요.
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace ChatGPTDemo
{
class Program
{
private static readonly HttpClient client = new HttpClient();
static async Task Main(string[] args)
{
string apiKey = "your_api_key_here"; // OpenAI API 키로 교체하세요
string prompt = "안녕하세요, C#으로 ChatGPT를 어떻게 사용하나요?";
var requestContent = new
{
model = "gpt-3.5-turbo",
messages = new[]
{
new { role = "system", content = "당신은 도움을 주는 어시스턴트입니다." },
new { role = "user", content = prompt }
}
};
var content = new StringContent(JsonConvert.SerializeObject(requestContent), Encoding.UTF8, "application/json");
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var response = await client.PostAsync("https://api.openai.com/v1/chat/completions", content);
if (response.IsSuccessStatusCode)
{
var responseString = await response.Content.ReadAsStringAsync();
dynamic responseObject = JsonConvert.DeserializeObject(responseString);
Console.WriteLine(responseObject.choices[0].message.content);
}
else
{
Console.WriteLine("Error: " + response.StatusCode);
}
}
}
}
설명
- HttpClient: HTTP 요청을 보내기 위해 사용됩니다.
- JsonConvert.SerializeObject: 요청 객체를 JSON 문자열로 변환합니다.
- StringContent: HTTP 요청을 위한 JSON 문자열을 캡슐화합니다.
- PostAsync: OpenAI API 엔드포인트에 POST 요청을 보냅니다.
- Authorization Header: 요청 헤더에 API 키를 추가합니다.
4단계: 애플리케이션 실행
다음 명령을 사용하여 애플리케이션을 실행하세요.
dotnet run
콘솔에서 ChatGPT의 응답을 볼 수 있을 것입니다.
결론
이 파트에서는 기본 C# 콘솔 애플리케이션을 설정하고 OpenAI ChatGPT API에 간단한 요청을 보냈습니다. 다음 파트에서는 더 복잡한 상호작용을 처리하고, 오류 처리를 수행하며, API 호출을 개선하는 방법에 대해 다룰 것입니다.
반응형
'C#' 카테고리의 다른 글
C#으로 메모리, IPC제어하기 (0) | 2024.06.23 |
---|---|
Part 2: 고급 상호작용 처리 및 C# ChatGPT 통합 개선 (0) | 2024.06.16 |
C#에서 폴더를 포함한 압축파일의 압축해제 (0) | 2024.03.24 |
복수 파일을 선택해서 압축파일을 만들기 (0) | 2024.03.23 |
C#에서 동기 처리와 비동기 처리로 숫자 배열의 합 계산하기 (0) | 2024.03.16 |