Logo
customs.ai by customs.gov.kg

Developer API: Поиск

Документация для интеграции поиска кодов ТН ВЭД в сторонние приложения.

GET /api/v1/search/
Выполняет семантический поиск по базе кодов ТН ВЭД используя векторный анализ.
GET /api/v1/search/settings
Получает текущие настройки поиска (количество результатов, порог сходства). Настройки задаются в админ-панели.
{"default_page_size": 10, "default_threshold": 0.35, "search_columns": [...]}

Параметры запроса

Параметр Тип Обязательно Описание
query string Да Поисковый запрос (описание товара, название и т.д.)
k integer Нет Количество результатов на странице (default: 10)
threshold float Нет Порог сходства от 0.0 до 1.0 (default: 0.25)
columns string Нет Поля для поиска через запятую: reference, rulling, declaration (default: все)
page integer Нет Номер страницы (default: 1)

Примеры использования

cURL

curl -G "http://localhost:5002/api/v1/search/" \
    --data-urlencode "query=чехлы для телефонов" \
    --data-urlencode "threshold=0.6" \
    --data-urlencode "columns=rulling,declaration"

Python (requests)

import requests

url = "http://localhost:5002/api/v1/search/"
params = {
    "query": "чехлы для телефонов",
    "threshold": 0.6,
    "columns": "rulling,declaration",
    "page": 1
}

response = requests.get(url, params=params)
if response.status_code == 200:
    data = response.json()
    for item in data["items"]:
        print(f"{item['code']}: {item['final_score']}")
else:
    print("Error:", response.status_code)

JavaScript (fetch)

const url = new URL("http://localhost:5002/api/v1/search/");
url.searchParams.append("query", "чехлы для телефонов");
url.searchParams.append("threshold", "0.6");
url.searchParams.append("columns", "rulling,declaration");

fetch(url)
    .then(res => res.json())
    .then(data => {
        data.items.forEach(item => {
            console.log(`${item.code}: ${item.final_score}`);
        });
    })
    .catch(console.error);

Пример ответа (JSON)

{
  "items": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "code": "8703231940",
      "reference": "Транспортные средства...",
      "rulling": null,
      "declaration": "АВТОМОБИЛЬ ЛЕГКОВОЙ HYUNDAI...",
      "similarity_reference": 0.85,
      "similarity_rulling": null,
      "similarity_declaration": 0.92,
      "final_score": 0.885
    }
  ],
  "total": 1,
  "page": 1,
  "page_size": 10,
  "total_pages": 1
}

📜 API: 6 ОПИ (Основные Правила Интерпретации)

Семантический поиск по 6 Основным Правилам Интерпретации ТН ВЭД.

GET /api/v1/opi/search
Выполняет семантический поиск по ячейкам 6 ОПИ с использованием векторного анализа.

Параметры запроса

Параметр Тип Обязательно Описание
q string Да Поисковый запрос (текст для поиска по правилам ОПИ)
threshold float Нет Порог сходства от 0.1 до 1.0 (default: 0.7)
page integer Нет Номер страницы (default: 1)
page_size integer Нет Количество результатов на странице (default: 20, max: 100)

Примеры использования

cURL

curl -G "http://localhost:5002/api/v1/opi/search" \
    --data-urlencode "q=классификация товара" \
    --data-urlencode "threshold=0.7"

Python (requests)

import requests

url = "http://localhost:5002/api/v1/opi/search"
params = {
    "q": "классификация товара",
    "threshold": 0.7,
    "page": 1
}

response = requests.get(url, params=params)
if response.status_code == 200:
    data = response.json()
    for item in data["items"]:
        print(f"{item['title']}: {item['similarity']:.1%}")
else:
    print("Error:", response.status_code)

Пример ответа (JSON)

{
  "items": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "title": "ОПИ 1 - Общие положения",
      "content": "Названия разделов, групп и подгрупп...",
      "similarity": 0.85
    }
  ],
  "total": 1,
  "page": 1,
  "page_size": 20,
  "total_pages": 1
}