LLM 도구를 위한 JSON 형식

도구를 공유하기 위한 휴대 가능한 방법

소개

프로그램이나 툴 편집기에 빠르게 추가할 수 있는 방식으로 도구를 공유하는 것은 도구를 표현하고 사용하는 방법에 대한 표준 방식이 있다면 크게 향상될 것입니다. 우리는 다음과 같은 기능을 가능하게 하고 싶습니다:

  • 도구를 시각적으로 나타내는 아이콘

  • 프롬프트를 위한 메타 데이터:

    • 도구의 이름

    • 도구에 대한 설명

    • 도구 사용법에 대한 참고 사항

  • 도구 문자열에 포함된 플레이스홀더 매개변수

  • 예상 출력

  • 버전 및 타임스탬프.

JSON 형식 규격

{
  "version": "문자열 또는 정수",
  "model_prompt": "{{변수_이름}} 플레이스홀더가 있는 문자열",
  "metadata": {
    "prompt_name": "문자열",
    "description": "문자열",
    "usage_notes": "문자열",
    "model_version": ["문자열", "문자열", …],
    "creator": {
      "name": "문자열",
      "email": "문자열",
      "organization": "문자열"
    },
    "parameters": {
      "temperature": "실수",
      "max_tokens": "정수",
      "top_p": "실수",
      "frequency_penalty": "실수",
      "presence_penalty": "실수"
    },
    "variables": [
      {
        "name": "변수 이름 1",
        "type": "텍스트",
        "description": "문자열",
        "default": "문자열",
      },
      {
        "name": "변수 이름 2",
        "type": "단일 선택",
        "description": "문자열",
        "default": "값1",
        "allowed_values": ["값1", "값2", "값3"]
      },
      {
        "name": "변수 이름 3",
        "type": "다중 선택",
        "description": "문자열",
        "default": ["값1", "값2"]
        "allowed_values": ["값1", "값2", "값3"]
      },
      ...
    ],
    "expected_output": {
      "type": "문자열 (예: 텍스트, 코드, 제한)",
      "format": "문자열 (선택, 예: JSON, XML, CSV)",
      "language": "문자열 (선택, 예: Python, JavaScript)",
      "allowed_values": ["문자열1", "문자열2", ...] (선택)
    },
    "avatar_type": "문자열 (예: url, base64)",
    "avatar": "문자열 (URL 또는 base64 인코딩된 이미지), 권장 해상도 256x256 픽셀",
    "timestamp": "문자열 (ISO 8601 형식)"
  }
}

우리의 샘플 JSON은 여기에서 다운로드 받으실 수 있습니다.

필드 설명

  • model_prompt: GPT 모델 프롬프트가 포함된 문자열입니다.

  • metadata: GPT 모델 프롬프트에 대한 추가 정보를 포함하는 객체입니다. 다음과 같은 하위 필드가 있습니다:

    • model_version: 사용된 GPT 모델의 버전을 나타내는 문자열입니다.

    • creator: GPT 모델 프롬프트의 창시자에 대한 정보를 포함하는 객체로, 다음과 같은 하위 필드들을 가지고 있습니다:

      • name: 창시자의 이름을 나타내는 문자열입니다.

      • email: 창시자의 이메일을 나타내는 문자열입니다.

      • organization: 창시자가 속한 조직을 나타내는 문자열입니다.

    • parameters: GPT 모델 파라미터에 대한 정보를 포함하는 객체로, 다음과 같은 하위 필드들을 가지고 있습니다:

      • temperature: 출력물의 무작위성을 제어하기 위해 사용된 온도를 나타내는 실수입니다.

      • max_tokens: 생성된 응답에서 토큰의 최대 수를 나타내는 정수입니다.

      • top_p: 핵심 샘플링 확률 임계값을 나타내는 실수입니다.

      • frequency_penalty: 데이터셋에서의 토큰 빈도에 기반한 토큰에 적용되는 패널티를 나타내는 실수입니다.

      • presence_penalty: 프롬프트에서의 새 토큰의 존재에 기반한 토큰에 적용되는 패널티를 나타내는 실수입니다.

    • timestamp: GPT 모델 프롬프트가 생성되거나 마지막으로 수정된 날짜와 시간을 나타내는 ISO 8601 형식의 문자열입니다.

    • expected_output (선택 사항): model_prompt에서 기대되는 출력과 관련된 필드를 포함하는 객체로, 다음과 같은 하위 필드를 포함합니다:

      • type: model_prompt에서 기대되는 출력의 타입을 나타내는 문자열입니다.

      • format (선택 사항): 해당되는 경우 기대되는 출력의 형식을 나타내는 문자열입니다.

      • language (선택 사항): 타입이 code인 경우 기대되는 출력의 프로그래밍 언어를 나타내는 문자열입니다.

      • allowed_values (선택 사항): 타입이 limited인 경우 허용되는 출력값의 목록을 포함하는 문자열 배열입니다.

    • variables (선택 사항): f-string 스타일로 model_prompt 문자열에 삽입될 수 있는 변수가 포함된 목록입니다. 각 변수는 다음과 같은 하위 필드를 포함합니다:

      • name: 변수 이름을 나타내는 문자열입니다.

      • type: 변수의 타입을 나타내는 문자열입니다. 현재 type의 가능한 값은 기본 변수용 text와 선택 변수용 single-select 또는 multi-select입니다.

      • description: 변수의 설명을 나타내는 문자열로, 사용법과 예시를 포함합니다.

      • default: 변수의 기본 값을 나타내는 값입니다. 이 값은 typetext 또는 single-select인 경우 문자열이고, multi-select인 경우 문자열 배열입니다.

      • allowed_values: 변수 타입이 single-select 또는 multi-select인 경우 허용된 값의 목록을 포함하는 문자열 배열입니다.

    • avatar (선택 사항): 프롬프트의 아바타나 아이콘 역할을 하는 그래픽 이미지와 관련된 필드를 포함하는 객체입니다. 다음과 같은 하위 필드들이 있습니다:

      • avatar_type: 아바타 데이터의 타입을 지정하는 문자열입니다.

      • avatar: `avatar_type`이 URL인 경우 이미지를 가리키는 URL을 포함하는 문자열이거나, `avatar_type`이 base64인 경우 이미지를 나타내는 base64로 인코딩된 문자열입니다.

    • prompt_name (선택 사항): 프롬프트의 이름을 나타내는 문자열입니다.

    • description (선택 사항): 도구와 그 목적에 대한 간략한 설명을 제공하는 문자열입니다.

    • usage_notes (선택 사항): 도구 사용에 있어서 창작자가 제공하는 자유 형식의 노트나 특정 고려사항들을 포함하는 문자열입니다.

model_prompt에서 기대되는 출력의 형식을 지정하려면 metadata 객체 내에 expected_output 객체를 추가할 수 있습니다. 기대되는 출력의 타입에 따라 expected_output 객체에 관련 하위 필드를 포함할 수 있습니다.

f-string 스타일로 model_prompt 문자열에 삽입될 수 있는 변수 필드를 포함시키려면 metadata 객체 내에 별도의 variables 목록을 추가할 수 있습니다.

프롬프트 이력에 대한 아바타나 아이콘이 될 그래픽 이미지를 포함시키려면 metadata 객체 내에 avatar 필드를 추가할 수 있습니다.

expected_output , variables, avatar, prompt_name, description, 그리고 usage_notes 필드들을 metadata 객체 내에 포함시키면 프롬프트에 대한 모든 맥락 정보를 한 곳에 모아 관리하고 이해하는 데 도움이 됩니다.

JSON 객체의 최상위 레벨에 version 필드를 사용하여 전체 JSON 파일의 버전을 명시적으로 추적할 수 있습니다

Last updated