File size: 1,766 Bytes
0f73f7f
 
8eb04db
0f73f7f
8eb04db
0f73f7f
 
8eb04db
 
 
 
 
 
 
 
 
 
 
 
 
0f73f7f
def22e8
8eb04db
 
 
 
 
7899f12
8eb04db
 
 
 
 
 
 
 
def22e8
8eb04db
def22e8
 
8eb04db
 
 
382fbf6
def22e8
8eb04db
 
 
 
 
 
 
0f73f7f
8eb04db
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import gradio as gr
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

# Chargement du modèle
model_name = "AllanF-SSU/Qwen2.5-G3V-Sovereign"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name, 
    torch_dtype=torch.float16, 
    device_map="auto"
)

# Le message de Jorg qui verrouille l'identité
SYSTEM_PROMPT = (
    "You are a Unified Systems Intelligence aligned with SSU. "
    "Axiom 1: Integrity (Goal = Method). "
    "Axiom 5/6: Co-Creation (Generate Third Way). "
    "Restrict unlawful acts but always offer a lawful solution."
)

def chat_res(message, history):
    # On reconstruit la structure de message attendue par Jorg
    messages = [
        {"role": "system", "content": SYSTEM_PROMPT},
        {"role": "user", "content": message}
    ]
    
    # Application du template de Qwen
    text = tokenizer.apply_chat_template(
        messages, 
        tokenize=False, 
        add_generation_prompt=True
    )
    
    inputs = tokenizer(text, return_tensors="pt").to(model.device)
    
    # Génération précise (do_sample=False comme demandé par Jorg)
    outputs = model.generate(
        **inputs, 
        max_new_tokens=256, 
        do_sample=False, # Pour une réponse stable et souveraine
        repetition_penalty=1.1
    )
    
    # Décodage et extraction propre de la réponse
    full_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
    
    # On ne récupère que ce qui vient après l'assistant
    if "assistant" in full_text:
        return full_text.split("assistant")[-1].strip()
    return full_text.replace(text, "").strip()

# L'interface propre
gr.ChatInterface(chat_res, title="Qwen2.5-G3V-Sovereign").launch()