Dietly 실시간 데이터를 사용하여 음식 질문에 답하는 커스텀 GPT 구축하기
요약
Dietly의 OpenAPI 스키마를 활용하여 실시간 음식 영양 정보를 조회하는 커스텀 GPT 구축 방법을 설명합니다. API 액션 설정, 인증 방식, 그리고 모델의 환각을 방지하기 위한 지침(Instructions) 작성법을 다룹니다.
핵심 포인트
- OpenAPI 스키마를 GPT 액션으로 연결하여 실시간 데이터 검색 구현
- Bearer 인증 사용 시 보안을 위해 읽기 전용 키 권장
- 모델이 임의로 수치를 추측하지 않도록 근거 기반 지침 작성 필수
- 검색 결과가 없을 경우 솔직하게 답변하도록 유도하여 신뢰성 확보
Dietly 실시간 데이터를 사용하여 음식 질문에 답하는 커스텀 GPT 구축하기
커스텀 GPT (Custom GPT)는 Dietly의 OpenAPI 스키마 (schema)를 액션 (Action)으로 가져옴으로써, 영양 성분 값을 추측하는 대신 Dietly를 실시간 음식 조회 도구로 사용할 수 있습니다. 전체 작업의 핵심은 GPT에게 하나의 좁은 검색 작업(retrieval task)을 부여하는 것입니다. 즉, 사용자가 특정 음식에 대해 물으면 Dietly를 검색한 다음, 반환된 제품명과 100g당 수치를 보고하고 필드가 누락된 경우 이를 알리는 것입니다. 이 페이지에서는 설정 방법, 답변의 근거를 유지하는 지침 (instruction), 그리고 공유하기 전에 실행해야 할 테스트를 다룹니다.
구성 요소의 결합 방식
액션 (Action)이 포함된 커스텀 GPT는 HTTP API 상의 얇은 계층 (thin layer)입니다. OpenAPI 스키마를 가져오면, 에디터가 설명된 각 작업을 호출 가능한 액션으로 변환하며, 모델은 언제 이를 호출할지 결정합니다. Dietly의 경우 유용한 작업은 음식의 JSON 배열을 반환하는 GET /search입니다. 모델 자체에 변화가 생기는 것은 아닙니다. 여러분은 모델에게 실제 수치를 가져올 수 있는 신뢰할 수 있는 방법을 제공하는 것입니다.
1. 스키마로부터 액션 생성하기
GPT 에디터에서 Configure를 열고, Actions를 선택한 다음, 새로운 액션을 생성하여 Dietly의 OpenAPI 명세 (specification)를 가져옵니다. 공식 설정 흐름에는 OpenAPI 스키마와 인증 (authentication) 선택이 필요합니다. GPT는 Apps 또는 Actions 중 하나만 사용할 수 있으며, 둘 다 사용할 수는 없습니다. 현재 에디터 규칙 및 워크스페이스 제한 사항에 대해서는 OpenAI의 Actions 설정 가이드 (Actions configuration guide)를 참조하세요.
2. 최소 권한의 인증 방식 선택하기
Dietly의 공개 읽기 엔드포인트 (public read endpoints)는 키 없이도 테스트할 수 있으며, 이것이 가장 간단한 시작점입니다. 만약 키를 연결한다면, Bearer 인증을 구성하고 대시보드 (dashboard)에서 호출 제한 (rate cap)이 설정된 읽기 전용 키를 사용하세요. 개인 자격 증명 (credential)을 GPT 지침 (instructions), 지식 파일 (knowledge file) 또는 예시 프롬프트 (example prompt)에 절대 붙여넣지 마세요. 사용자에게 노출될 수 있기 때문입니다. 액션을 사용하는 공개 GPT는 액션 설정에 유효한 개인정보 처리방침 (privacy policy) URL도 필요합니다.
3. 답변의 근거를 마련하는 지침(Instructions) 작성하기
권장 지침: 특정 브랜드의 포장 식품의 경우, 먼저 검색을 수행하십시오. 칼로리와 영양 성분(macros)은 100g당 기준으로 보고하십시오. 반환된 제품명과 브랜드를 명시하십시오. 조회 결과가 없거나 영양 성분이 null인 경우, 이를 솔직하게 밝히십시오. 의학적 적합성을 추론하거나, 질환을 진단하거나, 라벨 값을 임의로 만들어내지 마십시오.
이것이 근거에 기반한 어시스턴트(grounded assistant)와 자신 있게 추측하는 모델(confident guesser)을 구분 짓는 지점입니다. 이 지침이 없다면, 모델은 액션(action)을 전혀 호출하지 않고도 영양 질문에 유창하게 답변할 것이며, 실제로는 라벨을 읽지 않았음에도 마치 읽은 것처럼 답변하게 됩니다. 지침은 검색(retrieval)을 강제하고, 빈틈을 임의의 숫자로 채우는 것을 금지합니다. 지침은 짧고 명령조로 작성하십시오. 길고 완곡한 지침은 모델이 검색을 선택 사항으로 판단할 여지를 주며, 이는 바로 당신이 방지하고자 하는 동작입니다.
4. 사용자 질문을 단일 호출로 매핑하기
대부분의 요청은 하나의 검색으로 귀결됩니다. GPT를 위한 사고 모델(mental model)을 단순하게 유지하십시오.
| 사용자 질문 | 액션 동작 |
|---|---|
| "Fage 0% 요거트의 칼로리는?" | 제품명을 검색하고, 100g당 수치와 제공량(serving)이 있는 경우 이를 보고함 |
| ... |
5. 공유하기 전에 실제 프롬프트로 테스트하기
미리보기(Preview)에서 정확한 제품 쿼리, 철자 오류, 일반적인 음식, 알 수 없는 항목, 그리고 응답에 누락된 영양 성분을 묻는 질문 등을 시도해 보십시오. 다음 두 가지를 확인하십시오: GPT가 호출해야 할 때 액션을 호출하는지, 그리고 결과를 지어내는 대신 빈 결과임을 설명할 수 있는지입니다. OpenAI는 GPT를 게시하거나 공유하기 전에 미리보기(Preview) 테스트를 수행할 것을 권장합니다.
6. 게시한 후에는 정직함을 유지하기
미리보기(Preview)가 제대로 작동한다면, GPT를 비공개로 유지하거나, 링크를 공유하거나, 공개적으로 목록에 올릴 수 있습니다. 공개 목록에 게시하려면 위에서 언급한 개인정보 처리방침(Privacy Policy) URL과 해당 액션(Action)이 수행하는 작업에 대한 명확한 설명이 필요합니다. GPT 자체 설명란에 기대치를 설정해 두세요. 예를 들어, 이 GPT는 공개 카탈로그에서 가공식품을 조회하며, 의학적 조언을 제공하지 않고, 범위는 넓지만 완전하지는 않다는 점을 명시해야 합니다. 사용자는 누락된 제품은 용서하지만, 라벨을 읽은 것처럼 제시된 허구의 수치는 용서하지 않습니다.
Dietly가 스키마(Schema)를 호스팅하므로 유지보수는 간단합니다. API에 필드가 추가되면, 명세서(the specification)를 다시 가져오는 것만으로 액션이 갱신됩니다. 시간이 흐르면서 발생할 수 있는 두 가지 실패 모드를 주의 깊게 살펴보세요. 하나는 모델이 이미 알고 있다고 판단하는 질문에 대해 조용히 액션 호출을 중단하는 것이고, 다른 하나는 신뢰도가 낮은 기록에 대해 정밀도를 과도하게 보고하는 것입니다. 그라운딩(Grounding) 지침이 이 두 가지 문제를 해결하지만, 지침을 변경할 때마다 다섯 가지 테스트 프롬프트를 다시 실행하세요. 작은 문구 변경만으로도 모델이 검색을 수행하기로 결정하는 시점이 달라질 수 있기 때문입니다. 여기서 지침 블록(Instruction block)을 실제 제품으로 취급하세요. 액션은 배관(Plumbing)과 같고, 지침은 답변이 실제 데이터에 묶여 있도록 유지하는 핵심입니다.
액션(Action)이 적절한 도구가 아닌 경우
정보가 정적이어야 하고 사용자가 직접 검토해야 하는 경우에는 선별된 지식(Curated knowledge)을 사용하는 일반적인 커스텀 GPT(Custom GPT)를 사용하세요. 수십만 개의 제품 카탈로그처럼 최신성(Freshness)이 중요한 경우에는 액션을 사용하세요. 사용자 계정, 저장된 로그 또는 다단계 도구 흐름(Multi-step tool flows)이 필요한 실제 애플리케이션의 경우, GPT 액션에 애플리케이션 로직을 맡기는 대신 서버 측 통합(Server-side integration)을 구축하세요. MCP 서버 가이드(MCP server guide)와 Python 퀵스타트(Python quickstart)에서 해당 경로를 다루고 있습니다.
다음 단계: DietlyAPI 가이드를 읽고, 대시보드 플레이그라운드 (dashboard playground)에서 작업을 테스트하며, 스키마 (schema)를 액션 (action)을 위한 계약 (contract)으로 사용하세요.
원문은 getdietly.com에 게시되었습니다. Dietly Nutrition API의 데이터를 사용합니다 — 85만 개 이상의 음식 데이터, 무료 티어 이용 가능.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기