C# Console 프로젝트에서 OpenAI Responses API 사용하기

  • 3 minutes to read

1. 개요

이 문서는 .NET 콘솔 프로젝트 기반으로 OpenAI 공식 .NET SDK를 사용하여 간단한 CLI 프로그램을 구현하는 방법을 설명합니다.

이전에는 File-Based App(FBA) 방식으로 구성했지만, 본 문서는 정식 csproj 기반 콘솔 프로젝트 방식으로 작성되었습니다.

목표

  • dotnet new console 기반 프로젝트
  • NuGet 패키지 명시적 참조
  • 사용자 입력 → Responses API 호출
  • 모델 응답 출력
  • 반복 실행 가능한 CLI 구조

2. 사전 준비

2.1 .NET SDK 확인

dotnet --version

dotnet version

.NET 8 이상 권장 (예제는 net10.0 기준)


2.2 OpenAI API Key 발급

  1. https://platform.openai.com 접속
  2. 로그인
  3. Profile → API Keys
  4. "Create new secret key"
  5. 키 복사 후 안전하게 보관

alt text

주의사항

  • API 키는 노출되면 안 됩니다.
  • 코드에 직접 작성하지 마십시오.
  • GitHub에 커밋하면 안 됩니다.

3. API Key 등록 (권장 방식)

3.1 Windows (PowerShell)

setx OPENAI_API_KEY "발급받은_키"

Setx Open AI API Key

새 터미널을 열어야 적용됩니다.

확인:

echo $env:OPENAI_API_KEY

API Key 확인


3.2 macOS / Linux

export OPENAI_API_KEY="발급받은_키"

확인:

echo $OPENAI_API_KEY

4. 콘솔 프로젝트 생성

4.1 새 프로젝트 생성

dotnet new console -n OpenAiChat
cd OpenAiChat

4.2 OpenAI 패키지 추가

dotnet add package OpenAI --version 2.8.0

4.3 csproj 파일 예시

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="OpenAI" Version="2.8.0" />
  </ItemGroup>

</Project>

5. Program.cs 작성

Program.cs 내용을 아래 코드로 교체합니다.

#pragma warning disable OPENAI001

using OpenAI.Responses;

var apiKey = Environment.GetEnvironmentVariable("OPENAI_API_KEY");
if (string.IsNullOrWhiteSpace(apiKey))
{
    Console.WriteLine("OPENAI_API_KEY 환경 변수가 필요합니다.");
    return;
}

var model = "gpt-5";
var systemPrompt = "Limit your answer to one sentence.";

ResponsesClient client = new(model: model, apiKey: apiKey);

while (true)
{
    Console.Write("Prompt (exit 입력 시 종료): ");
    var userPrompt = Console.ReadLine();

    if (string.IsNullOrWhiteSpace(userPrompt))
        continue;

    if (userPrompt.Equals("exit", StringComparison.OrdinalIgnoreCase))
        break;

    var options = new CreateResponseOptions
    {
        Instructions = systemPrompt
    };

    options.InputItems.Add(ResponseItem.CreateUserMessageItem(userPrompt));

    var result = await client.CreateResponseAsync(options);

    Console.WriteLine();
    Console.WriteLine("Response:");
    Console.WriteLine(result.Value.GetOutputText());
    Console.WriteLine();
}

#pragma warning restore OPENAI001

6. 실행

프로젝트 루트에서:

dotnet run

첫 실행 시 동작

  • NuGet 패키지 복원
  • 컴파일
  • 실행

7. 실행 예시

Prompt (exit 입력 시 종료): What is .NET?

Response:
.NET is a cross-platform framework for building modern applications.

Prompt (exit 입력 시 종료): exit

8. 코드 구성 설명

8.1 ResponsesClient

OpenAI Responses API 호출용 클라이언트입니다.


8.2 CreateResponseOptions

요청 옵션 객체입니다.

  • Instructions → 시스템 프롬프트 역할
  • InputItems → 사용자 입력 추가

8.3 result.Value.GetOutputText()

CreateResponseAsync()ClientResult<ResponseResult>를 반환합니다. 따라서 .Value를 통해 실제 결과 객체를 얻은 뒤 텍스트를 추출합니다.


9. 모델 변경

var model = "gpt-5-mini";

경량 모델 사용 가능


10. 시스템 프롬프트 변경

var systemPrompt = "Respond in Korean.";

11. Publish (선택)

실행 파일 생성

dotnet publish -c Release -o publish

publish 폴더 안에 실행 파일이 생성됩니다.

더 깊이 공부하고 싶다면
DevLec에서는 실무 중심의 C#, .NET, ASP.NET Core, Blazor, 데이터 액세스 강좌를 단계별로 제공합니다. 현재 수강 가능한 강좌 외에도 더 많은 과정이 준비되어 있습니다.
DevLec.com에서 자세한 커리큘럼을 확인해 보세요.
DevLec 공식 강의
C# Programming
C# 프로그래밍 입문
프로그래밍을 처음 시작하는 입문자를 위한 C# 기본기 완성 과정입니다.
ASP.NET Core 10.0
ASP.NET Core 10.0 시작하기 MVC Fundamentals Part 1 MVC Fundamentals Part 2
웹 애플리케이션의 구조와 MVC 패턴을 ASP.NET Core로 실습하며 익힐 수 있습니다.
Blazor Server
풀스택 웹개발자 과정 Part 1 풀스택 웹개발자 과정 Part 2 풀스택 웹개발자 과정 Part 3
실무에서 바로 활용 가능한 Blazor Server 기반 관리자·포털 프로젝트를 만들어 봅니다.
Data & APIs
Entity Framework Core 시작하기 ADO.NET Fundamentals Blazor Server Fundamentals Minimal APIs
데이터 액세스와 Web API를 함께 이해하면 실무 .NET 백엔드 개발에 큰 도움이 됩니다.
VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com