Документация API RAGalik

Используйте наш API для семантического поиска по статьям.


🚀 Быстрый старт

curl -X POST https://api.ragalik.ru/v1/search \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "ваш запрос", "n_results": 5}'

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

Все запросы к API требуют заголовок Authorization с вашим API-ключом:

Authorization: Bearer sk_ragalik_...

Получить ключ можно в личном кабинете.

📡 Эндпоинты

Метод Эндпоинт Описание
POST /v1/search Поиск похожих статей
GET /v1/articles/<id> Получение статьи по ID
POST /v1/embed Генерация эмбеддинга для текста

POST /v1/search

Запрос:

{
  "query": "текст запроса",
  "n_results": 5,
  "filter": {
    "status": "PB"
  }
}

Ответ:

{
  "results": [
    {
      "id": "123",
      "title": "Заголовок статьи",
      "slug": "article-slug",
      "content": "Краткое содержание...",
      "distance": 0.15,
      "metadata": {
        "publish_date": "2024-01-15",
        "source": "blog_news"
      }
    }
  ],
  "query_time_ms": 45
}

🔌 WordPress плагин

Установите наш плагин для интеграции поиска в ваш сайт:

  1. Скачайте плагин из GitHub Releases
  2. Загрузите через Плагины → Добавить новый → Загрузить плагин
  3. Введите ваш API-ключ в настройках плагина
  4. Используйте шорткод [ragalik_search] на любой странице

💻 Примеры кода

import requests

API_KEY = "sk_ragalik_..."
BASE_URL = "https://api.ragalik.ru/v1"

def search_articles(query: str, n_results: int = 5):
    response = requests.post(
        f"{BASE_URL}/search",
        headers={
            "Authorization": f"Bearer {API_KEY}",
            "Content-Type": "application/json"
        },
        json={"query": query, "n_results": n_results}
    )
    return response.json()["results"]

# Пример использования
results = search_articles("достопримечательности Анапы")
for r in results:
    print(f"{r['title']} (distance: {r['distance']:.3f})")

<?php
$api_key = 'sk_ragalik_...';
$url = 'https://api.ragalik.ru/v1/search';

$data = json_encode([
    'query' => 'ваш запрос',
    'n_results' => 5
]);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $api_key,
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

$results = json_decode($response, true)['results'];
?>