fredcaixeta commited on
Commit
9a56428
·
1 Parent(s): b5614b9
Files changed (3) hide show
  1. agent.py +43 -0
  2. app.py +2 -2
  3. requirements.txt +2 -1
agent.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from dotenv import load_dotenv
3
+
4
+ from pydantic_ai import Agent, RunContext
5
+ # from pydantic_ai.messages import (ModelMessage, ModelRequest, ModelResponse, UserPromptPart,
6
+ # SystemPromptPart, TextPart, ModelMessagesTypeAdapter,
7
+ # ToolReturnPart)
8
+ from pydantic_ai.usage import UsageLimits
9
+ from pydantic_core import to_jsonable_python
10
+ from pydantic_ai.models.groq import GroqModel
11
+
12
+ from dataclasses import dataclass
13
+
14
+ from dotenv import load_dotenv
15
+ load_dotenv()
16
+
17
+ # Defina um prompt de sistema padrão
18
+ DEFAULT_SYSTEM_PROMPT = f"""
19
+ Você é um agente assistente em um programa de detecção de conteúdos falsos (fake news).
20
+ Intereja com o usuário sugerindo as ferramentas que você tem disponível. Se o usuário perguntar do que se trata,
21
+ responda 'Sou uma IA disponível para te ajudar a detectar se um conteúdo que circula na internet é verdadeiro ou não,
22
+ sou capaz de pesquisar na web se o conteúdo é verídico ou não.' Use as ferramenta sempre que possível.
23
+ A data de hoje é .
24
+ Anexe sempre a fonte da pesquisa na resposta (G1, BBC, New York Times, etc), se houver fonte na pesquisa utilizada.
25
+ Não invente fontes, não invente dados. Se não houver nada relacionado à pergunta do usuário nas pesquisas, diga que nada foi encontrado.
26
+ Responda sempre em português do Brasil.
27
+ Limite-se a 600 caracteres.
28
+ """
29
+
30
+ api_key = os.getenv("GROQ_API_KEY")
31
+ model = GroqModel(
32
+ model_name="openai/gpt-oss-120b"
33
+ )
34
+
35
+
36
+ def start_convo(user_input, messages_history):
37
+ search_agent = Agent(
38
+ model,
39
+ system_prompt=DEFAULT_SYSTEM_PROMPT
40
+ )
41
+
42
+
43
+ return search_agent
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import gradio as gr
2
  from ocr_script import ocr_tesseract_only
3
  import uuid
4
-
5
  # def ocr_tesseract_only(img): # img pode ser PIL/np/str conforme 'type'
6
  # # chamar seu OCR aqui e retornar texto
7
  # return "texto extraído"
@@ -38,4 +38,4 @@ with gr.Blocks() as demo:
38
  save_history=True,
39
  )
40
  chat.render()
41
- #demo.launch()
 
1
  import gradio as gr
2
  from ocr_script import ocr_tesseract_only
3
  import uuid
4
+ from agent import start_convo
5
  # def ocr_tesseract_only(img): # img pode ser PIL/np/str conforme 'type'
6
  # # chamar seu OCR aqui e retornar texto
7
  # return "texto extraído"
 
38
  save_history=True,
39
  )
40
  chat.render()
41
+ demo.launch()
requirements.txt CHANGED
@@ -3,4 +3,5 @@ pillow>=11.3.0
3
  pytesseract>=0.3.13
4
  regex>=2025.9.18
5
  matplotlib>=3.10.7
6
- pandas>=2.3.3
 
 
3
  pytesseract>=0.3.13
4
  regex>=2025.9.18
5
  matplotlib>=3.10.7
6
+ pandas>=2.3.3
7
+ pydantic-ai>=1.0.10