Narzędzia¶
| Narzędzie | Rola |
|---|---|
szukaj_publikacji(q, rok_od?, rok_do?, limit=25) |
rankowane wyszukiwanie pełnotekstowe publikacji |
szukaj_autora(nazwisko) |
znajdź autorów po (bieżącym) nazwisku |
publikacje_autora(id_lub_slug, rok_od?, rok_do?, limit=25) |
publikacje autora (ID lub slug) |
publikacje_jednostki(id_lub_slug, rok_od?, rok_do?, limit=25) |
publikacje jednostki i pod-jednostek |
pobierz_rekord(typ, id, pelne_dane_autorow=False) |
detal rekordu z rozwiniętymi relacjami |
lista_publikacji(typ, rok_od?, rok_do?, charakter_formalny?, zmienione_po?, limit=25, offset=0) |
harvest/przyrost listy publikacji |
slownik(rodzaj) |
mały słownik referencyjny (tłumaczenie ID↔nazwa) |
zapytanie_rekord(q, limit=25, offset=0) |
wykonaj DjangoQL po publikacjach (bpp.Rekord) — autoryzowane |
zapytanie_autor(q, limit=25, offset=0) |
wykonaj DjangoQL po autorach (bpp.Autor) — autoryzowane |
zapytanie_autorzy(q, limit=25, offset=0) |
wykonaj DjangoQL po wpisach autorstwa (bpp.Autorzy) — autoryzowane |
djangoql_schema(model="rekord", sekcje=None) |
schemat DjangoQL-dla-LLM: rdzeń rekord/autor/autorzy, sekcje relacyjne na żądanie |
Zapytania DjangoQL (zapytanie_*) są AUTORYZOWANE
Endpointy /api/v1/zapytanie/{rekord,autor,autorzy}/ wymagają Bearer (tryb
OAuth/HTTP lub logowanie stdio — patrz Uwierzytelnianie)
albo sesji, oraz uprawnień redaktora (superuser lub staff w grupie
„wprowadzanie danych"). Bez tego zwracają czytelny błąd: 401 (token), 403
(brak uprawnień), 400 (zła składnia/pole, z pozycją do korekty; pola PII jak
autor.email są zablokowane), 503 (timeout — zawęź). Buduj zapytanie z
djangoql_schema("rekord") (patrz DjangoQL); w trybie stdio
bez tokenu dostaniesz 401/403.
Dodatkowo serwer wystawia prompt MCP (nie narzędzie wykonujące):
| Prompt | Rola |
|---|---|
zloz_zapytanie_djangoql(opis) |
złóż zapytanie DjangoQL (z opisu po polsku) — wykonasz je zapytanie_rekord |
Wartości parametrów¶
typ w pobierz_rekord / lista_publikacji: wydawnictwo_ciagle,
wydawnictwo_zwarte, patent, praca_doktorska, praca_habilitacyjna.
rodzaj w slownik: charakter_formalny, typ_kbn, jezyk,
dyscyplina_naukowa, rodzaj_zrodla, poziom_wydawcy, funkcja_autora,
tytul, czas_udostepnienia_openaccess. Dane wolumenowe
(konferencja/wydawca/nagroda) są odrzucane — to nie słowniki.
Uwagi¶
szukaj_publikacjiiszukaj_autorawymagają instancji BPP z Fazą 0 (rozszerzenie API o wyszukiwanie). Na starszej instancjiszukaj_publikacjizwróci czytelny błąd (404 → komunikat o wymaganej wersji).zapytanie_rekord/autor/autorzywymagają nowszej instancji BPP (z endpointami/api/v1/zapytanie/*) oraz uwierzytelnienia (Bearer/sesja + uprawnienia redaktora) — patrz sekcja wyżej. Pozostałe narzędzia (publikacje_*,pobierz_rekord,lista_publikacji,slownik) są anonimowe i działają na każdej wersji API.szukaj_autora— wykrywanie możliwości: django-filter po cichu ignoruje nieznane parametry. Na starej instancji filtrnazwiskozostanie zignorowany i endpoint zwróci wszystkich autorów bez błędu. Narzędzie ustawia wtedy flagęmozliwe_ze_niefiltrowane(gdy trafień jest podejrzanie dużo). Filtr obejmuje wyłącznie bieżącenazwisko(niepoprzednie_nazwiska).publikacje_autora/publikacje_jednostkimają twardy sufit 100 pozycji (endpointrecent_*). Przy dobiciu do limitu zwracana jest flagaobcieto: true— pełny harvest per autor rób przezlista_publikacjiz chunkowaniem po latach. Endpointrecent_*NIE zwraca łącznej liczby prac encji (jegocountto tylko liczba pozycji po obcięciu), dlatego narzędzie eksponuje wyłączniezwrocono(liczba zwróconych) +obcieto, bez mylącegocount.szukaj_publikacji/szukaj_autora/lista_publikacjizwracająlaczna_liczba(serwerowycount— realna liczba trafień),zwrocono(ile faktycznie przyszło) oraz flagęniepelne.niepelne: trueoznacza, że auto-follow paginacji przerwał bezpiecznik (sufit liczby stron / zapętlonynext) zanim objął wszystko — wynik może być niekompletny.