Chat API

Интегрируйте возможности чата на базе ИИ в ваши приложения с помощью наших Chat API эндпоинтов.

Аутентификация

Все API запросы требуют аутентификации с использованием вашего API ключа. Вы можете найти ваш API ключ в настройках аккаунта .

Chat API

POST 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": "сообщение_об_ошибке"
}

Распространенные сообщения об ошибках включают:

  • "Authentication failed"
  • "Project ID is not valid"
  • "API usage limit reached"
  • "Invalid JSON"

Ответ с запросом помощи человека

{
  "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"
    }'