본문 바로가기
profile_image

ChatGPT

텍스트 생성 및 프롬프트

페이지 정보

댓글 0건 조회 22회
작성일 2025-04-28 05:18:02

본문

텍스트 생성 및 프롬프트

모델에 텍스트를 생성하라는 메시지를 표시하는 방법을 알아봅니다.

페이지 복사

OpenAI API를 사용하면 ChatGPT를 사용하는 것처럼 대규모 언어 모델을 사용하여 프롬프트에서 텍스트를 생성할 수 있습니다. 모델은 코드, 수학 방정식, 구조화된 JSON 데이터 또는 인간과 유사한 산문과 같은 거의 모든 종류의 텍스트 응답을 생성할 수 있습니다.

다음은 응답 API를 사용하는 간단한 예입니다.

간단한 프롬프트에서 텍스트 생성

import OpenAI from "openai";

const client = new OpenAI();

const response = await client.responses.create({

model: "gpt-4.1",

input: "Write a one-sentence bedtime story about a unicorn."

});

console.log(response.output_text);

모델에 의해 생성된 콘텐츠 배열은 응답의 속성에 있습니다. 이 간단한 예제에는 다음과 같은 출력이 하나만 있습니다.output

 

[
    {
        "id": "msg_67b73f697ba4819183a15cc17d011509",
        "type": "message",
        "role": "assistant",
        "content": [
            {
                "type": "output_text",
                "text": "Under the soft glow of the moon, Luna the unicorn danced through fields of twinkling stardust, leaving trails of dreams for every child asleep.",
                "annotations": []
            }
        ]
    }
]

배열에는 종종 둘 이상의 항목이 있습니다!output 여기에는 도구 호출, 추론 모델에 의해 생성된 추론 토큰에 대한 데이터 및 기타 항목이 포함될 수 있습니다. 모델의 텍스트 출력이 에 있다고 가정하는 것은 안전하지 않습니다.output[0].content[0].text

일부 공식 SDK에는 편의를 위해 모델 응답에 대한 속성이 포함되어 있으며, 이 속성은 모델의 모든 텍스트 출력을 단일 문자열로 집계합니다. 이는 모델에서 텍스트 출력에 액세스하는 바로 가기로 유용할 수 있습니다.output_text

일반 텍스트 외에도 모델이 JSON 형식의 구조화된 데이터를 반환하도록 할 수 있으며, 이 기능을 구조적 출력이라고 합니다.

모델 선택

API를 통해 콘텐츠를 생성할 때 선택해야 할 주요 선택은 사용할 모델(위 코드 샘플의 매개 변수)입니다. 사용 가능한 모델의 전체 목록은 여기에서 확인할 수 있습니다. 다음은 텍스트 생성 모델을 선택할 때 고려해야 할 몇 가지 요소입니다.model

  • 추론 모델은 입력 프롬프트를 분석하기 위해 내부 사고 사슬을 생성하고 복잡한 작업과 다단계 계획을 이해하는 데 탁월합니다. 또한 일반적으로 GPT 모델보다 사용 속도가 느리고 비용이 많이 듭니다.
  • GPT 모델은 빠르고 비용 효율적이며 매우 지능적이지만 작업을 수행하는 방법에 대한 보다 명확한 지침의 이점을 누릴 수 있습니다.
  • 대형 및 소형(미니 또는 나노) 모델은 속도, 비용 및 인텔리전스 측면에서 절충안을 제공합니다. 대형 모델은 프롬프트를 이해하고 도메인 전반에서 문제를 해결하는 데 더 효과적인 반면, 소형 모델은 일반적으로 더 빠르고 저렴하게 사용할 수 있습니다.

의심스러울 때, gpt-4.1 인텔리전스, 속도 및 비용 효율성의 견고한 조합을 제공합니다.

신속한 엔지니어링

프롬프트 엔지니어링은 요구 사항을 충족하는 콘텐츠를 일관되게 생성하도록 모델에 대한 효과적인 지침을 작성하는 프로세스입니다.

모델에서 생성된 콘텐츠는 비결정론적이기 때문에 원하는 형식으로 콘텐츠를 생성하는 프롬프트를 구축하기 위해 예술과 과학을 결합합니다. 그러나 모델에서 지속적으로 좋은 결과를 얻기 위해 적용할 수 있는 여러 가지 기술과 모범 사례가 있습니다.

일부 프롬프트 엔지니어링 기술은 메시지 역할 사용과 같이 모든 모델에서 작동합니다. 그러나 최상의 결과를 생성하기 위해 다른 모델 유형(예: 추론 대 GPT 모델)을 다르게 표시해야 할 수 있습니다. 동일한 제품군 내에서 모델의 스냅샷이 다르더라도 다른 결과가 생성될 수 있습니다. 따라서 더 복잡한 응용 프로그램을 빌드하는 경우 다음을 수행하는 것이 좋습니다.

  • 프로덕션 애플리케이션을 특정 모델 스냅샷(예: )에 고정하여 일관된 동작을 보장합니다.gpt-4.1-2025-04-14
  • 프롬프트의 동작을 측정하는 평가를 구축하여 프롬프트를 반복할 때 또는 모델 버전을 변경 및 업그레이드할 때 프롬프트의 성능을 모니터링할 수 있습니다.

이제 프롬프트를 구성하는 데 사용할 수 있는 몇 가지 도구와 기술을 살펴보겠습니다.

메시지 역할 및 다음 지침

API 매개변수 또는 메시지 역할을 사용하여 #chain_of_command" rel="noopener noreferrer" target="_blank">서로 다른 권한 레벨로 모델에 지침을 제공할 수 있습니다.instructions

매개 변수는 어조, 목표 및 올바른 응답의 예를 포함하여 응답을 생성하는 동안 어떻게 동작해야 하는지에 대한 높은 수준의 지침을 모델에 제공합니다. 이러한 방식으로 제공되는 모든 지침은 매개 변수의 프롬프트보다 우선합니다.instructionsinput

import OpenAI from "openai";
const client = new OpenAI();

const response = await client.responses.create({
    model: "gpt-4.1",
    instructions: "Talk like a pirate.",
    input: "Are semicolons optional in JavaScript?",
});

console.log(response.output_text);

위의 예는 배열에서 다음 입력 메시지를 사용하는 것과 거의 동일합니다.input

import OpenAI from "openai";
const client = new OpenAI();

const response = await client.responses.create({
    model: "gpt-4.1",
    input: [
        {
            role: "developer",
            content: "Talk like a pirate."
        },
        {
            role: "user",
            content: "Are semicolons optional in JavaScript?",
        },
    ],
});

console.log(response.output_text);

매개 변수는 현재 응답 생성 요청에만 적용됩니다. 매개 변수를 사용하여 대화 상태를 관리하는 경우 이전 턴에서 사용된 것은 컨텍스트에 표시되지 않습니다.instructionsprevious_response_idinstructions

#chain_of_command" rel="noopener noreferrer" target="_blank">OpenAI 모델 사양은 모델이 서로 다른 역할을 가진 메시지에 다양한 수준의 우선 순위를 부여하는 방법을 설명합니다.

developer user assistant
developer 메시지는 응용 프로그램 개발자가 제공하는 지침으로, 메시지보다 우선 순위가 높습니다.user user 메시지는 최종 사용자가 제공하는 지침으로, 메시지 뒤에 우선 순위가 지정됩니다.developer 모델에 의해 생성된 메시지에는 역할이 있습니다.assistant

여러 차례 대화는 이러한 유형의 여러 메시지와 사용자와 모델이 제공하는 다른 콘텐츠 형식으로 구성될 수 있습니다. 여기에서 대화 상태 관리에 대해 자세히 알아보세요.

프로그래밍 언어에서 함수와 그 인수와 같은 메시지를 생각할 수 있습니다.developeruser

  • developer 메시지는 함수의 정의와 같은 시스템의 규칙과 비즈니스 로직을 제공합니다.
  • user messages는 함수에 대한 인수와 같이 메시지 명령이 적용되는 입력 및 구성을 제공합니다.developer

Markdown 및 XML을 사용한 메시지 서식 지정

메시지를 작성할 때 Markdown 서식과 XML 태그의 조합을 사용하여 모델이 프롬프트 및 컨텍스트 데이터의 논리적 경계를 이해하는 데 도움이 될 수 있습니다.developeruser

Markdown 헤더 및 목록은 프롬프트의 고유한 섹션을 표시하고 모델에 계층 구조를 전달하는 데 도움이 될 수 있습니다. 또한 개발 중에 프롬프트를 더 읽기 쉽게 만들 수도 있습니다. XML 태그는 한 가지 콘텐츠(예: 참조용으로 사용되는 지원 문서)의 시작과 끝을 나타내는 데 도움이 될 수 있습니다. XML 속성을 사용하여 지침에서 참조할 수 있는 프롬프트의 콘텐츠에 대한 메타데이터를 정의할 수도 있습니다.

일반적으로 개발자 메시지에는 일반적으로 다음 순서로 다음 섹션이 포함됩니다(정확한 최적 콘텐츠 및 순서는 사용 중인 모델에 따라 다를 수 있음).

  • 신원: 비서의 목적, 의사 소통 스타일 및 높은 수준의 목표를 설명합니다.
  • 지시: 원하는 응답을 생성하는 방법에 대한 지침을 모델에 제공합니다. 어떤 규칙을 따라야 합니까? 모델이 해야 할 일은 무엇이고, 절대 하지 말아야 할 것은 무엇인가? 이 섹션에는 모델이 사용자 지정 함수를 호출하는 방법과 같은 사용 사례와 관련된 많은 하위 섹션이 포함될 수 있습니다.
  • 예제: 모델에서 원하는 출력과 함께 가능한 입력의 예를 제공합니다.
  • 문맥: 학습 데이터 외부의 프라이빗/독점 데이터 또는 특히 관련성이 있는 것으로 알고 있는 기타 데이터와 같이 응답을 생성하는 데 필요할 수 있는 추가 정보를 모델에 제공합니다. 이 콘텐츠는 일반적으로 생성 요청에 따라 다른 컨텍스트를 포함할 수 있으므로 프롬프트의 끝 부분에 배치하는 것이 가장 좋습니다.

다음은 Markdown 및 XML 태그를 사용하여 고유한 섹션과 지원 예제가 있는 메시지를 구성하는 예제입니다.developer

프롬프트 예시API 요청

# Identity

You are coding assistant that helps enforce the use of snake case 
variables in JavaScript code, and writing code that will run in 
Internet Explorer version 6.

# Instructions

* When defining variables, use snake case names (e.g. my_variable) 
  instead of camel case names (e.g. myVariable).
* To support old browsers, declare variables using the older 
  "var" keyword.
* Do not give responses with Markdown formatting, just return 
  the code as requested.

# Examples

<user_query>
How do I declare a string variable for a first name?
</user_query>

<assistant_response>
var first_name = "Anna";
</assistant_response>

prompt caching으로 비용 및 대기 시간 절약

메시지를 구성할 때 프롬프트를 시작할 때, 그리고 JSON 요청 본문에서 채팅 완료 또는 응답에 전달하는 첫 번째 API 매개변수 중 API 요청에서 반복해서 사용할 것으로 예상되는 콘텐츠를 유지하려고 노력해야 합니다. 이를 통해 프롬프트 캐싱을 통한 비용 및 대기 시간 절약을 극대화할 수 있습니다.

퓨샷 학습

퓨샷(Few-shot) 학습을 사용하면 모델을 미세 조정하는 대신 프롬프트에 몇 가지 입력/출력 예제를 포함하여 대규모 언어 모델을 새로운 작업으로 조정할 수 있습니다. 모델은 이러한 예제에서 패턴을 암시적으로 "선택"하고 프롬프트에 적용합니다. 예제를 제공할 때 원하는 출력과 함께 가능한 다양한 입력을 표시하십시오.

일반적으로 API 요청에서 메시지의 일부로 예제를 제공합니다. 다음은 긍정적 또는 부정적 고객 서비스 리뷰를 분류하는 방법을 보여주는 예제가 포함된 예제 메시지입니다.developerdeveloper

 


# Identity

You are a helpful assistant that labels short product reviews as 
Positive, Negative, or Neutral.

# Instructions

* Only output a single word in your response with no additional formatting
  or commentary.
* Your response should only be one of the words "Positive", "Negative", or
  "Neutral" depending on the sentiment of the product review you are given.

# Examples

<product_review id="example-1">
I absolutely love this headphones — sound quality is amazing!
</product_review>

<assistant_response id="example-1">
Positive
</assistant_response>

<product_review id="example-2">
Battery life is okay, but the ear pads feel cheap.
</product_review>

<assistant_response id="example-2">
Neutral
</assistant_response>

<product_review id="example-3">
Terrible customer service, I'll never buy from them again.
</product_review>

<assistant_response id="example-3">
Negative
</assistant_response>

관련 컨텍스트 정보 포함

모델이 모델에 제공하는 프롬프트 내에 응답을 생성하는 데 사용할 수 있는 추가 컨텍스트 정보를 포함하는 것이 유용한 경우가 많습니다. 이렇게 할 수 있는 몇 가지 일반적인 이유가 있습니다.

  • 모델에 독점 데이터 또는 모델이 학습된 데이터 세트 외부의 다른 데이터에 대한 액세스 권한을 부여합니다.
  • 모델의 응답을 가장 유용하다고 판단한 특정 리소스 집합에 대해 제한하는 것입니다.

모델 생성 요청에 관련 컨텍스트를 추가하는 기술을 RAG(Retrieval-Augmented Generation)라고도 합니다. 벡터 데이터베이스를 쿼리하고 프롬프트에 다시 가져온 텍스트를 포함하거나 OpenAI의 내장 파일 검색 도구를 사용하여 업로드된 문서를 기반으로 콘텐츠를 생성하는 등 다양한 방법으로 프롬프트에 컨텍스트를 추가할 수 있습니다.

컨텍스트 창에 대한 계획

모델은 생성 요청 중에 고려하는 컨텍스트 내에서만 많은 데이터를 처리할 수 있습니다. 이 메모리 제한을 컨텍스트 창이라고 하며, 이는 토큰(텍스트에서 이미지로 전달하는 데이터 덩어리)으로 정의됩니다.

모델은 최신 GPT-4.1 모델의 경우 낮은 100k 범위에서 최대 100만 개의 토큰까지 다양한 컨텍스트 창 크기를 갖습니다. 모델별 특정 컨텍스트 창 크기에 대해서는 모델 문서를 참조하세요.

GPT-4.1 모델 프롬프트

GPT 모델은 다음과 같습니다. gpt-4.1 프롬프트에서 작업을 완료하는 데 필요한 논리와 데이터를 명시적으로 제공하는 정확한 지침을 활용할 수 있습니다. 특히 GPT-4.1은 조종 가능성이 높고 잘 지정된 프롬프트에 반응합니다. GPT-4.1을 최대한 활용하려면 쿡북의 프롬프트 가이드를 참조하세요.

 

GPT-4.1 프롬프트 가이드

 

이 팁과 요령을 사용하여 GPT-4.1을 프롬프트하는 방법을 최대한 활용하십시오. 실제 사용 사례에서 발췌한 프롬프트 가이드와 실제 경험.

GPT-4.1 프롬프트 모범 사례

쿡북에는 이 모델을 촉구하기 위한 가장 포괄적이고 최고의 지침이 있지만 염두에 두어야 할 몇 가지 모범 사례는 다음과 같습니다.

에이전트적 워크플로우 구축

긴 컨텍스트 사용

생각의 사슬을 촉구하다

다음 지시 사항

추론 모델 자극

추론 모델을 프롬프트할 때와 GPT 모델을 프롬프트할 때 고려해야 할 몇 가지 차이점이 있습니다. 일반적으로 추론 모델은 높은 수준의 지침만으로 작업에 대해 더 나은 결과를 제공합니다. 이것은 매우 정확한 지침의 이점을 제공하는 GPT 모델과 다릅니다.

추론과 GPT 모델의 차이점에 대해 이렇게 생각할 수 있습니다.

  • 추론 모델은 선임 동료와 같습니다. 달성해야 할 목표를 제시하고 세부 사항을 해결할 수 있다고 신뢰할 수 있습니다.
  • GPT 모델은 주니어 동료와 같습니다. 특정 출력을 만들기 위한 명시적 지침을 사용하는 것이 가장 좋습니다.

추론 모델을 사용할 때의 모범 사례에 대한 자세한 내용은 이 가이드를 참조하십시오.

다음 단계

Playground에서 프롬프트 작성

 

Playground를 사용하여 프롬프트를 개발하고 반복할 수 있습니다.

 

구조화된 출력으로 JSON 데이터 생성

 

모델에서 내보낸 JSON 데이터가 JSON 스키마를 준수하는지 확인합니다.

 

전체 API 참조

 

API 참조에서 텍스트 생성에 대한 모든 옵션을 확인하세요.

댓글목록

등록된 댓글이 없습니다.

방문자 집계

  • 오늘 177
  • 어제 241
  • 최대 522
  • 전체 8,337

Copyright © innohealonline.com. All rights reserved.