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
}