Định dạng JSON cho Công cụ LLM

Một Cách Di Động Để Chia Sẻ Công Cụ

Giới thiệu

Việc chia sẻ một công cụ theo cách có thể nhanh chóng được thêm vào một chương trình hoặc trình chỉnh sửa công cụ sẽ được cải thiện rất nhiều với một cách tiêu chuẩn để đại diện cho một công cụ và cách sử dụng nó. Chúng tôi muốn kích hoạt các tính năng như sau:

  • Một biểu tượng để đại diện cho công cụ một cách trực quan

  • Siêu dữ liệu cho lời nhắc:

    • Một tên cho công cụ

    • Một mô tả cho công cụ

    • Ghi chú sử dụng cho công cụ

  • Các tham số giữ chỗ được bao gồm trong chuỗi công cụ

  • Đầu ra mong đợi

  • Phiên bản và dấu thời gian.

Đặc tả định dạng JSON

{
  "version": "chuỗi hoặc số nguyên",
  "model_prompt": "chuỗi với {{variable_name}} làm chỗ giữ chỗ",
  "metadata": {
    "prompt_name": "chuỗi",
    "description": "chuỗi",
    "usage_notes": "chuỗi",
    "model_version": ["chuỗi", "chuỗi", …],
    "creator": {
      "name": "chuỗi",
      "email": "chuỗi",
      "organization": "chuỗi"
    },
    "parameters": {
      "temperature": "số thực",
      "max_tokens": "số nguyên",
      "top_p": "số thực",
      "frequency_penalty": "số thực",
      "presence_penalty": "số thực"
    },
    "variables": [
      {
        "name": "tên biến 1",
        "type": "văn bản",
        "description": "chuỗi",
        "default": "chuỗi",
      },
      {
        "name": "tên biến 2",
        "type": "chọn một",
        "description": "chuỗi",
        "default": "giá trị1",
        "allowed_values": ["giá trị1", "giá trị2", "giá trị3"]
      },
      {
        "name": "tên biến 3",
        "type": "chọn nhiều",
        "description": "chuỗi",
        "default": ["giá trị1", "giá trị2"],
        "allowed_values": ["giá trị1", "giá trị2", "giá trị3"]
      },
      ...
    ],
    "expected_output": {
      "type": "chuỗi (ví dụ: văn bản, mã, giới hạn)",
      "format": "chuỗi (tùy chọn, ví dụ: JSON, XML, CSV)",
      "language": "chuỗi (tùy chọn, ví dụ: Python, JavaScript)",
      "allowed_values": ["chuỗi1", "chuỗi2", ...] (tùy chọn)
    },
    "avatar_type": "chuỗi (ví dụ: url, base64)",
    "avatar": "chuỗi (hình ảnh URL hoặc mã hóa base64), khuyến nghị 256x256 pixel",
    "timestamp": "chuỗi (định dạng ISO 8601)"
  }
}

Bạn có thể tải xuống JSON mẫu của chúng tôi tại đây.

Mô Tả Các Trường

  • model_prompt: Một chuỗi chứa lời nhắc của mô hình GPT.

  • metadata: Một đối tượng chứa thông tin bổ sung về lời nhắc của mô hình GPT, bao gồm các trường con sau:

    • model_version: Một chuỗi chỉ ra phiên bản của mô hình GPT được sử dụng.

    • creator: Một đối tượng chứa thông tin về người tạo lời nhắc của mô hình GPT, với các trường con sau:

      • name: Một chuỗi đại diện cho tên của người tạo.

      • email: Một chuỗi đại diện cho email của người tạo.

      • organization: Một chuỗi đại diện cho tổ chức mà người tạo đang công tác.

    • parameters: Một đối tượng chứa thông tin về các tham số của mô hình GPT, với các trường con sau:

      • temperature: Một số thực chỉ ra nhiệt độ được sử dụng để kiểm soát độ ngẫu nhiên của đầu ra.

      • max_tokens: Một số nguyên chỉ ra số lượng tối đa các token trong phản hồi được tạo ra.

      • top_p: Một số thực đại diện cho ngưỡng xác suất lấy mẫu hạt nhân.

      • frequency_penalty: Một số thực đại diện cho hình phạt áp dụng cho các token dựa trên tần suất của chúng trong tập dữ liệu.

      • presence_penalty: Một số thực đại diện cho hình phạt áp dụng cho các token mới dựa trên sự hiện diện của chúng trong lời nhắc.

    • timestamp: Một chuỗi theo định dạng ISO 8601 đại diện cho ngày và giờ khi lời nhắc của mô hình GPT được tạo ra hoặc sửa đổi lần cuối.

    • expected_output (Tùy Chọn): Một đối tượng chứa các trường liên quan đến đầu ra mong đợi từ model_prompt, bao gồm các trường con sau:

      • type: Một chuỗi chỉ ra loại đầu ra mong đợi từ model_prompt.

      • format (Tùy Chọn): Một chuỗi đại diện cho định dạng của đầu ra mong đợi nếu có.

      • language (Tùy Chọn): Một chuỗi đại diện cho ngôn ngữ lập trình của đầu ra mong đợi nếu loại là code.

      • allowed_values (Tùy Chọn): Một mảng các chuỗi chứa danh sách các giá trị đầu ra được phép nếu loại là limited.

    • variables (Tùy Chọn): Một danh sách chứa các biến có thể được chèn vào chuỗi model_prompt theo kiểu f-string. Mỗi biến chứa các trường con sau:

      • name: Một chuỗi đại diện cho tên biến.

      • type: Một chuỗi cho thấy loại biến. Hiện tại, các giá trị có thể của typetext cho biến mặc định, và single-select hoặc multi-select cho các biến lựa chọn.

      • description: Một chuỗi cho thấy mô tả của biến, bao gồm các cách sử dụng và ví dụ.

      • default: Một giá trị cho thấy giá trị mặc định của biến. Giá trị này là một chuỗi nếu typetext hoặc single-select, và là một mảng các chuỗi cho multi-select.

      • allowed_values: Một mảng các chuỗi chứa danh sách các giá trị được phép nếu loại biến là single-select hoặc multi-select.

    • avatar (Tùy Chọn): Một đối tượng chứa các trường liên quan đến hình ảnh đồ họa hoạt động như một avatar hoặc biểu tượng cho lời nhắc, bao gồm các trường con sau:

      • avatar_type: Một chuỗi chỉ định loại dữ liệu avatar được bao gồm.

      • avatar: Một chuỗi chứa URL trỏ đến hình ảnh nếu avatar_type là url, hoặc một chuỗi được mã hóa base64 đại diện cho hình ảnh nếu avatar_type là base64.

    • prompt_name (Tùy Chọn): Một chuỗi đại diện cho tên của lời nhắc.

    • description (Tùy Chọn): Một chuỗi cung cấp mô tả ngắn gọn về công cụ và mục đích của nó.

    • usage_notes (Tùy Chọn): Một chuỗi chứa các ghi chú tự do từ người tạo về cách sử dụng hoặc bất kỳ cân nhắc cụ thể nào liên quan đến công cụ.

Để chỉ định định dạng của đầu ra mong đợi từ model_prompt, bạn có thể thêm một đối tượng expected_output trong đối tượng metadata. Tùy thuộc vào loại đầu ra mong đợi, bạn có thể bao gồm các trường con liên quan trong đối tượng expected_output.

Để bao gồm các trường cho các biến có thể được chèn vào chuỗi model_prompt theo kiểu f-string, bạn có thể thêm một danh sách variables riêng trong đối tượng metadata.

Để bao gồm một hình ảnh đồ họa hoạt động như một avatar hoặc biểu tượng cho lời nhắc, bạn có thể thêm một trường avatar trong đối tượng metadata.

Việc bao gồm các trường expected_output, variables, avatar, prompt_name, description, và usage_notes trong đối tượng metadata giúp giữ tất cả thông tin ngữ cảnh về lời nhắc ở một nơi, giúp dễ dàng quản lý và hiểu.

Bạn có thể sử dụng trường version ở cấp độ cao nhất của đối tượng JSON để theo dõi rõ ràng phiên bản của toàn bộ tệp JSON.

Last updated