Andersonx commited on
Commit
5951804
·
verified ·
1 Parent(s): 45638f3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -22
app.py CHANGED
@@ -5,38 +5,31 @@ from llama_cpp import Llama
5
  llm = Llama(model_path="Llama-3.2-3B-Instruct-Q8_0.gguf", n_ctx=512)
6
 
7
  # Definir a mensagem inicial
8
- mensagem_inicial = (
9
- "Olá! Eu sou um atendente virtual da Receita Federal e do Projeto Remessa Conforme. "
10
- "Você pode perguntar tudo sobre como funciona o Remessa Conforme, suas regras e benefícios. "
11
- "Este projeto foi desenvolvido com a colaboração de Anderson Xavier. Como posso te ajudar hoje?"
12
- )
13
-
14
- def respond(message, history, system_message, max_tokens, temperature, top_p):
15
- # Adicionar a mensagem inicial ao histórico se for a primeira interação
16
- if not history:
17
- history = [(mensagem_inicial, "")]
18
-
19
- # Construir o prompt com o histórico atualizado
20
- prompt = system_message + "\n"
21
- for user_msg, bot_msg in history:
22
- if user_msg:
23
- prompt += f"User: {user_msg}\n"
24
- if bot_msg:
25
- prompt += f"Assistant: {bot_msg}\n"
26
- prompt += f"User: {message}\nAssistant:"
27
 
28
  # Executar a inferência com o modelo local
29
  response = ""
30
- result = llm(prompt, max_tokens=max_tokens, temperature=temperature, top_p=top_p, stream=True)
31
 
32
  # Retornar a resposta em streaming
33
  for token in result:
34
  response += token["choices"][0]["text"]
35
  yield response
36
 
37
- # Configurar a interface Gradio com a mensagem inicial
38
  demo = gr.ChatInterface(
39
- respond,
 
40
  additional_inputs=[
41
  gr.Textbox(value="Você está falando com um assistente virtual da Receita Federal.", label="System message"),
42
  gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
 
5
  llm = Llama(model_path="Llama-3.2-3B-Instruct-Q8_0.gguf", n_ctx=512)
6
 
7
  # Definir a mensagem inicial
8
+ mensagem_inicial = [
9
+ ["", "Olá! Eu sou um atendente virtual da Receita Federal e do Projeto Remessa Conforme. "
10
+ "Você pode perguntar tudo sobre como funciona o Remessa Conforme, suas regras e benefícios. "
11
+ "Este projeto foi desenvolvido com a colaboração de Anderson Xavier. Como posso te ajudar hoje?"]
12
+ ]
13
+
14
+ # Função de resposta para processar as interações
15
+ def respond(message, history=[]):
16
+ # Construir o prompt a partir do histórico e da mensagem atual
17
+ prompt = "\n".join([f"User: {user}\nAssistant: {bot}" for user, bot in history])
18
+ prompt += f"\nUser: {message}\nAssistant:"
 
 
 
 
 
 
 
 
19
 
20
  # Executar a inferência com o modelo local
21
  response = ""
22
+ result = llm(prompt, max_tokens=100, temperature=0.7, top_p=0.95, stream=True)
23
 
24
  # Retornar a resposta em streaming
25
  for token in result:
26
  response += token["choices"][0]["text"]
27
  yield response
28
 
29
+ # Configurar a interface Gradio com a mensagem inicial predefinida
30
  demo = gr.ChatInterface(
31
+ fn=respond,
32
+ chatbot=gr.Chatbot(value=mensagem_inicial),
33
  additional_inputs=[
34
  gr.Textbox(value="Você está falando com um assistente virtual da Receita Federal.", label="System message"),
35
  gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),