Skip to main content
Ta funkcja jest dostarczana przez ayaka-notes/ayakaleaf-pro i jest dostępna od wersji v6.3.0. Jeśli napotkasz jakiekolwiek problemy, chętnie poznamy Twoją opinię.

Asystent AI i asystent błędów LaTeX

Ayakaleaf Pro wprowadza funkcje AI do edytora na 2 sposoby.
  • Asystent AI może wykorzystywać dokumenty projektu i bieżące zaznaczenie jako kontekst, aby odpowiadać na pytania i proponować zmiany do Twojej weryfikacji.
  • Asystent błędów proponuje ukierunkowaną poprawkę po zaznaczeniu błędu kompilacji LaTeX.

Konfiguracja Toolkit

Dodaj poniższe wpisy do config/variables.env we wdrożeniu Toolkit, zastępując przykładowy URL, klucz i model wartościami od swojego dostawcy:
Przechowuj prawdziwe klucze API w pliku środowiskowym wdrożenia, poza systemem kontroli wersji. Powyższe wartości są symbolami zastępczymi, a nie działającymi danymi uwierzytelniającymi.
Jakość sugestii AI zależy od wybranego modelu. Jeśli masz już subskrypcję Codex lub ChatGPT, możesz ją podłączyć za pośrednictwem endpointu zgodnego z OpenAI w CLIProxyAPI.
AI_BASE_URL to bazowy URL API zgodnego z OpenAI, zawierający prefiks wersji dostawcy, jeśli jest wymagany. Nie dopisuj /chat/completions, ponieważ dodajemy to wewnętrznie. Bramka i model muszą obsługiwać strumieniowe uzupełnienia czatu (streaming chat completions) oraz narzędzia funkcyjne (function tools). Obie funkcje wysyłają kontekst dokumentu do tej bramki; czat może również wysyłać przesłane obrazy i pliki PDF, jeśli używany jest model, który je akceptuje. Toolkit przekazuje config/variables.env do kontenera aplikacji. Zachowaj podane tutaj nazwy zmiennych; nie dodawaj prefiksu OVERLEAF_. Po zmianie tych zmiennych odtwórz kontener aplikacji z katalogu Toolkit:

Ustawienia bramki

Aby umożliwić przesyłanie obrazów, ustaw AI_IMAGE_MODEL na model, który przyjmuje obrazy jako dane wejściowe i obsługuje narzędzia używane przez czat. Każde żądanie czatu, którego historia zawiera załącznik graficzny, korzysta z tego modelu — również kolejne wiadomości w tej rozmowie. Bez tego ustawienia żądania z obrazami używają zwykłego modelu czatu, który sam musi obsługiwać obrazy. Sugestie dotyczące błędów LaTeX nadal używają AI_MODEL. Załączniki PDF są dostępne od wersji v6.4.0. Użytkownicy mogą dołączać pliki PDF o rozmiarze do 2 MB, podobnie jak obrazy. Czat wysyła każdy plik PDF w niezmienionej postaci jako część file w Chat Completions, więc bramka i model muszą akceptować dane wejściowe PDF: modele OpenAI z obsługą obrazu to robią, natomiast wiele samodzielnie hostowanych bramek, takich jak vLLM, akceptuje obrazy, ale odrzuca pliki PDF. Ustaw AI_PDF_MODEL na model, który odczytuje pliki PDF; każdy czat, którego historia zawiera plik PDF, korzysta z niego — również kolejne wiadomości i wszelkie obrazy w tej rozmowie — dlatego powinien on także akceptować obrazy. Bez tego ustawienia czaty z plikami PDF używają AI_MODEL. Gdy model odrzuci plik PDF, czat poinformuje użytkownika, aby poprosił administratora o ustawienie AI_PDF_MODEL. Na przykład, aby włączyć model obsługujący obrazy i tygodniowy limit AI:

Dostęp użytkowników i zgoda

Dostępność w instancji i uprawnienia użytkownika to odrębne kwestie. AI_ENABLED oraz konfiguracja bramki decydują o dostępności w instancji. Zalogowany użytkownik musi ponadto przejść istniejącą kontrolę konta: aiFeatures.enabled nie może mieć wartości false. To istniejące pole bazy danych steruje zarówno czatem, jak i sugestiami dotyczącymi błędów LaTeX. Gdy nie jest ustawione, funkcje AI są dla użytkownika włączone. AI_TOKEN_QUOTA to limit stosowany jednakowo do każdego uprawnionego użytkownika; obecny moduł nie zapewnia indywidualnego limitu liczbowego dla poszczególnych kont. Na liście użytkowników w panelu administratora wybierz użytkownika i otwórz Update account info → AI features. Enable AI features aktualizuje aiFeatures.enabled po zapisaniu zmian konta. Serwer sprawdza bieżące uprawnienia przy nowych żądaniach AI, w tym przy żądaniach z już otwartego edytora. Użytkownik bez uprawnień nadal widzi asystenta AI w edytorze, ale nie może wysyłać wiadomości.

Zużycie i resetowanie

Karta AI features w panelu administratora pokazuje w jednym wierszu Usage bieżącego okresu, Limit oraz przycisk Reset. Zużycie jest odczytywane przy otwarciu karty i nie jest odświeżane na bieżąco. Aby zobaczyć najnowszą wartość, otwórz kartę ponownie po zakończeniu czatu lub sugestii dotyczącej błędu. Reset działa natychmiast i zeruje wyłącznie licznik bieżącego okresu danego użytkownika, a następnie ponownie wczytuje wyświetlane zużycie. Nie wymaga zapisywania pozostałej części formularza konta.
Zużycie czatu i sugestii dotyczących błędów współdzieli jeden licznik Redis, aktualizowany po zakończeniu żądania na podstawie łącznej liczby tokenów zgłoszonej przez dostawcę modelu. Obejmuje to tokeny wejściowe i wyjściowe we wszystkich krokach modelu. Dane wejściowe mogą zawierać historię rozmowy, kontekst dokumentu i wyniki narzędzi, więc kolejna wiadomość może zużyć więcej tokenów niż sama nowa wiadomość. Zużycie jest rejestrowane nawet wtedy, gdy limit ma wartość Unlimited. Żądania bez zgłoszonej łącznej liczby tokenów nie zwiększają licznika; moduł nie może odtworzyć historycznego, niezarejestrowanego zużycia. Sprawdzanie limitu odbywa się przed rozpoczęciem strumieniowania. Jedno żądanie lub kilka równoczesnych żądań może przekroczyć pozostały przydział, zanim kolejne żądania zostaną zablokowane. Jest to przydział zużycia, a nie ścisły limit wydatków u dostawcy. Jeśli sprawdzenie limitu się nie powiedzie, żądanie jest dopuszczane, a błąd zostaje zapisany w logach. Obie funkcje korzystają z AI_TOKEN_QUOTA; sugestie dotyczące błędów nie mają osobnego limitu liczby żądań. Zresetowanie licznika nie zmienia uprawnień, zgody, skonfigurowanego limitu ani rozliczeń prowadzonych przez dostawcę. Liczniki używają kluczy okresów w UTC i wygasają po 40 dniach; zachowanie danych Redis pozwala utrzymać bieżące zużycie po restarcie aplikacji.

Opcjonalne usługi wyszukiwania

Wyszukiwanie w sieci korzysta z API zgodnego z Tavily. Jest dostępne, gdy skonfigurowano klucz API wyszukiwania. Te ustawienia są niezależne od bramki AI: Na przykład:
Wyszukiwanie w dokumentacji wywołuje narzędzie searchDocumentation skonfigurowanego endpointu GitBook MCP i akceptuje odpowiedzi JSON lub SSE. Jest to klient MCP do wyszukiwania w dokumentacji. Aby umożliwić klientom AI spoza Ayakaleaf pracę nad projektem, zobacz Serwer MCP. Odczytywanie stron internetowych jest dostępne od wersji v6.4.0. Czat może odczytać stronę na podstawie jej adresu URL, np. linku podanego przez użytkownika lub wyniku wyszukiwania. Pobiera stronę przez proxy linkowanych URL — tę samą usługę, która pobiera pliki z zewnętrznych adresów URL — więc obowiązują go również ograniczenia sieciowe opisane w External URL. Żadne dodatkowe ustawienia nie są potrzebne. Zapytania wyszukiwania trafiają do skonfigurowanej usługi wyszukiwania. Wyniki wyszukiwania mogą następnie zostać dołączone do żądań wysyłanych do bramki AI. Menu Tools w czacie pozwala użytkownikom włączać lub wyłączać Web i Documentation dla swoich żądań; aby narzędzie było dostępne dla modelu, musi być także skonfigurowane na serwerze.

Pytania i odpowiedzi

Odpowiedź: Asystent AI pojawia się na lewym pasku edytora tylko wtedy, gdy ustawiono AI_ENABLED=true oraz wszystkie zmienne AI_BASE_URL, AI_API_KEY i AI_MODEL. Jeśli brakuje którejkolwiek z nich, asystent AI jest ukryty dla wszystkich użytkowników.Po zmianie config/variables.env odtwórz kontener za pomocą bin/up -d. Samo odświeżenie przeglądarki nie zastosuje nowych zmiennych. Przełącznik Enable AI features w panelu administratora nie pokazuje ani nie ukrywa asystenta AI; decyduje jedynie o tym, czy użytkownik może wysyłać wiadomości.
Odpowiedź: Najpierw sprawdź, czy użytkownik zaakceptował kartę zgody AI wyświetlaną w asystencie AI. Przed jej zaakceptowaniem nie można wysyłać wiadomości.Następnie poszukaj błędów w logu usługi web:
Jeśli panel Twojego dostawcy nie pokazuje żadnego zużycia, żądanie do niego nie dotarło. Najczęstsze przyczyny to:
  • AI_BASE_URL jest nieprawidłowy, na przykład brakuje w nim /v1 lub jest on zbędny albo dopisano do niego /chat/completions.
  • Serwer nie może połączyć się z bramką. Jeśli ruch wychodzący musi przechodzić przez proxy, ustaw AI_PROXY_URL.
  • AI_MODEL nie jest identyfikatorem modelu znanym bramce.
Jeśli dostawca pokazuje żądania, ale czat nadal nie działa, sprawdź, czy model obsługuje strumieniowe uzupełnienia czatu i narzędzia funkcyjne.
Odpowiedź: Nie. Czat jest przechowywany tylko w otwartej karcie przeglądarki. Odświeżenie lub zamknięcie strony usuwa go, a Start new chat zastępuje bieżący czat. Nie ma listy wcześniejszych czatów, a każdy projekt wyświetla jednocześnie jeden czat.
Ostatnia modyfikacja 2 listopada 2026