AI: asystenci bez martwego API + utrzymywanie Ollamy w cieple #28
Reference in New Issue
Block a user
Delete Branch "assistants-and-ollama-warmup"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
1. Asystenci — zamiennik wygaszonego Assistants API
Stara implementacja dawała trzy rzeczy. Dwie odtworzone, trzecia świadomie nie:
system_gpt_settings.json— była tylko wysyłana do OpenAI. Teraz to prompt systemowy.assistant_memory.json, kluczowana po discord id, przycinana do ostatnich tur, zapis atomowy (rozerwany plik = czyjaś cała rozmowa).file_searchRozmowa idzie przez
handle_responsezrequest_type="NONE"i jawną listą wiadomości, więc nie miesza się z pamięcią baru.Świadomie zwykłe przycinanie, a nie kompaktowanie AI jak przy pamięci baru — to prywatne DM-y i nie mają prawa wylądować w publicznej "legendzie".
Największy zysk:
create_chat_assistantmiał zaszytemodel="gpt-4o", czyli asystenci byli przywiązani do OpenAI. Teraz chodzą na tym, co wybierze$gadaj_teraz— także Claude i Ollama.create_chat_assistant/chat_with_assistantusunięte, a z nimi ostatnie wywołaniebeta.threadsw ścieżce startu — ten cog nie da się już zabić tym API. (add_files_to_vector_store/delete_files_from_vector_storenadal odwołują się dobeta.assistants, ale to martwy kod — zero wywołań — więc niczego nie wysadzą; zostawione, żeby nie rozszerzać tej zmiany.)2. Utrzymywanie modelu w cieple
Wolne jest ładowanie (karta dzielona z innymi), więc preloadujemy udokumentowanym mechanizmem Ollamy:
/api/generatez modelem,keep_alivei bez promptu — ładuje model i nic nie generuje.$gadaj_terazodpala preload w tle (nieawait— ładowanie trwa minutami, a komenda musi odpowiedzieć od razu), więc czekanie spada na Ciebie przy przełączaniu, a nie na pierwszego użytkownika;keep_alivecoCONJURER_OLLAMA_WARM_MINUTES.Oba twardo zabezpieczone na aktywnego providera == ollama. Rozgrzewanie płatnego API to przepalanie tokenów i złotówek, więc ten warunek jest przybity testami: jeden sprawdza, że preload nigdy nie leci dla
gpt/claude, drugi że w body nie ma promptu (prompt sprawiłby, że każde rozgrzanie coś generuje).Nowe zmienne:
CONJURER_OLLAMA_KEEP_ALIVE(30m),CONJURER_OLLAMA_WARM_MINUTES(10),CONJURER_OLLAMA_PRELOAD_TIMEOUT(600),CONJURER_ASSISTANT_MEMORY_TURNS(40).Suite: 82 unit + 71 integration zielone.
🤖 Generated with Claude Code