AnythingLLM-il on REST API, millega saad automatiseerida kõike – artiklite üleslaadimist, küsimuste esitamist, tööruumide haldamist. API võtit on sul tegelikult kaks võimalust kasutada, aga kõige puhtam on luua eraldi API key.

---

## 1. API võtme hankimine

- Ava oma AnythingLLM liides (`http://100.87.1.24:3002`).
- Mine **Settings** (hammasratta ikoon) → **API Keys**.
- Vajuta **Generate New API Key**.
- Kopeeri tekkinud pikk string (näit. `sk-1234abcd...`). See ongi sinu API key.

Kui sa API võtit ei loo, võid päringutes kasutada ka oma `AUTH_TOKEN`-i (`dwNs55RkiwSEC3TxQG0P`), aga API key on turvalisem ja lubab piirata õigusi.

---

## 2. Autentimine

Kõigis API päringutes lisa päis:

```
Authorization: Bearer AYKT87V-TYFMEYX-KG1411R-MYEYQ2Q
Content-Type: application/json
```

Kui kasutad `AUTH_TOKEN`-i, siis päis on sama, aga võtme asemel on token.

---

## 3. Kõige olulisemad endpoint'id

Allpool on toodud põhilised käsud sinu seadistuse põhjal (pordiks on `3002`, kui kasutad compose-failis määratud porti).

### a) Tööruumide nimekiri ja info

```bash
# Kõik tööruumid
curl -H "Authorization: Bearer AYKT87V-TYFMEYX-KG1411R-MYEYQ2Q" \
     http://100.87.1.24:3002/api/v1/workspaces

# Konkreetse tööruumi detailid (asenda liiklussagedus nimega, nt "liiklussagedus")
curl -H "Authorization: Bearer AYKT87V-TYFMEYX-KG1411R-MYEYQ2Q" \
     http://100.87.1.24:3002/api/v1/workspace/liiklussagedus
```

### b) Dokumendi lisamine (URL või fail)

Tööruumi slug'i leiad eelmisest vastusest.

```bash
# Lisa veebileht või PDF URL
curl -X POST \
     -H "Authorization: Bearer AYKT87V-TYFMEYX-KG1411R-MYEYQ2Q" \
     -H "Content-Type: application/json" \
     -d '{"url":"https://arxiv.org/pdf/xxxx.xxxxx.pdf"}' \
     http://100.87.1.24:3002/api/v1/workspace/liiklussagedus/document/upload-url

# Lisa kohalik fail (Markdown või PDF)
curl -X POST \
     -H "Authorization: Bearer AYKT87V-TYFMEYX-KG1411R-MYEYQ2Q" \
     -F "file=@/path/to/artikkel.md" \
     http://100.87.1.24:3002/api/v1/workspace/liiklussagedus/document/upload
```

### c) Küsimuse esitamine (RAG-päring)

```bash
curl -X POST \
     -H "Authorization: Bearer AYKT87V-TYFMEYX-KG1411R-MYEYQ2Q" \
     -H "Content-Type: application/json" \
     -d '{"message":"Kokkuvõte liiklussageduse mõõtmismeetoditest", "mode":"chat"}' \
     http://100.87.1.24:3002/api/v1/workspace/liiklussagedus/chat
```

Vastuses on `textResponse` ja `sources` (viited allikatele).

### d) Küsimus ilma tööruumita (ainult LLM, ilma RAG-ita)

```bash
curl -X POST \
     -H "Authorization: Bearer AYKT87V-TYFMEYX-KG1411R-MYEYQ2Q" \
     -H "Content-Type: application/json" \
     -d '{"message":"What is traffic frequency?", "mode":"chat"}' \
     http://100.87.1.24:3002/api/v1/chat
```

---

## 4. Kiirtest oma seadistusega

Kuna sul on juba `AUTH_TOKEN`, proovi kohe (asenda `WORKSPACE_SLUG` oma tööruumi nimega):

```bash
curl -X GET \
     -H "Authorization: Bearer dwNs55RkiwSEC3TxQG0P" \
     http://100.87.1.24:3002/api/v1/workspaces
```

Kui see tagastab JSON-i tööruumide nimekirjaga, on API töökorras.

---

## 5. Automatiseerimine Pythoniga

Teadustöö jaoks on mugav kirjutada väike Pythoni skript, mis loeb kataloogist kõik `.md` failid ja saadab need API kaudu tööruumi. Saan sulle sellise skripti kavandi anda, kui oled API võtme valmis saanud.

Kas loome API võtme ja teeme esimese testpäringu?


### Seotud mõisted
[[Qdrant]]