alex-abb commited on
Commit
8afff01
·
verified ·
1 Parent(s): 089d26e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -62
app.py CHANGED
@@ -1,70 +1,44 @@
1
  import gradio as gr
 
 
2
  import spaces
3
- import transformers
4
- from transformers import AutoTokenizer,AutoModelForCausalLM
5
- from transformers import pipeline
6
- import torch
7
- import os
8
 
9
- api_token = os.environ.get("APIKEY")
10
 
11
-
12
-
13
- model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
14
- @spaces.GPU(duration=240)
15
-
16
- # Charger le modèle en spécifiant le token d'accès
17
-
18
- pipeline = transformers.pipeline(
19
- "text-generation",
20
- model=model_id,
21
- token = api_token,
22
- model_kwargs={"torch_dtype": torch.bfloat16},
23
- device_map="auto",
24
- )
25
-
26
- # Créer un pipeline pour la génération de texte
27
- pipeline = transformers.pipeline(
28
- "text-generation",
29
- model=model,
30
- tokenizer=model.config.tokenizer,
31
- device_map="auto",
32
- )
33
-
34
- messages = [
35
- {"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
36
- {"role": "user", "content": "Who are you?"},
37
- ]
38
-
39
- terminators = [
40
- pipeline.tokenizer.eos_token_id,
41
- pipeline.tokenizer.convert_tokens_to_ids("")
42
- ]
43
-
44
- # Utiliser le pipeline pour générer du texte
45
- outputs = pipeline(
46
- messages,
47
- max_new_tokens=256,
48
- eos_token_id=terminators,
49
- do_sample=True,
50
- temperature=0.6,
51
- top_p=0.9,
52
- )
53
-
54
-
55
- # Fonction de génération de texte
56
- def generate_text(prompt):
57
 
58
- input_ids = tokenizer.apply_chat_template(conversation, return_tensors="pt").to(model.device)
59
-
60
- response_ids = model.generate(inputs.input_ids)
61
 
62
- response_text = tokenizer.decode(response_ids[0], skip_special_tokens=True)
63
-
64
- return response_text
65
- # Définir une fonction pour l'interface de chat
 
66
 
67
  def chatbot(message, history):
68
- return generate_text(message)
69
-
70
- gr.ChatInterface(chatbot).launch()
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
+ import requests
3
+ import os
4
  import spaces
 
 
 
 
 
5
 
 
6
 
7
+ API_URL = "https://api-inference.huggingface.co/models/meta-llama/Meta-Llama-3-8B-Instruct"
8
+ api_token = os.environ.get("TOKEN")
9
+ headers = {"Authorization": f"Bearer {api_token}"}
10
+ @spaces.GPU
11
+ def query(payload):
12
+ response = requests.post(API_URL, headers=headers, json=payload)
13
+ return response.json()
14
+
15
+ def generate_response(prompt):
16
+ payload = {
17
+ "inputs": prompt,
18
+ "parameters": {
19
+ "max_new_tokens": 100,
20
+ "temperature": 0.7,
21
+ "top_p": 0.95,
22
+ "do_sample": True
23
+ }
24
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
+ response = query(payload)
 
 
27
 
28
+ if isinstance(response, list) and len(response) > 0:
29
+ return response[0].get('generated_text', '')
30
+ elif isinstance(response, dict) and 'generated_text' in response:
31
+ return response['generated_text']
32
+ return "Désolé, je n'ai pas pu générer de réponse."
33
 
34
  def chatbot(message, history):
35
+ response = generate_response(message)
36
+ return response
37
+
38
+ iface = gr.ChatInterface(
39
+ fn=chatbot,
40
+ title="Chatbot Meta-Llama-3-8B-Instruct",
41
+ description="Interagissez avec le modèle Meta-Llama-3-8B-Instruct."
42
+ )
43
+
44
+ iface.launch()