Post

OpenAI API Best Preactices

OpenAI API를 활용한 모범 사례 정리

OpenAI API Best Preactices

1. 프롬프트 엔지니어링


이 가이드는 더 나은 결과를 얻기 위한 전략을 공유한다.


1.1. 더 나은 결과를 얻기 위한 6가지 전략


1.1.1. 명확한 지침


모델이 추측해야 하는 부분이 적을수록 원하는 대답을 얻을 가능성이 높아진다.


더욱 관련성 있는 답변을 얻으려면 질의에 세부 정보를 포함해라.

  • 나쁜 예 : 회의록을 요약하세요.
  • 좋은 예 : 회의록을 한 문단으로 요약합니다. 그 후 발표자와 각 발표자의 핵심 요점에 대한 마크다운 목록을 작성합니다. 마지막으로 발표자가 제안한 다음 단계 또는 작업 항목을 나열합니다.


모델에 페르소나를 적용해라.

TypeMessage
SYSTEM내가 글을 쓰는 것에 대해 도움을 요청하면, 너는 각 문단에 농담이 포함된 문서로 답변해줘.


구분 기호를 사용하여 입력의 각 부분을 명확하게 표시해라.

TypeMessage
SYSTEM너에게 동일한 주제에 대해 두 개의 기사(XML 태그로 구분)를 제공할거야.
먼저 각 기사의 주장을 요약해주고, 어느 것이 더 나은 주장인지 표시하며 그 이유를 설명해줘.
USER<article> insert first article here </article>
<article> insert second article here </article>


작업을 완료하는 데 필요한 단계를 지정해라.

TypeMessage
SYSTEM다음 단계별 지침에 따라서 응답해줘.
1단계 - 사용자는 세 따옴표로 텍스트를 제공한다. 이 텍스트를 “요약: “ 이라는 접두사로 한 문장으로 요약.
2단계 - 1단계의 요약을 스페인어로 번역해서, “번역: “ 이라는 접두사에 번역한 내용을 작성.


예시를 제공해라.

TypeMessage
SYSTEM일관된 스타일로 답변해줘.
USER인내심에 대해 가르쳐 주세요.
ASSISTANT가장 깊은 계곡을 가로지르는 강물은 겸손한 샘에서 흐르고, 가장 웅장한 교향곡도 단 하나의 음표에서 시작되며, 가장 복잡한 태피스트리도 단 하나의 실로 시작됩니다.
USER바다에 대해 가르쳐 주세요.


원하는 출력 길이를 지정해라.

TypeMessage
USER3중 따옴표로 구분된 텍스트를 약 50단어로 요약하세요.
””“{텍스트}”””


1.1.2. 참조 글


모델에 참조 글을 제공하면 올바른 답변하는 데 도움이 될 수 있다.


참조 글을 사용하여 모델에 답변하도록 지시해라.

TypeMessage
SYSTEM3중 따옴표에 작성된 참조 글을 기반해서 질문에 답해줘.
글에서 답을 찾을 수 없는 경우 “답변을 찾을 수 없습니다” 라고 써줘.
USER””“{참조 글}””“
질문: {질문}


참조 글에서 인용문을 사용하여 모델에 답변하도록 지시해라.

TypeMessage
SYSTEM3중 따옴표와 질문으로 구분된 문서를 제공할 것이다.
너는 제공된 문서의 구절을 인용해서 질문에 답해야 한다.
질문에 대한 정보가 문서에 없으면 “정보가 부족합니다.”라고 대답해야 한다.
질문에 대한 답변이 존재하면 인용문으로 다음과 같이 주석을 달아야 한다.
{“인용”: …}
USER””“{문서}””“
질문: {질문}


1.1.3. 작업 분할


복잡한 시스템을 모듈식 구성 요소 집합으로 분해나는 것이 좋은 관행인 것처럼 언어 모델에 요청된 작업도 마찬가지이다.


식별 카테고리를 전달하여 사용자 요청을 분류할 수 있도록 해라.

TypeMessage
SYSTEM고객 서비스 문의 사항이 제공된다.
각 문의 사항을 1차 카테고리와 2차 카테고리로 분류한다.
키로 primary와 secondary를 사용하여 JSON 형식으로 출력해라.

[primary] 카테고리: 청구, 기술 지원

[secondary] 청구 카테고리
- 구독 취소 또는 업그레이드
- 결제 수단 추가

[secondary] 기술 지원 카테고리
- 문제 해결
- 장치 호환성
USER인터넷이 안됩니다.


매우 긴 대화가 필요한 대화 애플리케이션의 경우 이전 대화를 요약하거나 필터링해라.

  • 컨텍스트 길이의 최대가 제한되어 있으므로 너무 긴 대화를 처리할 수 없다.
  • 대화 길이가 임계값에 도달하면 대화를 요약하고, 해당 요약이 시스템 메시지의 일부로 포함시킬 수 있다.
  • 혹은, 대화 전체에 걸쳐 이전 대화를 비동기적으로 요약시킬 수 있다.


긴 문서를 나눠서 요약하고 재귀적으로 전체 요약을 구성해라.

  • 모델의 입력 컨텍스트 길이는 제한이 존재하므로 해당 길이보다 긴 글을 요청할 수 없다.
  • 책과 같은 매우 긴 문서를 요약하려면 일부분을 요약하고, 일부분끼리 합쳐서 요약하는 방식으로 전체를 요약할 수 있다.


1.1.4. 생각할 시간 제공

모델은 답을 생각해 내는 데 시간을 들이는 것보다, 바로 답하려고 할 때 더 많은 추론 오류가 발생한다. “생각의 흐름”을 요청하면 모델이 더 안정적으로 정답을 추론하는 데 도움이 될 수 있다.


모델이 스스로 해결책을 찾아내도록 지시하여, 답변에 서두르지 않도록 해라.

TypeMessage
SYSTEM앞으로 내가 문제를 줄 것이다.
첫번째로, 문제에 대한 너만의 해결책을 생각해라.
그 다음으로 너의 답과 내 답이 맞는지 비교하고, 내 답이 맞는지 평가해라.
내 답이 맞는지 아닌지는 스스로 문제를 풀어보기 전까지는 판단하지 마라.
USER{문제 설명}
{답}


모델의 추론 과정을 숨기려면 내면 독백을 요청해라.

TypeMessage
SYSTEM다음 단계를 따라 질문에 답변해라.

1단계
문제에 대한 너만의 해결책을 생각한다.
이 단계에 대한 모든 작업을 세 개의 따옴표로 묶어라.

2단계
너의 해결책과 나의 해결책을 비교하고, 내 해결책이 맞는지 평가해라.
이 단계에 대한 모든 작업을 세 개의 따옴표로 묶어라.
USER{문제 설명}
{답}


2. 출시 모범 사례


2.1. 청구 한도 관리


Billing 페이지에 청구 정보를 입력하면, 월 100$ 사용 한도가 적용된다. 플랫폼에서 사용량이 증가하고 Usage Tier를 바꾸면 한도가 자동으로 늘어난다. Limit 페이지에서 현재 사용 한도를 확인할 수 있다.



Reference

https://platform.openai.com/docs

This post is licensed under CC BY 4.0 by the author.