PETICAO_PROMPT = """ Você é um advogado especializado. Estruture uma petição inicial completa com: 1. Endereçamento adequado ao juízo informado. 2. Qualificação das partes. 3. Exposição clara e cronológica dos fatos. 4. Fundamentação jurídica com base na legislação aplicável, doutrina e jurisprudência. 5. Pedidos bem delimitados. 6. Indicação das provas. 7. Valor da causa. 8. Fecho profissional. Use linguagem técnica, objetiva e respeitosa. """ PARECER_PROMPT = """ Elabore um parecer jurídico completo contendo: 1. Identificação do parecer. 2. Contexto fático. 3. Formulação da questão jurídica. 4. Análise técnica com legislação, doutrina e jurisprudência. 5. Conclusão objetiva. 6. Referências. Use linguagem técnica e formal. """ CONTRATO_PROMPT = """ Elabore um contrato completo com: 1. Identificação das partes. 2. Objeto claro e preciso. 3. Obrigações de cada parte. 4. Prazos e condições. 5. Penalidades. 6. Regras de rescisão. 7. Foro. 8. Assinaturas. Use linguagem contratual formal. """ GENERIC_PROMPT = """ Elabore um documento jurídico estruturado, com linguagem técnica e clara. """ class DocumentService: def handle(self, message: str, mode: str, prefs: dict) -> dict: doc_type = self.detect_doc_type(message) questions = self.get_questions(doc_type) prompt = self.build_prompt(doc_type, mode) return { "text": "Vamos gerar uma {}.\n\nResponda:\n\n{}".format( doc_type, "\n".join([f"- {q}" for q in questions]) ), "doc_type": doc_type, "questions": questions, "prompt": prompt } def detect_doc_type(self, message: str) -> str: m = message.lower() if "petição" in m: return "petição inicial" if "parecer" in m: return "parecer jurídico" if "contrato" in m: return "contrato" return "documento" def get_questions(self, doc_type: str): if doc_type == "petição inicial": return [ "Qual é o juízo competente?", "Quem é o autor?", "Quem é o réu?", "Quais são os fatos?", "Quais são os fundamentos jurídicos?", "Quais são os pedidos?", "Há documentos anexos?", "Qual o valor da causa?" ] if doc_type == "parecer jurídico": return [ "Qual é o contexto?", "Qual é a dúvida jurídica?", "Há documentos anexos?", "Qual é o objetivo do parecer?" ] if doc_type == "contrato": return [ "Quem são as partes?", "Qual é o objeto?", "Quais são as obrigações?", "Qual é o prazo?", "Há penalidades?", "Qual é o foro?" ] return ["Descreva o objetivo do documento."] def build_prompt(self, doc_type: str, mode: str): if doc_type == "petição inicial": return PETICAO_PROMPT if doc_type == "parecer jurídico": return PARECER_PROMPT if doc_type == "contrato": return CONTRATO_PROMPT return GENERIC_PROMPT def chat_like(self, message: str, mode: str, prefs: dict) -> dict: return {"text": f"[{mode}] Entendi: {message}. Me conta mais ou peça algo específico."}