> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chattler.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Արագ մեկնարկ

> Ուղարկեք ձեր առաջին հաղորդագրությունը գործակալին և կարդացեք պատասխանը:

Ձեզ անհրաժեշտ են գործակալի նույնացուցիչ և `full` թույլտվությամբ բանալի (տե՛ս [Ստացեք ձեր API բանալին](/am/get-started/api-key)): Բոլոր օրինակները դրանք կարդում են երեք միջավայրի փոփոխականներից.

```bash theme={null}
export CHATTLER_BASE_URL="https://api.chattler.ai"
export CHATTLER_AGENT_ID="<your agent id>"
export CHATTLER_API_KEY="cht_live_<key_id>.<secret>"
```

## Ուղարկել հաղորդագրություն

`POST /v1/agents/{agent_id}/chat`-ն ուղարկում է օգտատիրոջ մեկ հաղորդագրություն և սպասում պատասխանին: `Content-Type`-ից բացի կարևոր են երկու վերնագիր.

* `Authorization: Bearer <key>`
* `Idempotency-Key`՝ ցանկացած եզակի արժեք 1-255 նիշ երկարությամբ՝ յուրաքանչյուր տրամաբանական հարցման համար: UUID-ն լավ ընտրություն է: Այն **պարտադիր** է երկու չատ-էնդփոինթների վրա; տե՛ս [Իդեմպոտենտություն](/am/guides/idempotency):

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST "$CHATTLER_BASE_URL/v1/agents/$CHATTLER_AGENT_ID/chat" \
    -H "Authorization: Bearer $CHATTLER_API_KEY" \
    -H "Idempotency-Key: $(uuidgen)" \
    -H "Content-Type: application/json" \
    -d '{"external_user_id": "customer-123", "message": "I want to know the price"}'
  ```

  ```python Python theme={null}
  import os
  import uuid

  import httpx

  BASE_URL = os.environ["CHATTLER_BASE_URL"]
  AGENT_ID = os.environ["CHATTLER_AGENT_ID"]
  HEADERS = {"Authorization": f"Bearer {os.environ['CHATTLER_API_KEY']}"}


  def chat(external_user_id: str, message: str) -> dict:
      response = httpx.post(
          f"{BASE_URL}/v1/agents/{AGENT_ID}/chat",
          headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
          json={"external_user_id": external_user_id, "message": message},
          timeout=120,
      )
      if response.status_code >= 400:
          error = response.json()["error"]
          raise RuntimeError(f"{error['code']}: {error['message']} ({error['request_id']})")
      return response.json()


  print(chat("customer-123", "I want to know the price")["message"]["content"])
  ```

  ```javascript Node theme={null}
  const baseUrl = process.env.CHATTLER_BASE_URL;
  const agentId = process.env.CHATTLER_AGENT_ID;
  const apiKey = process.env.CHATTLER_API_KEY;

  async function chat(externalUserId, message) {
    const response = await fetch(`${baseUrl}/v1/agents/${agentId}/chat`, {
      method: "POST",
      headers: {
        Authorization: `Bearer ${apiKey}`,
        "Idempotency-Key": crypto.randomUUID(),
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ external_user_id: externalUserId, message }),
    });
    const body = await response.json();
    if (!response.ok) {
      throw new Error(`${body.error.code}: ${body.error.message} (${body.error.request_id})`);
    }
    return body;
  }

  const reply = await chat("customer-123", "I want to know the price");
  console.log(reply.message.content);
  ```
</CodeGroup>

## Կարդալ պատասխանը

```json theme={null}
{
  "request_id": "7f20a5f0-5dde-48cf-94aa-38acbbd218e0",
  "conversation_id": "1c2e...",
  "message": {
    "id": "66e0...",
    "role": "assistant",
    "content": "...",
    "created_at": "2026-09-13T12:00:00Z"
  },
  "usage": {
    "prompt_tokens": 120,
    "completion_tokens": 45,
    "total_tokens": 165,
    "charged_usd": "0.00123400"
  }
}
```

* `request_id`-ը վերադարձվում է նաև որպես `X-Request-ID` վերնագիր:
* `conversation_id`-ը այն խոսակցությունն է, որում պահվել է փոխանակումը: Ուղարկեք ևս մեկ հաղորդագրություն նույն `external_user_id`-ով, և այն կշարունակվի այնտեղ:
* `usage.charged_usd`-ը 8 տասնորդական նիշով տող է. այն, ինչ այս հարցումն արժեցել է սեփականատիրոջ հաշվեկշռին:

<Tip>
  Պատասխանը կարող է տևել, երբ գործակալն օգտագործում է գործիքներ կամ մեծ գիտելիքների բազա: Հարցմանը տվեք առատ սպասման ժամանակ (օրինակներն օգտագործում են 120 վայրկյան) կամ օգտագործեք [հոսքային էնդփոինթը](/am/guides/streaming)՝ տեքստը ցուցադրելու համար այն պահին, երբ այն ստեղծվում է:
</Tip>

## Շարունակել խոսակցությունը

Ուղարկեք երկրորդ հաղորդագրություն նույն `external_user_id`-ով և **նոր** `Idempotency-Key`-ով.

```bash theme={null}
curl -X POST "$CHATTLER_BASE_URL/v1/agents/$CHATTLER_AGENT_ID/chat" \
  -H "Authorization: Bearer $CHATTLER_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"external_user_id": "customer-123", "message": "And is delivery included?"}'
```

Գործակալը նախորդ փոխանակումը տեսնում է որպես պատմություն: Հաղորդագրություն ուղարկելն այն արտաքին օգտատիրոջ համար, որի նախորդ պատասխանը դեռ ստեղծվում է, վերադարձնում է `409 conversation_busy`՝ `Retry-After: 2`-ով; սպասեք և կրկնեք:

## Հաջորդ քայլեր

<CardGroup cols={2}>
  <Card title="Հոսքային պատասխան" icon="bolt" href="/am/guides/streaming">
    Ցուցադրեք պատասխանն այն պահին, երբ այն ստեղծվում է:
  </Card>

  <Card title="Խոսակցություններ" icon="comments" href="/am/guides/conversations">
    Ստացեք խոսակցությունների ցանկը և էջ առ էջ կարդացեք հաղորդագրությունները:
  </Card>

  <Card title="Սխալներ" icon="triangle-exclamation" href="/am/guides/errors">
    Յուրաքանչյուր կոդ, որ API-ն կարող է վերադարձնել, և ինչ անել դրա հետ:
  </Card>

  <Card title="API տեղեկատու" icon="book" href="/am/api-reference/introduction">
    Հարցման և պատասխանի ամբողջական սխեմաներ՝ խաղահրապարակով:
  </Card>
</CardGroup>
