Интегрируйте возможности чата на базе ИИ в ваши приложения с помощью наших Chat API эндпоинтов.
Все API запросы требуют аутентификации с использованием вашего API ключа. Вы можете найти ваш API ключ в настройках аккаунта .
https://filebrain.pro/api/chat/v1/
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| project_id | string | Да | Идентификатор вашего проекта |
| api_key | string | Да | Ваш секретный API ключ |
| query | string | Да | Вопрос или сообщение пользователя |
| session_id | string | Нет | Уникальный идентификатор для поддержания контекста разговора |
| prompt | string | Нет | Пользовательский промпт для переопределения стандартного промпта проекта |
| tags | array | Нет | Список тегов для фильтрации контента базы знаний |
| human_assist | boolean | Нет | Флаг для запроса помощи человека |
| context_info | boolean | Нет | Включить информацию о контексте в ответ |
| url_format | string | Нет | Формат ответа ('html' или 'plain'). По умолчанию 'html' |
| response_schema | string | Нет | Доступная схема: 'CodeMessage'. Требуется для структурированного ответа с пользовательской логикой. |
{
"project_id": "c929732212329c3da8368e868bcd3393",
"api_key": "4a6b796c6931eecbb1ec8cdd85ac15c4ba64408e",
"query": "Привет, FileBrain!",
"session_id": "optional_unique_user_token",
"prompt": "optional_custom_prompt",
"tags": ["optional", "tags", "list"],
"human_assist": false,
"context_info": false,
"url_format": "html"
}
{
"status": "success",
"message": {
"question": "вопрос_пользователя",
"answer": "ответ_на_вопрос",
"source": ["Опциональный_массив_источников"]
},
"execution_time": 0.5,
"call_cost": 1,
"total_tokens": 150,
"is_intention": false,
"context_info": {
"chunks": [
{
"id": 1,
"source": "document.txt",
"content": "релевантный текст из базы знаний",
"score": 0.9600
}
],
"memory_context": [
{
"id": 1,
"user": "привет",
"chatbot": "привет, как я могу помочь вам сегодня?"
}
]
}
}
| Параметр | Тип | Описание |
|---|---|---|
| status | string | Статус ответа (success или error) |
| message | object | Содержит вопрос, ответ и опциональные источники |
| execution_time | number | Время, затраченное на обработку запроса в секундах |
| call_cost | number | Стоимость, связанная с этим API вызовом |
| total_tokens | number | Общее количество токенов, использованных в запросе и ответе |
| is_intention | boolean | Указывает, был ли сработан пользовательский интент (true) или это обычный ответ (false) |
| context_info | object | Опциональная информация о контексте базы знаний и истории разговора (включается только когда параметр context_info установлен в true) |
{
"status": "error",
"message": "сообщение_об_ошибке"
}
Распространенные сообщения об ошибках включают:
{
"status": "success",
"message": {
"question": "вопрос_пользователя",
"answer": "Запрошена помощь человека",
"source": []
},
"execution_time": 1,
"call_cost": 0,
"total_tokens": 1,
"is_intention": true
}
Когда срабатывает пользовательский интент, ответ будет включать is_intention: true и ответ будет содержать настроенный ответ интента:
{
"status": "success",
"message": {
"question": "вопрос_пользователя",
"answer": "Текст ответа пользовательского интента",
"source": []
},
"execution_time": 1,
"call_cost": 0,
"total_tokens": 1,
"is_intention": true
}
import requests
API_URL = "https://filebrain.pro/api/chat/v1/"
headers = {"Content-Type": "application/json"}
payload = {
"project_id": "YOUR-PROJECT-ID",
"api_key": "YOUR-API-KEY",
"query": "Привет, FileBrain!",
"session_id": "unique_session_id",
# "prompt": "optional_custom_prompt",
# "tags": ["tag1", "tag2"],
# "human_assist": False,
# "context_info": False,
# "url_format": "html"
}
response = requests.post(API_URL, json=payload, headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("status") == "success":
answer = data["message"]["answer"]
is_intention = data.get("is_intention", False)
print(f"Ответ: {answer}")
# Проверяем, является ли это ответом пользовательского интента
if is_intention:
print("Это ответ пользовательского интента")
# Получаем чанки, если был запрошен context_info
chunks = data.get("context_info", {}).get("chunks", [])
print(f"Релевантные чанки: {len(chunks)}")
else:
print("Ошибка:", data.get("message", "Неизвестная ошибка"))
else:
print("Не удалось связаться с сервером.")
const API_URL = 'https://filebrain.pro/api/chat/v1/';
const payload = {
project_id: 'YOUR-PROJECT-ID',
api_key: 'YOUR-API-KEY',
query: 'Привет, FileBrain!',
session_id: 'unique_session_id',
// prompt: 'optional_custom_prompt',
// tags: ['tag1', 'tag2'],
// human_assist: false,
// context_info: false,
// url_format: 'html'
};
async function chatWithFileBrain() {
try {
const response = await fetch(API_URL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(payload)
});
const data = await response.json();
if (data.status === 'success') {
console.log('Ответ:', data.message.answer);
// Проверяем, является ли это пользовательским интентом
if (data.is_intention) {
console.log('Обнаружен пользовательский интент!');
}
// Получаем информацию о контексте, если запрошена
if (data.context_info) {
console.log('Чанки контекста:', data.context_info.chunks.length);
}
} else {
console.error('Ошибка:', data.message);
}
} catch (error) {
console.error('Не удалось связаться с сервером:', error);
}
}
curl -X POST https://filebrain.pro/api/chat/v1/ \
-H "Content-Type: application/json" \
-d '{
"project_id": "YOUR-PROJECT-ID",
"api_key": "YOUR-API-KEY",
"query": "Привет, FileBrain!",
"session_id": "unique_session_id",
# "prompt": "optional_custom_prompt",
# "tags": ["tag1", "tag2"],
# "human_assist": false,
# "context_info": false,
# "url_format": "html"
}'