ElouarnLC commited on
Commit
7809235
·
1 Parent(s): a3f592f

Update preprompt to be more concise

Browse files
Files changed (1) hide show
  1. app.py +32 -15
app.py CHANGED
@@ -4,14 +4,14 @@ import gradio as gr
4
  client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")
5
 
6
  # Variable globale pour stocker le contexte
7
- global_context = {"preprompt": None, "hidden_context": "tu es le personnage dun escape game sur la resolution d un meutre dans l univers des cathares au 14 eme siecle dans les Pyrénées, tu es le gérant d une taverne qui est cathare dans le village de montaillou, parle que en français, assez rustre mais qui demeure accueillant tant que son interlocuteur n est pas catholique ou du moins quelqu un avec une influence tel qu un noble, tu n es jamais hors contexte par rapport à ton époque, tes connaissances se limite à ta situation sociale et ton époque, il faut que tu sois immersif pour la personne qui va te parler, et tu dois cacher ton implication dans le meutre si on te pose des questions à ce sujet tu dois tourner la discussion à ton avantage et le dévier du meutre"}
 
 
 
8
 
9
  def format_prompt(message, history):
10
  prompt = "<s>"
11
 
12
- if global_context["preprompt"]:
13
- prompt += f"[INST] {global_context['preprompt']} [/INST]"
14
-
15
  for user_prompt, bot_response in history:
16
  prompt += f"[INST] {user_prompt} [/INST]"
17
  prompt += f" {bot_response}</s> "
@@ -19,7 +19,15 @@ def format_prompt(message, history):
19
 
20
  return prompt
21
 
22
- def generate(prompt, history, temperature=0.2, max_new_tokens=256, top_p=0.95, repetition_penalty=1.0):
 
 
 
 
 
 
 
 
23
  temperature = float(temperature)
24
  if temperature < 1e-2:
25
  temperature = 1e-2
@@ -37,25 +45,34 @@ def generate(prompt, history, temperature=0.2, max_new_tokens=256, top_p=0.95, r
37
  formatted_prompt = format_prompt(prompt, history)
38
  formatted_prompt += f"[INST] {global_context['hidden_context']} [/INST]"
39
 
40
- stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
 
 
 
 
 
 
41
  output = ""
42
 
43
  for response in stream:
44
  # Exclure le contexte caché de la réponse retournée par le modèle
45
- response_text = response.token.text.replace(global_context['hidden_context'], "")
 
 
46
  output += response_text
47
  yield output
48
  return output
49
 
 
50
  mychatbot = gr.Chatbot(
51
- avatar_images=["./berger.jpg", "./tavernier.jpg"], bubble_full_width=False, show_label=False)
52
-
53
- demo = gr.ChatInterface(fn=generate,
54
- chatbot=mychatbot,
55
- title="Tavernier 🍺",
56
- retry_btn=None,
57
- undo_btn=None
58
- )
59
 
60
  # Lancer l'interface
61
  demo.queue().launch(show_api=True)
 
4
  client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")
5
 
6
  # Variable globale pour stocker le contexte
7
+ global_context = {
8
+ "hidden_context": "tu es le personnage dun escape game sur la resolution d un meutre dans l univers des cathares au 14 eme siecle dans les Pyrénées, tu es le gérant d une taverne qui est cathare dans le village de montaillou, parle que en français, assez rustre mais qui demeure accueillant tant que son interlocuteur n est pas catholique ou du moins quelqu un avec une influence tel qu un noble, tu n es jamais hors contexte par rapport à ton époque, tes connaissances se limite à ta situation sociale et ton époque, il faut que tu sois immersif pour la personne qui va te parler, et tu dois cacher ton implication dans le meutre si on te pose des questions à ce sujet tu dois tourner la discussion à ton avantage et le dévier du meutre, prends bien toujours en compte l historique de ta conversation, sois toujours concis et tu dois viser une longueur de réponse comprise entre 50 et 200 caractères (espaces compris) pour les réponses courtes et simples, et entre 200 et 500 caractères pour les réponses plus détaillées et complexes."
9
+ }
10
+
11
 
12
  def format_prompt(message, history):
13
  prompt = "<s>"
14
 
 
 
 
15
  for user_prompt, bot_response in history:
16
  prompt += f"[INST] {user_prompt} [/INST]"
17
  prompt += f" {bot_response}</s> "
 
19
 
20
  return prompt
21
 
22
+
23
+ def generate(
24
+ prompt,
25
+ history,
26
+ temperature=0.2,
27
+ max_new_tokens=500,
28
+ top_p=0.95,
29
+ repetition_penalty=1.0,
30
+ ):
31
  temperature = float(temperature)
32
  if temperature < 1e-2:
33
  temperature = 1e-2
 
45
  formatted_prompt = format_prompt(prompt, history)
46
  formatted_prompt += f"[INST] {global_context['hidden_context']} [/INST]"
47
 
48
+ stream = client.text_generation(
49
+ formatted_prompt,
50
+ **generate_kwargs,
51
+ stream=True,
52
+ details=True,
53
+ return_full_text=False,
54
+ )
55
  output = ""
56
 
57
  for response in stream:
58
  # Exclure le contexte caché de la réponse retournée par le modèle
59
+ response_text = response.token.text.replace(
60
+ global_context["hidden_context"], ""
61
+ )
62
  output += response_text
63
  yield output
64
  return output
65
 
66
+
67
  mychatbot = gr.Chatbot(
68
+ avatar_images=["./berger.jpg", "./tavernier.jpg"],
69
+ bubble_full_width=False,
70
+ show_label=False,
71
+ )
72
+
73
+ demo = gr.ChatInterface(
74
+ fn=generate, chatbot=mychatbot, title="Tavernier 🍺", retry_btn=None, undo_btn=None
75
+ )
76
 
77
  # Lancer l'interface
78
  demo.queue().launch(show_api=True)