ThunderPhone 2.0 ਹੁਣ ਲਾਈਵ ਹੈ।ਸੈਲਫ਼-ਸਰਵਿਸ—2¢/ਮਿੰਟ ਤੋਂਐਲਾਨ ਪੜ੍ਹੋ

Function Tools

ਫੰਕਸ਼ਨ ਟੂਲਜ਼

ਆਪਣੇ AI ਏਜੰਟਾਂ ਨੂੰ ਫੰਕਸ਼ਨ ਟੂਲਜ਼ ਦਿਓ ਜੋ ਗੱਲਬਾਤ ਦੌਰਾਨ ਬਾਹਰੀ API ਕਾਲ ਕਰਦੇ ਹਨ — ਗਾਹਕ ਡਾਟਾ ਪ੍ਰਾਪਤ ਕਰੋ, ਅਪਾਇੰਟਮੈਂਟ ਬੁੱਕ ਕਰੋ, ਰਿਕਾਰਡ ਅੱਪਡੇਟ ਕਰੋ — ਟਾਈਪ ਕੀਤੇ ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ।

ਫੰਕਸ਼ਨ ਟੂਲ ਤੁਹਾਡੇ AI ਏਜੰਟਾਂ ਨੂੰ ਫ਼ੋਨ ਕਾਲਾਂ ਦੌਰਾਨ ਬਾਹਰੀ APIs ਨੂੰ ਇਨਵੋਕ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਹਨ। ਗਾਹਕ ਡਾਟਾ ਲੱਭਣ, ਉਪਲਬਧਤਾ ਜਾਂਚਣ, ਅਪਾਇੰਟਮੈਂਟ ਬੁੱਕ ਕਰਨ, ਜਾਂ ਤੁਹਾਡੇ ਬੈਕਐਂਡ ਵੱਲੋਂ ਸਮਰਥਿਤ ਕੋਈ ਵੀ ਕਾਰਵਾਈ ਕਰਨ ਲਈ ਇਨ੍ਹਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ।

ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ

  1. ਤੁਸੀਂ ਸਕੀਮਾ ਨਾਲ ਟੂਲ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹੋ (ਟੂਲ ਕਿਹੜੇ ਆਰਗੂਮੈਂਟ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ)
  2. ਤੁਸੀਂ ਇੱਕ endpoint ਕਨਫਿਗਰੇਸ਼ਨ ਦਿੰਦੇ ਹੋ (ThunderPhone ਤੁਹਾਡੀ API ਨੂੰ ਕਿੱਥੇ ਕਾਲ ਕਰਦਾ ਹੈ) — ਜਾਂ ਆਪਣੀ ਸੰਸਥਾ ਦੇ ਵੈੱਬਹੁੱਕ 'ਤੇ ਟੂਲ ਕਾਲਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇਸਨੂੰ ਨਾ ਦਿਓ
  3. ਕਾਲ ਦੌਰਾਨ, AI ਗੱਲਬਾਤ ਦੇ ਆਧਾਰ 'ਤੇ ਫ਼ੈਸਲਾ ਕਰਦਾ ਹੈ ਕਿ ਟੂਲ ਕਦੋਂ ਵਰਤਣਾ ਹੈ
  4. ThunderPhone ਟੂਲ ਆਰਗੂਮੈਂਟਾਂ ਨਾਲ ਤੁਹਾਡੇ ਐਂਡਪੌਇੰਟ ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ
  5. ਗੱਲਬਾਤ ਜਾਰੀ ਰੱਖਣ ਲਈ ਤੁਹਾਡਾ API ਜਵਾਬ ਵਾਪਸ AI ਨੂੰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ
ਸਮਰੱਥਾਇਹ ਕਿੱਥੇ ਚੱਲਦਾ ਹੈਸੈੱਟਅੱਪ
ਬਿਲਟ-ਇਨ ਟੂਲThunderPhoneਪ੍ਰੌਮਪਟ ਹਦਾਇਤਾਂ; ਕੁਝ ਟੂਲਾਂ ਨੂੰ ਏਜੰਟ ਸੈਟਿੰਗ ਦੀ ਵੀ ਲੋੜ ਹੁੰਦੀ ਹੈ
ਐਪ ਕਨੈਕਸ਼ਨThunderPhone ਅਤੇ ਕਨੈਕਟ ਕੀਤਾ ਪ੍ਰੋਵਾਈਡਰਖਾਤਾ ਕਨੈਕਟ ਕਰੋ ਅਤੇ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਕਾਰਵਾਈਆਂ ਅਟੈਚ ਕਰੋ
API ਕਨੈਕਸ਼ਨ ਅਤੇ ਫੰਕਸ਼ਨ ਟੂਲਤੁਹਾਡੀ HTTP APIਐਂਡਪੌਇੰਟ ਅਤੇ ਸਕੀਮਾ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ, ਜਾਂ ਵੈੱਬਹੁੱਕ ਰਾਹੀਂ ਫੰਕਸ਼ਨ ਕਾਲਾਂ ਪ੍ਰਾਪਤ ਕਰੋ
MCP ਸਰਵਰਇੱਕ ਰਿਮੋਟ MCP ਸਰਵਰਸਰਵਰ ਜੋੜੋ, ਇਸਦੇ ਟੂਲ ਖੋਜੋ, ਅਤੇ ਇਸਨੂੰ ਏਜੰਟ ਨਾਲ ਅਟੈਚ ਕਰੋ

ਟੂਲ ਸਕੀਮਾ

ਹਰੇਕ ਟੂਲ ਇਸ ਬਣਤਰ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ:

{
  "type": "function",
  "function": {
    "name": "search_appointments",
    "description": "Find available appointment slots for a given date",
    "parameters": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string",
          "description": "Date in YYYY-MM-DD format"
        },
        "service": {
          "type": "string",
          "description": "Type of service (e.g., 'consultation', 'follow-up')"
        }
      },
      "required": ["date"]
    }
  },
  "endpoint": {
    "url": "https://api.example.com/appointments/search",
    "method": "POST",
    "headers": {
      "X-Api-Key": "your-api-key"
    }
  },
  "timeout": 120
}

ਟੂਲ ਕਨਫਿਗਰੇਸ਼ਨ

ਖੇਤਰਕਿਸਮਲਾਜ਼ਮੀਵੇਰਵਾ
timeoutਨੰਬਰਨਹੀਂਸਕਿੰਟਾਂ ਵਿੱਚ ਵੱਧ ਤੋਂ ਵੱਧ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸਮਾਂ (ਡਿਫਾਲਟ: 20, ਵੱਧ ਤੋਂ ਵੱਧ: 180)

ਫੰਕਸ਼ਨ ਪਰਿਭਾਸ਼ਾ

ਖੇਤਰਕਿਸਮਲਾਜ਼ਮੀਵੇਰਵਾ
nameਸਟ੍ਰਿੰਗਹਾਂਟੂਲ ਲਈ ਵਿਲੱਖਣ ਪਛਾਣਕਰਤਾ
descriptionਸਟ੍ਰਿੰਗਹਾਂAI ਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਇਹ ਟੂਲ ਕਦੋਂ ਵਰਤਣਾ ਹੈ
parametersਆਬਜੈਕਟਹਾਂਟੂਲ ਆਰਗੂਮੈਂਟਾਂ ਲਈ JSON ਸਕੀਮਾ

ਐਂਡਪੌਇੰਟ ਕਨਫਿਗਰੇਸ਼ਨ

ਖੇਤਰਕਿਸਮਲਾਜ਼ਮੀਵੇਰਵਾ
urlਸਟ੍ਰਿੰਗਹਾਂਤੁਹਾਡਾ API ਐਂਡਪੌਇੰਟ URL
methodਸਟ੍ਰਿੰਗਨਹੀਂHTTP ਵਿਧੀ (ਡਿਫਾਲਟ: POST)
headersਆਬਜੈਕਟਨਹੀਂਸ਼ਾਮਲ ਕਰਨ ਲਈ ਕਸਟਮ ਹੈਡਰ

ਦੋ ਇਨਵੋਕੇਸ਼ਨ ਮਾਰਗ

ਤੁਹਾਡੇ ਸਰਵਰ ਨੂੰ ਕਿਹੜੀ ਬੇਨਤੀ ਮਿਲਦੀ ਹੈ, ਇਹ ਇਸ ਗੱਲ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਟੂਲ ਕੋਲ endpoint ਹੈ ਜਾਂ ਨਹੀਂ:

endpoint ਵਾਲਾ ਟੂਲendpoint ਤੋਂ ਬਿਨਾਂ ਟੂਲ
ਬੇਨਤੀ ਕਿੱਥੇ ਜਾਂਦੀ ਹੈਸਿੱਧਾ endpoint.url ਨੂੰਤੁਹਾਡੀ ਸੰਸਥਾ ਦਾ ਪੁਰਾਣਾ ਵੈੱਬਹੁੱਕ URL
ਬੌਡੀਸਿਰਫ਼ ਟੂਲ ਆਰਗੂਮੈਂਟtelephony.tool / web.tool ਐਨਵਲਪ
ਹੈਡਰਤੁਹਾਡੇ endpoint.headers + X-ThunderPhone-Call-ID + X-ThunderPhone-SignatureContent-Type + X-ThunderPhone-Signature
ਸਾਈਨਿੰਗ ਕੀਸੰਸਥਾ ਦਾ ਵੈੱਬਹੁੱਕ ਸੀਕਰਟਸੰਸਥਾ ਦਾ ਵੈੱਬਹੁੱਕ ਸੀਕਰਟ

ਦੋਵੇਂ ਮਾਰਗ ਬਲਾਕਿੰਗ ਹਨ — AI ਨਤੀਜੇ ਲਈ ਵਾਕ ਦੇ ਵਿਚਕਾਰ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੁੰਦਾ ਹੈ। ਡਿਫਾਲਟ ਟਾਈਮਆਊਟ 20 ਸਕਿੰਟ ਹੈ; ਲੰਬੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੀ ਆਗਿਆ ਦੇਣ ਲਈ ਟੂਲ ਦਾ ਟੌਪ-ਲੈਵਲ timeout ਸੈੱਟ ਕਰੋ, ਜੋ ਪਲੇਟਫਾਰਮ ਦੀ ਵੱਧ ਤੋਂ ਵੱਧ 180 ਸਕਿੰਟ ਸੀਮਾ ਤੱਕ ਹੋ ਸਕਦਾ ਹੈ। ਹੈਂਡਲਰ ਤੇਜ਼ ਰੱਖੋ। ਮਿਸ਼ਰਣ ਠੀਕ ਹੈ: ਜਿਸ ਕਾਲ ਦੀ ਸੰਸਥਾ ਕੋਲ ਵੈੱਬਹੁੱਕ URL ਹੈ, ਉਸ 'ਤੇ endpoint ਵਾਲੇ ਟੂਲਾਂ ਨੂੰ ਸਿੱਧਾ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਬਾਕੀ ਵੈੱਬਹੁੱਕ 'ਤੇ ਫਾਲਬੈਕ ਕਰਦੇ ਹਨ।

ਸਿੱਧੀਆਂ ਐਂਡਪੌਇੰਟ ਕਾਲਾਂ

ਜਦੋਂ AI ਕਿਸੇ ਅਜਿਹੇ ਟੂਲ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ ਜਿਸਦਾ endpoint ਹੋਵੇ, ThunderPhone ਤੁਹਾਡੇ URL ਨੂੰ ਇੱਕ ਬੇਨਤੀ ਭੇਜਦਾ ਹੈ:

ਬੇਨਤੀ ਹੈਡਰ

POST /appointments/search HTTP/1.1
Host: api.example.com
Content-Type: application/json
X-ThunderPhone-Signature: abc123...
X-ThunderPhone-Call-ID: 987654321
X-Api-Key: your-api-key

ਤੁਹਾਡੇ endpoint.headers ਦੇ ਕਸਟਮ ਹੈਡਰ ਹਮੇਸ਼ਾਂ ਜਿਵੇਂ ਦੇ ਤਿਵੇਂ ਸ਼ਾਮਲ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਨਾਲ ਹੀ ThunderPhone ਨੇਮਸਪੇਸ ਵਾਲੇ ਦੋ ਹੈਡਰ:

  • X-ThunderPhone-Signature — ਬਿਲਕੁਲ ਸਹੀ ਬੇਨਤੀ-ਬਾਡੀ ਬਾਈਟਾਂ ਦਾ HMAC-SHA256, ਜਿਸਦੀ ਕੁੰਜੀ ਤੁਹਾਡਾ ਸੰਗਠਨ ਵੈੱਬਹੁੱਕ ਸੀਕ੍ਰੇਟ ਹੈ
  • X-ThunderPhone-Call-ID — ਮੌਜੂਦਾ ਕਾਲ ID

Content-Type: application/json ਸੈੱਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜਦੋਂ ਤੱਕ ਤੁਹਾਡੇ endpoint.headers ਇਸਨੂੰ ਓਵਰਰਾਈਡ ਨਾ ਕਰਨ — ਕਸਟਮ Content-Type ਨੂੰ ਤਰਜੀਹ ਮਿਲਦੀ ਹੈ।

ਬੇਨਤੀ ਬਾਡੀ

POST / PUT / PATCH ਲਈ, ਬਾਡੀ ਵਿੱਚ ਸਿਰਫ਼ ਟੂਲ ਆਰਗੂਮੈਂਟ ਹੁੰਦੇ ਹਨ (ਕੋਈ ਰੈਪਰ ਨਹੀਂ), ਜੋ ਮਿਆਰੀ ਤਰੀਕੇ ਨਾਲ ਸੀਰੀਅਲਾਈਜ਼ ਹੁੰਦੇ ਹਨ (ਕ੍ਰਮਬੱਧ ਕੁੰਜੀਆਂ, ਸੰਖੇਪ ਸੈਪਰੇਟਰ):

{"date":"2025-01-02","service":"consultation"}

GET / DELETE ਲਈ, ਆਰਗੂਮੈਂਟ ਕੁਏਰੀ ਪੈਰਾਮੀਟਰਾਂ ਵਜੋਂ ਭੇਜੇ ਜਾਂਦੇ ਹਨ ਅਤੇ ਬਾਡੀ ਖਾਲੀ ਹੁੰਦੀ ਹੈ — ਫਿਰ ਸਿਗਨੇਚਰ ਖਾਲੀ ਬਾਈਟ ਸਟ੍ਰਿੰਗ ਉੱਤੇ ਗਿਣਿਆ ਜਾਂਦਾ ਹੈ। ਵੇਖੋ ਵੈੱਬਹੁੱਕ ਸਿਗਨੇਚਰਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ

ਜਵਾਬ

ਟੂਲ ਨਤੀਜੇ ਦੇ ਨਾਲ ਇੱਕ JSON ਜਵਾਬ ਵਾਪਸ ਕਰੋ:

{
  "available_slots": ["9:00 AM", "2:00 PM", "4:30 PM"],
  "timezone": "America/Los_Angeles"
}

ਜਵਾਬ ਨੂੰ ਫਾਰਮੈਟ ਕਰਕੇ ਗੱਲਬਾਤ ਜਾਰੀ ਰੱਖਣ ਲਈ AI ਨੂੰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਗੈਰ-JSON ਜਵਾਬਾਂ ਨੂੰ {"data": "<text>"} ਵਜੋਂ ਰੈਪ ਕੀਤਾ ਜਾਂਦਾ ਹੈ; ਟਾਈਮਆਉਟ ਅਤੇ ਕਨੈਕਸ਼ਨ ਅਸਫਲਤਾਵਾਂ AI ਨੂੰ ਗਲਤੀਆਂ ਵਜੋਂ ਦੱਸੀਆਂ ਜਾਂਦੀਆਂ ਹਨ, ਤਾਂ ਜੋ ਏਜੰਟ ਰੁਕਣ ਦੀ ਬਜਾਏ ਮਾਫ਼ੀ ਮੰਗ ਕੇ ਅੱਗੇ ਵਧ ਸਕੇ।

ਵੈੱਬਹੁੱਕ-ਮੋਡ ਡਿਸਪੈਚ

endpoint ਤੋਂ ਬਿਨਾਂ ਟੂਲ ਤੁਹਾਡੇ ਸੰਗਠਨ ਦੇ ਪੁਰਾਣੇ ਵੈੱਬਹੁੱਕ URL ਨੂੰ ਸਾਈਨ ਕੀਤੀ telephony.tool (ਫ਼ੋਨ ਕਾਲਾਂ) ਜਾਂ web.tool (ਵੈੱਬ ਕਾਲਾਂ) ਬੇਨਤੀ ਵਜੋਂ ਭੇਜੇ ਜਾਂਦੇ ਹਨ। ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਤੋਂ ਬਾਅਦ ਵੈੱਬਹੁੱਕ ਐਂਡਪੌਇੰਟਾਂ ਨੂੰ ਭੇਜੀਆਂ ਜਾਣ ਵਾਲੀਆਂ ਆਡਿਟ ਸੂਚਨਾਵਾਂ ਤੋਂ ਵੱਖਰਾ, ਇਹ ਬੇਨਤੀ ਹੀ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਹੈ — ਤੁਹਾਡਾ HTTP ਜਵਾਬ ਹੀ ਟੂਲ ਦਾ ਨਤੀਜਾ ਹੈ।

{
  "type": "telephony.tool",
  "data": {
    "call_id": 987654321,
    "tool_name": "search_appointments",
    "arguments": { "date": "2026-04-21" },
    "from_number": "+14155550199",
    "to_number": "+15551234567"
  }
}

web.tool ਵਿੱਚ from_number / to_number ਦੀ ਥਾਂ origin_domain ਹੁੰਦਾ ਹੈ। ਟੂਲ ਨਤੀਜਾ JSON ਵਜੋਂ ਜਵਾਬ ਵਿੱਚ ਦਿਓ — ਸਿੱਧੀਆਂ ਐਂਡਪੌਇੰਟ ਕਾਲਾਂ ਵਾਲਾ ਹੀ ਜਵਾਬ ਇਕਰਾਰਨਾਮਾ। ਬੇਨਤੀ ਨੂੰ ਹਰ ਹੋਰ ਵੈੱਬਹੁੱਕ ਵਾਂਗ, ਕੱਚੀ ਬਾਡੀ ਉੱਤੇ ਸੰਗਠਨ ਦੇ ਵੈੱਬਹੁੱਕ ਸੀਕ੍ਰੇਟ ਨਾਲ ਸਾਈਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


ਦਸਤਖਤ ਤਸਦੀਕ

ਸਿੱਧੀਆਂ ਟੂਲ ਕਾਲਾਂ ਨੂੰ webhooks ਵਾਂਗ ਹੀ ਸਾਈਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ:

  • ਬਿਲਕੁਲ ਸਹੀ ਬੇਨਤੀ-ਬਾਡੀ ਬਾਈਟਾਂ ਉੱਤੇ HMAC-SHA256 (canonical JSON — ਕ੍ਰਮਬੱਧ ਕੁੰਜੀਆਂ, ਵਾਧੂ ਖਾਲੀ ਥਾਂ ਤੋਂ ਬਿਨਾਂ)
  • ਤੁਹਾਡੇ org webhook secret ਨਾਲ ਕੁੰਜੀਬੱਧ
  • GET / DELETE ਟੂਲ ਖਾਲੀ ਬਾਈਟ ਸਤਰ ਨੂੰ ਸਾਈਨ ਕਰਦੇ ਹਨ
Python
import hmac
import hashlib
 
def verify_tool_call(body: bytes, signature: str, secret: str) -> bool:
    expected = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(expected, signature)
 
@app.post("/appointments/search")
async def search_appointments(request: Request):
    body = await request.body()
    signature = request.headers.get("X-ThunderPhone-Signature", "")
 
    if not verify_tool_call(body, signature, WEBHOOK_SECRET):
        raise HTTPException(status_code=401)
 
    data = json.loads(body)
    date = data["date"]
 
    # Look up availability
    slots = await get_available_slots(date)
 
    return {"available_slots": slots}
Node.js
app.post('/appointments/search', express.raw({type: 'application/json'}), (req, res) => {
  const signature = req.headers['x-thunderphone-signature'] || '';
  const expected = crypto
    .createHmac('sha256', WEBHOOK_SECRET)
    .update(req.body)
    .digest('hex');
 
  if (!signature ||
      signature.length !== expected.length ||
      !crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature))) {
    return res.status(401).send('Invalid signature');
  }
 
  const { date, service } = JSON.parse(req.body);
 
  // Look up availability
  const slots = getAvailableSlots(date, service);
 
  res.json({ available_slots: slots });
});

ਪੂਰੀਆਂ ਵਿਧੀਆਂ — ਖਾਲੀ-ਬਾਡੀ ਮਾਮਲੇ ਅਤੇ secret ਨਾ ਹੋਣ ਸੰਬੰਧੀ ਚੇਤਾਵਨੀ ਸਮੇਤ — webhook ਦਸਤਖਤਾਂ ਦੀ ਤਸਦੀਕ ਕਰੋ ਵਿੱਚ ਹਨ।


ਉਦਾਹਰਨ: ਪੂਰਾ ਬੁਕਿੰਗ ਫਲੋ

ਇੱਥੇ ਪੂਰੀ ਅਪਾਇੰਟਮੈਂਟ ਬੁਕਿੰਗ ਪ੍ਰਣਾਲੀ ਲਈ ਟੂਲਾਂ ਦਾ ਇੱਕ ਸੈੱਟ ਹੈ:

{
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "search_appointments",
        "description": "Find available appointment slots",
        "parameters": {
          "type": "object",
          "properties": {
            "date": { "type": "string", "description": "YYYY-MM-DD" },
            "service": { "type": "string" }
          },
          "required": ["date"]
        }
      },
      "endpoint": {
        "url": "https://api.example.com/appointments/search",
        "method": "POST",
        "headers": { "X-Api-Key": "key" }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "book_appointment",
        "description": "Book an appointment at a specific time",
        "parameters": {
          "type": "object",
          "properties": {
            "date": { "type": "string", "description": "YYYY-MM-DD" },
            "time": { "type": "string", "description": "HH:MM format" },
            "customer_name": { "type": "string" },
            "customer_phone": { "type": "string" }
          },
          "required": ["date", "time", "customer_name"]
        }
      },
      "endpoint": {
        "url": "https://api.example.com/appointments/book",
        "method": "POST",
        "headers": { "X-Api-Key": "key" }
      }
    },
    {
      "type": "function",
      "function": {
        "name": "cancel_appointment",
        "description": "Cancel an existing appointment",
        "parameters": {
          "type": "object",
          "properties": {
            "confirmation_number": { "type": "string" }
          },
          "required": ["confirmation_number"]
        }
      },
      "endpoint": {
        "url": "https://api.example.com/appointments/cancel",
        "method": "POST",
        "headers": { "X-Api-Key": "key" }
      }
    }
  ]
}

ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕੇ

ਸਪਸ਼ਟ ਵੇਰਵੇ ਲਿਖੋ

description ਫ਼ੀਲਡ AI ਨੂੰ ਇਹ ਸਮਝਣ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ ਕਿ ਟੂਲ ਨੂੰ ਕਦੋਂ ਵਰਤਣਾ ਹੈ। ਇਹ ਕੀ ਕਰਦਾ ਹੈ ਅਤੇ ਕਦੋਂ ਢੁਕਵਾਂ ਹੈ, ਇਸ ਬਾਰੇ ਸਪਸ਼ਟ ਰਹੋ।

ਗਲਤੀਆਂ ਨੂੰ ਸੁਚੱਜੇ ਢੰਗ ਨਾਲ ਸੰਭਾਲੋ

ਅਜਿਹੇ ਗਲਤੀ ਸੁਨੇਹੇ ਵਾਪਸ ਕਰੋ ਜੋ AI ਸਮਝ ਸਕੇ: ਆਮ 500 ਗਲਤੀਆਂ ਦੀ ਬਜਾਏ {"error": "No slots available for that date"}

ਜਵਾਬ ਸੰਖੇਪ ਰੱਖੋ

ਗੱਲਬਾਤ ਜਾਰੀ ਰੱਖਣ ਲਈ AI ਨੂੰ ਸਿਰਫ਼ ਉਹੀ ਵਾਪਸ ਕਰੋ ਜਿਸ ਦੀ ਲੋੜ ਹੈ। ਵੱਡੇ ਪੇਲੋਡ ਜਵਾਬ ਦੇ ਸਮੇਂ ਨੂੰ ਹੌਲਾ ਕਰ ਦਿੰਦੇ ਹਨ।

ਲਾਜ਼ਮੀ ਫ਼ੀਲਡਾਂ ਨੂੰ ਸਮਝਦਾਰੀ ਨਾਲ ਵਰਤੋ

ਫ਼ੀਲਡਾਂ ਨੂੰ required ਸਿਰਫ਼ ਤਦੋਂ ਚਿੰਨ੍ਹਿਤ ਕਰੋ ਜਦੋਂ ਉਹ ਸੱਚਮੁੱਚ ਜ਼ਰੂਰੀ ਹੋਣ। ਟੂਲ ਨੂੰ ਕਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ AI ਵਰਤੋਂਕਾਰ ਤੋਂ ਲੋੜੀਂਦੀ ਜਾਣਕਾਰੀ ਪੁੱਛੇਗਾ।


ਸੰਬੰਧਿਤ