Source: https://ailoot.ai/models/el/happyhorse-1-1-i2v/
Canonical: https://ailoot.ai/models/el/happyhorse-1-1-i2v/
Language: el

# happyhorse-1.1-i2v

[Markdown](https://ailoot.ai/models/el/happyhorse-1-1-i2v/index.md) · [JSON](https://ailoot.ai/models/el/happyhorse-1-1-i2v/facts.json)

## [happyhorse-1.1-i2v](https://ailoot.ai/models/el/happyhorse-1-1-i2v/)

Μοντέλο που δίνει κίνηση σε μια εικόνα: η αρχική εικόνα ορίζει το πρώτο καρέ και η περιγραφή καθοδηγεί την κίνηση που ακολουθεί. Δημιουργεί ένα σύντομο βίντεο με δυνατότητα ηχητικής συνοδείας.

- [**Ailoot · Βίντεο** `POST /v1/videos/generations` `happyhorse-1.1-i2v`](https://ailoot.ai/models/el/happyhorse-1-1-i2v/#method-0)
- [**Ailoot · Βίντεο** `POST /v1/videos/generations` `happyhorse-i2v`](https://ailoot.ai/models/el/happyhorse-1-1-i2v/#method-1)
- [**Ailoot · Βίντεο** `POST /v1/videos/generations` `happyhorse-i2v-latest`](https://ailoot.ai/models/el/happyhorse-1-1-i2v/#method-2)

Σχετικά με το μοντέλο

Αυτή η περιγραφή καλύπτει τις δυνατότητες του μοντέλου. Οι είσοδοι, έξοδοι και επιλογές που διατίθενται στο Ailoot παρατίθενται παρακάτω για την επιλεγμένη μέθοδο.

Το HappyHorse-1.1-I2V είναι μοντέλο της Alibaba που ξεκινά μια σκηνή βίντεο από μια έτοιμη εικόνα. Η εικόνα γίνεται το πρώτο καρέ, ενώ το κείμενο μπορεί να καθορίσει τη δράση που ακολουθεί: την κίνηση του χαρακτήρα, τις αλλαγές στη σκηνή και την κατεύθυνση της κάμερας. Είναι κατάλληλο για να δώσετε κίνηση σε μια εικονογράφηση, σε μια φωτογραφία αντικειμένου ή σε μια ήδη προετοιμασμένη οπτική ιδέα.

Η περιγραφή κειμένου είναι προαιρετική. Αν λείπει, το μοντέλο συμπεραίνει μόνο του μια πιθανή κίνηση από το περιεχόμενο της αρχικής εικόνας. Αν δοθεί ρητή περιγραφή, η αρχική εικόνα καθορίζει τη σύνθεση και την εμφάνιση των αντικειμένων, ενώ οι λέξεις καθοδηγούν την εξέλιξη της σκηνής στον χρόνο.

#### Από το πρώτο καρέ στην κίνηση

Η Alibaba δίνει έμφαση στη διατήρηση της εμφάνισης του χαρακτήρα, στην οπτική συνέπεια, στην ομαλή κίνηση και στον συνδυασμό εικόνας και ήχου. Στις δηλωμένες επιδιώξεις περιλαμβάνεται επίσης η σταθερότητα των επιγραφών και των υφών. Αυτές οι ιδιότητες αφορούν τον σχεδιασμό του μοντέλου και δεν σημαίνουν κυριολεκτική διατήρηση κάθε pixel σε όλα τα καρέ που δημιουργούνται.

Σε αυτή τη λειτουργία χρησιμοποιείται μία αρχική εικόνα. Ορίζει την αρχική σκηνή και δεν αποτελεί σύνολο ανεξάρτητων δειγμάτων για νέα σύνθεση. Δεν έχει δηλωθεί δυνατότητα ορισμού ξεχωριστού τελευταίου καρέ για τη συγκεκριμένη έκδοση.

Γίνονται δεκτά JPEG, JPG, PNG και WEBP. Κάθε πλευρά της εικόνας εισόδου πρέπει να έχει τουλάχιστον 300 pixel· ο επιτρεπόμενος λόγος διαστάσεων κυμαίνεται από 1:2,5 έως 2,5:1 και το μέγεθος του αρχείου φτάνει έως 20 MB. Ο λόγος διαστάσεων του τελικού βίντεο ακολουθεί το πρώτο καρέ.

#### Παράμετροι του βίντεο

Η διάρκεια επιλέγεται ως ακέραιος αριθμός από 3 έως 15 δευτερόλεπτα. Διατίθενται αναλύσεις 480P, 720P και 1080P· η μορφή εξόδου είναι MP4 και ο ρυθμός καρέ είναι 24 ανά δευτερόλεπτο. Υποστηρίζεται η δημιουργία ηχητικής συνοδείας μαζί με το βίντεο.

Η περιγραφή μπορεί να είναι σε οποιαδήποτε γλώσσα και να περιλαμβάνει έως 5000 μη κινεζικούς ή 2500 κινεζικούς χαρακτήρες. Αν ξεπεραστεί το όριο, το επιπλέον τμήμα απορρίπτεται, γι’ αυτό οι βασικές ενέργειες και τα χαρακτηριστικά της κίνησης πρέπει να διατυπώνονται μέσα στα όρια του αιτήματος. Η ίδια αρχική τιμή τυχαιότητας μπορεί να δώσει παρόμοια βίντεο, αλλά δεν εγγυάται ταύτιση καρέ προς καρέ.

**Ailoot · Βίντεο** `POST /v1/videos/generations` `happyhorse-1.1-i2v`

[`happyhorse-1.1-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-1.1-i2v&fmt=videos)

Alibaba /`happyhorse-1.1-i2v`

ID μοντέλου

- `happyhorse-1.1-i2v`
- `happyhorse-i2v`
- `happyhorse-i2v-latest`

### Εισαγωγή

Μοντέλο που δίνει κίνηση σε μια εικόνα: η αρχική εικόνα ορίζει το πρώτο καρέ και η περιγραφή καθοδηγεί την κίνηση που ακολουθεί. Δημιουργεί ένα σύντομο βίντεο με δυνατότητα ηχητικής συνοδείας.

Αποδεκτές είσοδοι

Κείμενο · Εικόνες

Αποτελέσματα

Βίντεο

### Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

**Ailoot · Βίντεο** `POST /v1/videos/generations`

Είσοδος

`text`, `image`

Έξοδος

`video`

Μορφή εξόδου

mp4

| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
| --- | --- | --- | --- | --- |
| Πεδίο`model` | Τύπος`string` | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια happyhorse-1.1-i2v | Προεπιλογή— |
| Πεδίο`prompt` | Τύπος`string` | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο μήκος: 1 | Προεπιλογή— |
| Πεδίο`duration` | Τύπος`integer` | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο: 3 Μέγιστο: 15 Μονάδα: δευτερόλεπτα | Προεπιλογή5 |
| Πεδίο`resolution` | Τύπος`string` | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 480P, 720P, 1080P | Προεπιλογή720P |
| Πεδίο`ratio` | Τύπος`string` | ΑπαίτησηΔεν υποστηρίζεται | Τιμές και όρια | Προεπιλογή— |
| Πεδίο`image_urls` | Τύπος`https_url\|data_image_url[]` | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια Ελάχιστο πλήθος στοιχείων: 1 Μέγιστο πλήθος στοιχείων: 1 Μέγιστο πλήθος αποκωδικοποιημένων byte: 20.971.520 Τύποι MIME: image/jpeg, image/png, image/webp | Προεπιλογή— |

Συνδυασμοί υλικών εισόδου

**first\_frame\_to\_video** · Υποχρεωτικό: image\_urls

Παράμετροι και κύκλος ζωής μεθόδου

| Παράμετρος | Σύμβαση |
| --- | --- |
| Παράμετρος`content_type` | Σύμβασηapplication/json |
| Παράμετρος`required` | Σύμβασηmodel, image\_urls |
| Παράμετρος`material_types` | Σύμβασηtext, image |
| Παράμετρος`optional` | Σύμβασηduration, resolution, ratio, prompt |
| Παράμετρος`duration_integer_range` | Σύμβαση3, 15 |
| Παράμετρος`default_duration` | Σύμβαση5 |
| Παράμετρος`resolution` | Σύμβαση480P, 720P, 1080P |
| Παράμετρος`default_resolution` | Σύμβαση720P |
| Παράμετρος`ratio` | Σύμβαση |
| Παράμετρος`ratio_must_omit` | Σύμβασηtrue |
| Παράμετρος`image_urls` | Σύμβαση{"min\_count":1,"max\_count":1,"schemes":\["https","δεδομένα εικόνας raster σε base64"\],"max\_data\_image\_bytes":20971520} |

Κύκλος ζωής: `submit_once_poll_original`

`GET /v1/videos/{request_id}`

`GET /v1/videos/generations/{request_id}`

`GET /v1/videos/{request_id}/content`

`GET /v1/videos/generations/{request_id}/content`

Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων.

### Τιμολόγηση

#### Χρεώσεις μεθόδων Ailoot

Έξοδος

0,18 $ *ανά δευτερόλεπτο στα 1080p*

Έξοδος

0,07 $ *ανά δευτερόλεπτο στα 480p*

Έξοδος

0,14 $ *ανά δευτερόλεπτο στα 720p*

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. [Πώς λειτουργούν η δέσμευση και η εκκαθάριση →](https://ailoot.ai/docs/el/billing/reserve/)

### Παραδείγματα αιτημάτων

#### Ailoot · Βίντεο

Εικόνα αναφοράς

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the HTTPS URL of your actual first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-i2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Set the actual HTTPS image URL")
p["image_urls"]=[u]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT
```

### Λήψη και αποθήκευση αποτελεσμάτων

#### Ailoot · Βίντεο

mp4

- `GET /v1/videos/{request_id}`
- `GET /v1/videos/generations/{request_id}`
- `GET /v1/videos/{request_id}/content`
- `GET /v1/videos/generations/{request_id}/content`

##### Έλεγχος κατάστασης εργασίας

Λήψη κατάστασης με GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
```

##### Αποθηκεύστε όλα τα ολοκληρωμένα αρχεία

Λήψη όλων των ολοκληρωμένων αρχείων με GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
```

Άλλες ανακτήσεις περιεχομένου

Λήψη περιεχομένου με GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
```

##### Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα

Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.

Διατηρήστε κάθε στοιχείο δεδομένων και δείκτη εξόδου που επιστρέφεται. Το content\_url αφορά μόνο το πρώτο· ανακτήστε κάθε πραγματική διαδρομή περιεχομένου ή αρχείο πολυμέσων. Το GET περιεχομένου χωρίς index δεν αντιστοιχεί σε όλες τις εξόδους.

##### Αν χρειάζεται έλεγχος της αρχικής απάντησης

Διαβάστε την υπάρχουσα αρχική εργασία· μην επανυποβάλετε ποτέ αποστολή με άγνωστο αποτέλεσμα.

Πεδία απάντησης

| Πεδίο | Τύπος |
| --- | --- |
| Πεδίο`id` | Τύποςstring |
| Πεδίο`object` | Τύποςstring |
| Πεδίο`model` | Τύποςstring |
| Πεδίο`status` | Τύποςstring |
| Πεδίο`content_url` | Τύποςsigned URL |
| Πεδίο`data[]` | Τύποςsigned URL |
| Πεδίο`usage` | Τύποςobject |
| Πεδίο`result_pending_check` | Τύποςboolean |

Σφάλματα και επόμενα βήματα

| Απάντηση | Συνθήκη | Επόμενο βήμα |
| --- | --- | --- |
| Απάντηση400 · `invalid_request_error` | ΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου | Επόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας. |
| Απάντηση409 · `video_not_ready` | ΣυνθήκηΤο περιεχόμενο του αρχικού αποτελέσματος δεν είναι ακόμη διαθέσιμο | Επόμενο βήμαΕλέγχετε περιοδικά το αρχικό ID που επιστρέφεται και τηρείτε το Retry-After. |
| Απάντηση`server_error` | ΣυνθήκηΗ απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο | Επόμενο βήμαΔιατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας. |

### Εναλλακτικά ονόματα

#### Εναλλακτικά ονόματα μοντέλου

**Ailoot** [`happyhorse-1.1-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-1.1-i2v&fmt=videos), [`happyhorse-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v&fmt=videos), [`happyhorse-i2v-latest`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v-latest&fmt=videos)

#### Εναλλακτικές διαδρομές μεθόδων

Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.

#### Σχετικά ID μοντέλων

[`happyhorse-1.1-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-1.1-i2v&fmt=videos), [`happyhorse-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v&fmt=videos), [`happyhorse-i2v-latest`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v-latest&fmt=videos)

**Ailoot · Βίντεο** `POST /v1/videos/generations` `happyhorse-i2v`

[`happyhorse-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v&fmt=videos)

Alibaba /`happyhorse-i2v`

ID μοντέλου

- `happyhorse-1.1-i2v`
- `happyhorse-i2v`
- `happyhorse-i2v-latest`

### Εισαγωγή

Μοντέλο που δίνει κίνηση σε μια εικόνα: η αρχική εικόνα ορίζει το πρώτο καρέ και η περιγραφή καθοδηγεί την κίνηση που ακολουθεί. Δημιουργεί ένα σύντομο βίντεο με δυνατότητα ηχητικής συνοδείας.

Αποδεκτές είσοδοι

Κείμενο · Εικόνες

Αποτελέσματα

Βίντεο

### Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

**Ailoot · Βίντεο** `POST /v1/videos/generations`

Είσοδος

`text`, `image`

Έξοδος

`video`

Μορφή εξόδου

mp4

| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
| --- | --- | --- | --- | --- |
| Πεδίο`model` | Τύπος`string` | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια happyhorse-i2v | Προεπιλογή— |
| Πεδίο`prompt` | Τύπος`string` | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο μήκος: 1 | Προεπιλογή— |
| Πεδίο`duration` | Τύπος`integer` | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο: 3 Μέγιστο: 15 Μονάδα: δευτερόλεπτα | Προεπιλογή5 |
| Πεδίο`resolution` | Τύπος`string` | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 480P, 720P, 1080P | Προεπιλογή720P |
| Πεδίο`ratio` | Τύπος`string` | ΑπαίτησηΔεν υποστηρίζεται | Τιμές και όρια | Προεπιλογή— |
| Πεδίο`image_urls` | Τύπος`https_url\|data_image_url[]` | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια Ελάχιστο πλήθος στοιχείων: 1 Μέγιστο πλήθος στοιχείων: 1 Μέγιστο πλήθος αποκωδικοποιημένων byte: 20.971.520 Τύποι MIME: image/jpeg, image/png, image/webp | Προεπιλογή— |

Συνδυασμοί υλικών εισόδου

**first\_frame\_to\_video** · Υποχρεωτικό: image\_urls

Παράμετροι και κύκλος ζωής μεθόδου

| Παράμετρος | Σύμβαση |
| --- | --- |
| Παράμετρος`material_types` | Σύμβασηtext, image |
| Παράμετρος`required` | Σύμβασηnull |
| Παράμετρος`optional_controls` | Σύμβασηnull |

Κύκλος ζωής: `submit_once_poll_original`

`GET /v1/videos/{request_id}`

`GET /v1/videos/generations/{request_id}`

`GET /v1/videos/{request_id}/content`

`GET /v1/videos/generations/{request_id}/content`

Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων.

### Τιμολόγηση

#### Χρεώσεις μεθόδων Ailoot

Έξοδος

0,18 $ *ανά δευτερόλεπτο στα 1080p*

Έξοδος

0,07 $ *ανά δευτερόλεπτο στα 480p*

Έξοδος

0,14 $ *ανά δευτερόλεπτο στα 720p*

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. [Πώς λειτουργούν η δέσμευση και η εκκαθάριση →](https://ailoot.ai/docs/el/billing/reserve/)

### Παραδείγματα αιτημάτων

#### Ailoot · Βίντεο

Εικόνα αναφοράς

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the HTTPS URL of your actual first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-i2v", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Set the actual HTTPS image URL")
p["image_urls"]=[u]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT
```

### Λήψη και αποθήκευση αποτελεσμάτων

#### Ailoot · Βίντεο

mp4

- `GET /v1/videos/{request_id}`
- `GET /v1/videos/generations/{request_id}`
- `GET /v1/videos/{request_id}/content`
- `GET /v1/videos/generations/{request_id}/content`

##### Έλεγχος κατάστασης εργασίας

Λήψη κατάστασης με GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
```

##### Αποθηκεύστε όλα τα ολοκληρωμένα αρχεία

Λήψη όλων των ολοκληρωμένων αρχείων με GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
```

Άλλες ανακτήσεις περιεχομένου

Λήψη περιεχομένου με GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
```

##### Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα

Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.

Διατηρήστε κάθε στοιχείο δεδομένων και δείκτη εξόδου που επιστρέφεται. Το content\_url αφορά μόνο το πρώτο· ανακτήστε κάθε πραγματική διαδρομή περιεχομένου ή αρχείο πολυμέσων. Το GET περιεχομένου χωρίς index δεν αντιστοιχεί σε όλες τις εξόδους.

##### Αν χρειάζεται έλεγχος της αρχικής απάντησης

Διαβάστε την υπάρχουσα αρχική εργασία· μην επανυποβάλετε ποτέ αποστολή με άγνωστο αποτέλεσμα.

Πεδία απάντησης

| Πεδίο | Τύπος |
| --- | --- |
| Πεδίο`id` | Τύποςstring |
| Πεδίο`object` | Τύποςstring |
| Πεδίο`model` | Τύποςstring |
| Πεδίο`status` | Τύποςstring |
| Πεδίο`content_url` | Τύποςsigned URL |
| Πεδίο`data[]` | Τύποςsigned URL |
| Πεδίο`usage` | Τύποςobject |
| Πεδίο`result_pending_check` | Τύποςboolean |

Σφάλματα και επόμενα βήματα

| Απάντηση | Συνθήκη | Επόμενο βήμα |
| --- | --- | --- |
| Απάντηση400 · `invalid_request_error` | ΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου | Επόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας. |
| Απάντηση409 · `video_not_ready` | ΣυνθήκηΤο περιεχόμενο του αρχικού αποτελέσματος δεν είναι ακόμη διαθέσιμο | Επόμενο βήμαΕλέγχετε περιοδικά το αρχικό ID που επιστρέφεται και τηρείτε το Retry-After. |
| Απάντηση`server_error` | ΣυνθήκηΗ απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο | Επόμενο βήμαΔιατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας. |

### Εναλλακτικά ονόματα

#### Εναλλακτικά ονόματα μοντέλου

**Ailoot** [`happyhorse-1.1-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-1.1-i2v&fmt=videos), [`happyhorse-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v&fmt=videos), [`happyhorse-i2v-latest`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v-latest&fmt=videos)

#### Εναλλακτικές διαδρομές μεθόδων

Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.

#### Σχετικά ID μοντέλων

[`happyhorse-1.1-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-1.1-i2v&fmt=videos), [`happyhorse-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v&fmt=videos), [`happyhorse-i2v-latest`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v-latest&fmt=videos)

**Ailoot · Βίντεο** `POST /v1/videos/generations` `happyhorse-i2v-latest`

[`happyhorse-i2v-latest`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v-latest&fmt=videos)

Alibaba /`happyhorse-i2v-latest`

ID μοντέλου

- `happyhorse-1.1-i2v`
- `happyhorse-i2v`
- `happyhorse-i2v-latest`

### Εισαγωγή

Μοντέλο που δίνει κίνηση σε μια εικόνα: η αρχική εικόνα ορίζει το πρώτο καρέ και η περιγραφή καθοδηγεί την κίνηση που ακολουθεί. Δημιουργεί ένα σύντομο βίντεο με δυνατότητα ηχητικής συνοδείας.

Αποδεκτές είσοδοι

Κείμενο · Εικόνες

Αποτελέσματα

Βίντεο

### Διαθέσιμα στο Ailoot · είσοδοι και μέθοδοι

**Ailoot · Βίντεο** `POST /v1/videos/generations`

Είσοδος

`text`, `image`

Έξοδος

`video`

Μορφή εξόδου

mp4

| Πεδίο | Τύπος | Απαίτηση | Τιμές και όρια | Προεπιλογή |
| --- | --- | --- | --- | --- |
| Πεδίο`model` | Τύπος`string` | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια happyhorse-i2v-latest | Προεπιλογή— |
| Πεδίο`prompt` | Τύπος`string` | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο μήκος: 1 | Προεπιλογή— |
| Πεδίο`duration` | Τύπος`integer` | ΑπαίτησηΠροαιρετικό | Τιμές και όρια Ελάχιστο: 3 Μέγιστο: 15 Μονάδα: δευτερόλεπτα | Προεπιλογή5 |
| Πεδίο`resolution` | Τύπος`string` | ΑπαίτησηΠροαιρετικό | Τιμές και όρια 480P, 720P, 1080P | Προεπιλογή720P |
| Πεδίο`ratio` | Τύπος`string` | ΑπαίτησηΔεν υποστηρίζεται | Τιμές και όρια | Προεπιλογή— |
| Πεδίο`image_urls` | Τύπος`https_url\|data_image_url[]` | ΑπαίτησηΥποχρεωτικό | Τιμές και όρια Ελάχιστο πλήθος στοιχείων: 1 Μέγιστο πλήθος στοιχείων: 1 Μέγιστο πλήθος αποκωδικοποιημένων byte: 20.971.520 Τύποι MIME: image/jpeg, image/png, image/webp | Προεπιλογή— |

Συνδυασμοί υλικών εισόδου

**first\_frame\_to\_video** · Υποχρεωτικό: image\_urls

Παράμετροι και κύκλος ζωής μεθόδου

| Παράμετρος | Σύμβαση |
| --- | --- |
| Παράμετρος`material_types` | Σύμβασηtext, image |
| Παράμετρος`required` | Σύμβασηnull |
| Παράμετρος`optional_controls` | Σύμβασηnull |

Κύκλος ζωής: `submit_once_poll_original`

`GET /v1/videos/{request_id}`

`GET /v1/videos/generations/{request_id}`

`GET /v1/videos/{request_id}/content`

`GET /v1/videos/generations/{request_id}/content`

Οι δομές και τα ID των μεθόδων είναι ακριβή· η δυνατότητα του προμηθευτή είναι ξεχωριστή από την αποδοχή αιτημάτων.

### Τιμολόγηση

#### Χρεώσεις μεθόδων Ailoot

Έξοδος

0,18 $ *ανά δευτερόλεπτο στα 1080p*

Έξοδος

0,07 $ *ανά δευτερόλεπτο στα 480p*

Έξοδος

0,14 $ *ανά δευτερόλεπτο στα 720p*

Το Ailoot δεσμεύει ένα εκτιμώμενο ποσό πριν από το αίτημα. Μετά το αποτέλεσμα, εκκαθαρίζει την τελική χρέωση βάσει της μετρημένης χρήσης. Η εκκαθάριση ροής χρησιμοποιεί την τελική καταγραφή χρήσης. [Πώς λειτουργούν η δέσμευση και η εκκαθάριση →](https://ailoot.ai/docs/el/billing/reserve/)

### Παραδείγματα αιτημάτων

#### Ailoot · Βίντεο

Εικόνα αναφοράς

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_URL:?Set the HTTPS URL of your actual first-frame image}"
export AILOOT_IMAGE_URL
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-i2v-latest", "prompt": "The subject walks slowly toward the camera.", "duration": 5, "resolution": "720P"}')
from urllib.parse import urlsplit
u=os.environ["AILOOT_IMAGE_URL"]
z=urlsplit(u)
if z.scheme!="https" or not z.netloc or z.username or z.password:raise SystemExit("Set the actual HTTPS image URL")
p["image_urls"]=[u]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
print(json.dumps(r))
PY_RESULT
```

### Λήψη και αποθήκευση αποτελεσμάτων

#### Ailoot · Βίντεο

mp4

- `GET /v1/videos/{request_id}`
- `GET /v1/videos/generations/{request_id}`
- `GET /v1/videos/{request_id}/content`
- `GET /v1/videos/generations/{request_id}/content`

##### Έλεγχος κατάστασης εργασίας

Λήψη κατάστασης με GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
```

##### Αποθηκεύστε όλα τα ολοκληρωμένα αρχεία

Λήψη όλων των ολοκληρωμένων αρχείων με GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
```

Άλλες ανακτήσεις περιεχομένου

Λήψη περιεχομένου με GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
```

##### Διατηρήστε όλα τα ολοκληρωμένα αποτελέσματα

Αποθηκεύστε κάθε ολοκληρωμένο βίντεο ή αρχείο που επιστρέφεται· ανακτήστε κάθε πραγματικό URL αρχείου που επιστρέφεται.

Διατηρήστε κάθε στοιχείο δεδομένων και δείκτη εξόδου που επιστρέφεται. Το content\_url αφορά μόνο το πρώτο· ανακτήστε κάθε πραγματική διαδρομή περιεχομένου ή αρχείο πολυμέσων. Το GET περιεχομένου χωρίς index δεν αντιστοιχεί σε όλες τις εξόδους.

##### Αν χρειάζεται έλεγχος της αρχικής απάντησης

Διαβάστε την υπάρχουσα αρχική εργασία· μην επανυποβάλετε ποτέ αποστολή με άγνωστο αποτέλεσμα.

Πεδία απάντησης

| Πεδίο | Τύπος |
| --- | --- |
| Πεδίο`id` | Τύποςstring |
| Πεδίο`object` | Τύποςstring |
| Πεδίο`model` | Τύποςstring |
| Πεδίο`status` | Τύποςstring |
| Πεδίο`content_url` | Τύποςsigned URL |
| Πεδίο`data[]` | Τύποςsigned URL |
| Πεδίο`usage` | Τύποςobject |
| Πεδίο`result_pending_check` | Τύποςboolean |

Σφάλματα και επόμενα βήματα

| Απάντηση | Συνθήκη | Επόμενο βήμα |
| --- | --- | --- |
| Απάντηση400 · `invalid_request_error` | ΣυνθήκηΜη έγκυρα υποχρεωτικά πεδία, μη έγκυρη αναπαράσταση υλικού ή μη έγκυρη τιμή παραμέτρου | Επόμενο βήμαΔιορθώστε τα υποδεικνυόμενα πεδία πριν από νέο αίτημα δημιουργίας. |
| Απάντηση409 · `video_not_ready` | ΣυνθήκηΤο περιεχόμενο του αρχικού αποτελέσματος δεν είναι ακόμη διαθέσιμο | Επόμενο βήμαΕλέγχετε περιοδικά το αρχικό ID που επιστρέφεται και τηρείτε το Retry-After. |
| Απάντηση`server_error` | ΣυνθήκηΗ απόκριση που επιστράφηκε αναφέρει ότι η λειτουργία ή το αποτέλεσμα χρειάζεται έλεγχο | Επόμενο βήμαΔιατηρήστε το αρχικό ID της λειτουργίας/εργασίας που επιστράφηκε, τις κεφαλίδες του αιτήματος και την απόκριση· συνεχίστε με τις υποστηριζόμενες αναγνώσεις αυτής της αρχικής λειτουργίας. Μην υποβάλετε ξανά το αίτημα δημιουργίας. |

### Εναλλακτικά ονόματα

#### Εναλλακτικά ονόματα μοντέλου

**Ailoot** [`happyhorse-1.1-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-1.1-i2v&fmt=videos), [`happyhorse-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v&fmt=videos), [`happyhorse-i2v-latest`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v-latest&fmt=videos)

#### Εναλλακτικές διαδρομές μεθόδων

Χρησιμοποιήστε τις διαδρομές μεθόδων που εμφανίζονται παραπάνω.

#### Σχετικά ID μοντέλων

[`happyhorse-1.1-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-1.1-i2v&fmt=videos), [`happyhorse-i2v`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v&fmt=videos), [`happyhorse-i2v-latest`](https://ailoot.ai/models/el/#m=happyhorse-1.1-i2v&route=Core&caller=happyhorse-i2v-latest&fmt=videos)

FAQ · happyhorse-1.1-i2v

Ποιες είσοδοι και αποτελέσματα διατίθενται;

`POST /v1/videos/generations` · `happyhorse-1.1-i2v`: `text`, `image` → `video` `POST /v1/videos/generations` · `happyhorse-i2v`: `text`, `image` → `video` `POST /v1/videos/generations` · `happyhorse-i2v-latest`: `text`, `image` → `video`

Ποια πεδία χρησιμοποιεί το αίτημα;

`POST /v1/videos/generations` · `happyhorse-1.1-i2v`: `model`, `prompt`, `duration`, `resolution`, `image_urls` `POST /v1/videos/generations` · `happyhorse-i2v`: `model`, `prompt`, `duration`, `resolution`, `image_urls` `POST /v1/videos/generations` · `happyhorse-i2v-latest`: `model`, `prompt`, `duration`, `resolution`, `image_urls`

Ποια όρια ισχύουν;

`POST /v1/videos/generations` · `happyhorse-1.1-i2v`: `duration.minimum`: `3`; `duration.maximum`: `15` `POST /v1/videos/generations` · `happyhorse-i2v`: `duration.minimum`: `3`; `duration.maximum`: `15` `POST /v1/videos/generations` · `happyhorse-i2v-latest`: `duration.minimum`: `3`; `duration.maximum`: `15`

Συνδέστε το Ailoot με Claude Code, OpenCode, Hermes ή τη δική σας εφαρμογή.

## Η εταιρεία και το χαρτοφυλάκιο έργων της

Η εταιρεία και το χαρτοφυλάκιο έργων της: εκατομμύρια πελάτες· μηνιαίες πωλήσεις δισεκατομμυρίων.

## Αγοράστε token με έκπτωση.

Έκπτωση συνδρομής για τακτική χρήση. Προωθητικοί κωδικοί — έως 50% στην αγορά token.

Συνδρομή

Επιλέξτε πρόγραμμα με έκπτωση για τα τακτικά αιτήματά σας.

Προωθητικός κωδικός έως 50%

Εισαγάγετε τον κωδικό στην αγορά. Η τιμή επανυπολογίζεται σύμφωνα με την ενεργή προσφορά.

Δαπάνες στο ιστορικό

Μοντέλο, token και ποσό αποθηκεύονται για κάθε αίτημα.

[Επιλέξτε συνδρομή](https://ailoot.ai/docs/el/billing/subscriptions/) · [Δείτε τιμές μοντέλων](https://ailoot.ai/models/el/)

## Συνδέστε το API με το προϊόν που πουλάτε.

SaaS, εφαρμογές και bot — σύμφωνα με τη δημόσια προσφορά και τη σύμβαση άδειας χρήσης Ailoot. Για μεταπώληση ζητήστε σχετική άδεια.

Εμπορική εφαρμογή

Ενσωματώστε δημιουργία κειμένου, εικόνων, βίντεο και ήχου στις πληρωμένες λειτουργίες της υπηρεσίας σας.

Άδεια για μεταπωλητή

Στείλτε περιγραφή έργου και τρόπο πρόσβασης. Ζητήστε γραπτούς όρους χρήσης και μεταπώλησης.

Έγγραφα στον ιστότοπο

Δημόσια προσφορά, σύμβαση άδειας χρήσης και πολιτική επεξεργασίας δεδομένων είναι διαθέσιμες πριν τη σύνδεση.

[Ζητήστε άδεια μεταπώλησης](mailto:support@ailoot.ai) · [Δημόσια προσφορά και σύμβαση άδειας χρήσης](https://ailoot.ai/legal/offer?lang=el)

## Ailoot · Η εταιρεία και το χαρτοφυλάκιο έργων της





Η Ailoot στηρίζεται στη συσσωρευμένη λειτουργική εμπειρία, τη μεγάλη πελατειακή βάση, τη σταθερή εξυπηρέτηση και τον συνεχή έλεγχο KPI.





Η εταιρεία και το χαρτοφυλάκιο έργων της: εκατομμύρια πελάτες· μηνιαίες πωλήσεις δισεκατομμυρίων.





Η Ailoot αξιοποιεί αυτή τη λειτουργική εμπειρία για πρόσβαση μέσω API σε λειτουργίες AI στα προϊόντα, τους πράκτορες, τις εφαρμογές και τους αυτοματισμούς των πελατών.
