cookidooAI/rag_ask.py

96 lines
3.0 KiB
Python
Executable File

import sys
import os
import traceback
import datetime
# --- PLIKI ---
LOG_FILE = "/home/pali112/rag_debug.txt"
OUTPUT_FILE = "/home/pali112/deep_odpowiedz.md"
def log(message):
"""Zapisuje logi do pliku, żebyśmy widzieli co się dzieje"""
with open(LOG_FILE, "a", encoding="utf-8") as f:
f.write(f"[{datetime.datetime.now()}] {message}\n")
def main():
# Czyścimy log przy każdym uruchomieniu
with open(LOG_FILE, "w", encoding="utf-8") as f:
f.write("--- START SKRYPTU ---\n")
log("1. Skrypt uruchomiony.")
# Dodajemy ścieżkę do importów
sys.path.append("/home/pali112")
log(f"2. Ścieżka sys.path: {sys.path}")
try:
# 3. Próba importu
log("3. Próbuję importować qa_chain z connect_chaint...")
try:
from connect_chaint import qa_chain
log(" -> Import SUKCES.")
except ImportError as e:
log(f" -> BŁĄD IMPORTU: {e}")
log(traceback.format_exc())
raise e
except Exception as e:
log(f" -> INNY BŁĄD PODCZAS IMPORTU: {e}")
log(traceback.format_exc())
raise e
# 4. Czytanie wejścia z Vima
log("4. Czytam stdin...")
try:
input_text = sys.stdin.read().strip()
except Exception as e:
input_text = ""
log(f" -> Błąd czytania stdin: {e}")
log(f" -> Długość wejścia: {len(input_text)} znaków")
if not input_text:
msg = "Błąd: Vim nie przekazał żadnego tekstu na wejście."
log(msg)
with open(OUTPUT_FILE, "w", encoding="utf-8") as f:
f.write(f"# BŁĄD\n{msg}")
return
# 5. Uruchamianie AI
log("5. Uruchamiam qa_chain.invoke()...")
response = qa_chain.invoke(input_text)
log(" -> AI odpowiedziało.")
# Wyciąganie wyniku
if isinstance(response, dict) and "result" in response:
final_answer = response["result"]
else:
final_answer = str(response)
# Czyszczenie <think>
if "<think>" in final_answer:
final_answer = final_answer.split("</think>")[-1].strip()
# 6. Zapis wyniku
log("6. Zapisuję wynik do pliku md.")
with open(OUTPUT_FILE, "w", encoding="utf-8") as f:
f.write("# Odpowiedź Build123d\n\n")
f.write(final_answer)
log("--- KONIEC SUKCES ---")
except Exception as e:
error_message = traceback.format_exc()
log(f"!!! KRYTYCZNY BŁĄD SKRYPTU !!!\n{error_message}")
# Zapisz błąd też do pliku md, żebyś widział go w Vimie
with open(OUTPUT_FILE, "w", encoding="utf-8") as f:
f.write("# BŁĄD KRYTYCZNY SKRYPTU PYTHON\n\n")
f.write("Sprawdź plik: /home/pali112/rag_debug.txt\n\n")
f.write("```\n")
f.write(error_message)
f.write("\n```")
if __name__ == "__main__":
main()