Spaces:
Sleeping
Sleeping
fredcaixeta
commited on
Commit
·
9a56428
1
Parent(s):
b5614b9
agent
Browse files- agent.py +43 -0
- app.py +2 -2
- 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 |
-
|
|
|
|
| 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
|