35 lines
1.3 KiB
Python
Executable File
35 lines
1.3 KiB
Python
Executable File
import sys
|
|
import requests
|
|
import json
|
|
|
|
MEMORY_FILE = "/opt/wevads/data/ai_memory.json"
|
|
|
|
def retrieve_context(query):
|
|
try:
|
|
with open(MEMORY_FILE, 'r') as f:
|
|
data = json.load(f)
|
|
|
|
# Muscle : Priorisation des succès (Winners) sur les logs simples
|
|
winners = [item['text'] for item in data if "Succès" in item['text'] and query.lower() in item['text'].lower()]
|
|
others = [item['text'] for item in data if "Succès" not in item['text'] and query.lower() in item['text'].lower()]
|
|
|
|
# On fusionne en mettant les winners en premier
|
|
context = winners + others
|
|
return " ".join(context[:5])
|
|
except:
|
|
return ""
|
|
|
|
def ask_with_rag(prompt):
|
|
context = retrieve_context(prompt)
|
|
# On muscle le prompt système
|
|
system_prompt = "Tu es l'IA du système Arsenal. Utilise les succès passés pour optimiser la réponse."
|
|
full_prompt = f"{system_prompt}\n\nCONTEXTE: {context}\n\nREQUÊTE: {prompt}"
|
|
|
|
r = requests.post('http://localhost:11434/api/generate',
|
|
json={"model": "llama3.2", "prompt": full_prompt, "stream": False})
|
|
return r.json().get('response', '')
|
|
|
|
if __name__ == "__main__":
|
|
if len(sys.argv) > 1:
|
|
print(ask_with_rag(sys.argv[1]))
|