Fichi ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π΄ΠΈΠ½ΡΠΉ API Π΄Π»Ρ Π²ΡΠ΅Ρ Π½Π΅ΠΉΡΠΎΡΠ΅ΡΠ΅ΠΉ β ΡΠ΅ΠΊΡΡΠ°, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π°ΡΠ΄ΠΈΠΎ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ β ΡΠ΅ΡΠ΅Π· ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡΡ ΠΈ ΠΎΠ±ΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΡΠ°Π·Π½ΡΡ SDK ΠΈ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ².
ΠΡΠΎ Π½Π΅ OpenAI-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ ΡΠΎΡΠΌΠ°Ρ: Ρ Π½Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΡΠ°ΡΡΡΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ Π»ΡΠ±ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΡΠ°Π·Ρ. ΠΠΎΡΡΠΎΠΌΡ Π·Π°ΠΏΡΠΎΡΡ Π½ΠΈΠΆΠ΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΏΡΠΈΠ²ΡΡΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² OpenAI β ΠΎΡΠΈΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΠ· ΡΡΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ
ΠΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΡΡΠ΅Π±ΡΡΡ Fichi API ΠΊΠ»ΡΡ Π² ΡΠ΅Π»Π΅ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ»ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π² Π»ΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅.
ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠΉΡΠ΅ API ΠΊΠ»ΡΡ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ . ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
key* | string | ΠΠ°Ρ Fichi API ΠΊΠ»ΡΡ. ΠΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΠ΅Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. |
ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ (ai) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ².
ΠΡΠ΅Π³ΠΎ: 0 Β· ΠΠΎΠΊΠ°Π·Π°Π½ΠΎ: 0
/api/v1/services/aiΠΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΠ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ID ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΎ ΡΡΠ°ΡΡΡΠΎΠΌ pending. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ½Π΄ΠΏΠΎΠΈΠ½Ρ ΡΡΠ°ΡΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ°
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
key* | string | ΠΠ°Ρ Fichi API ΠΊΠ»ΡΡ. |
ai* | ObjectId | ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ. |
text | string | Π’Π΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. |
chain | ObjectId | ID ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. |
bot | ObjectId | ID Π±ΠΎΡΠ° (ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΏΡΠΎΠΌΠΏΡ). |
attachments | string[] | ΠΠ°ΡΡΠΈΠ² ID Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ. |
options | object | ΠΠΏΡΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ (ΡΠ°Π·ΠΌΠ΅Ρ, ΡΡΠΈΠ»Ρ ΠΈ Ρ.Π΄.). |
controlls | object | web, no_context, rag. |
ΠΡΠ²Π΅Ρ
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
id* | string | ID ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. |
status* | "pending" | ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΡΡ. |
curl -X POST https:-comment">//api.fichi.ai/api/v1/services/ai \ -H -string">"Content-Type: application/json" \ -d -string">'{ "key": "YOUR_KEY", "ai": "MODEL_ID", "text": "ΠΡΠΈΠ²Π΅Ρ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°?" }'
ΠΠΎΡΠ»Π΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ id Π΄Π»Ρ ΠΎΠΏΡΠΎΡΠ° ΡΡΠ°ΡΡΡΠ° Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠΌ ~500ms.
/api/v1/attachmentsΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π² ΠΠ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΡΠ°Π±Π»ΠΈΡΡ, ΠΊΠΎΠ΄ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ (multipart/form-data)
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
file* | File | Π€Π°ΠΉΠ» Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. |
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ
ΠΡΠ²Π΅Ρ
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
data[].id* | string | ID Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π² attachments. |
data[].text | string | null | ΠΠ·Π²Π»Π΅ΡΡΠ½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ (Π΄Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²). |
curl -X POST https:-comment">//api.fichi.ai/api/v1/attachments \ -F -string">"file=@document.pdf"
/api/v1/services/ai/statusΠΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ°ΡΡΡ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠΎΠ»Π΅ streaming ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ°
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
key* | string | ΠΠ°Ρ Fichi API ΠΊΠ»ΡΡ. |
message_id* | string | ID ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. |
Π‘ΡΠ°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
pendingΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΡsuccessΠ³ΠΎΡΠΎΠ²ΠΎerrorΠΎΡΠΈΠ±ΠΊΠ°stoppedΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎcurl -X POST https:-comment">//api.fichi.ai/api/v1/services/ai/status \ -H -string">"Content-Type: application/json" \ -d -string">'{"key": "YOUR_KEY", "message_id": "MSG_ID"}'
ΠΡΠΈΠΌΠ΅Ρ polling-ΡΠΈΠΊΠ»Π°
async function poll(messageId, key) { while (true) { const res = await fetch('https://api.fichi.ai/api/v1/services/ai/status', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ key, message_id: messageId }), }) const { data, streaming } = await res.json() if (data.status === 'success') return data.content.text if (data.status === 'error') throw new Error(data.error?.code) console.log(streaming?.text) // ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ await new Promise(r => setTimeout(r, 500)) } }
/api/v1/services/ai/chainsΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (ΡΠ°ΡΠΎΠ²) ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Query-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
key* | string | Fichi API ΠΊΠ»ΡΡ (query-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ). |
curl -string">"https:-comment">//api.fichi.ai/api/v1/services/ai/chains?key=YOUR_KEY"
/api/v1/services/ai/chains/{id}ΠΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΏΠΎΡΠΊΠΈ β ΠΏΠΎΠ»Π½ΡΡ ΠΈΡΡΠΎΡΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³Π°.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
id* | ObjectId | ID ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π² URL. |
key* | string | Fichi API ΠΊΠ»ΡΡ (query-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ). |
curl -string">"https:-comment">//api.fichi.ai/api/v1/services/ai/chains/CHAIN_ID?key=YOUR_KEY"
ΠΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ
| ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
ERR_USER_NOT_EXISTS | 404 | ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½. |
ERR_KEY_NOT_FOUND | 404 | API ΠΊΠ»ΡΡ Π½Π΅Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½. |
ERR_USER_NO_TOKENS | 402 | ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠΊΠ΅Π½ΠΎΠ². |
ERR_CHAT_NO_ACCESS | 403 | ΠΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΠΏΠΎΡΠΊΠ΅. |
ERR_CHAT_PENDING | 409 | Π¦Π΅ΠΏΠΎΡΠΊΠ° Π·Π°Π½ΡΡΠ° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ΅ΠΉ. |