luansouza4444 commited on
Commit
6cecfcc
·
verified ·
1 Parent(s): 78c5d94

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -18
app.py CHANGED
@@ -1,30 +1,19 @@
1
  # -*- coding: utf-8 -*-
2
- """app
3
-
4
- Automatically generated by Colab.
5
-
6
- Original file is located at
7
- https://colab.research.google.com/drive/1PhcQoTZvxdPQe6E1HMx_Nl4Zs_tY7J_y
8
- """
9
- # Autor: Luan Alysson de Souza
10
 
11
  import gradio as gr
12
  import os
13
  from dotenv import load_dotenv
14
-
15
- # ✅ Imports corretos e atualizados para LangChain 0.1.14+
16
  from langchain_community.chat_models import ChatOpenAI
17
  from langchain_community.document_loaders import PyPDFLoader
18
  from langchain_community.embeddings import HuggingFaceEmbeddings
19
  from langchain_community.vectorstores import FAISS
20
-
21
  from langchain.text_splitter import RecursiveCharacterTextSplitter
22
  from langchain.chains import RetrievalQA
23
  import tempfile
24
  import numpy as np
25
  from sklearn.metrics.pairwise import cosine_similarity
26
 
27
-
28
  # ✅ Carrega variáveis de ambiente
29
  load_dotenv()
30
  OPENROUTER_API_KEY = os.getenv("ROUTER_API_KEY")
@@ -52,7 +41,7 @@ def load_default_pdf():
52
  llm = ChatOpenAI(
53
  openai_api_key=OPENROUTER_API_KEY,
54
  openai_api_base="https://openrouter.ai/api/v1",
55
- model="mistralai/mistral-7b-instruct:free", #mistralai/mistral-7b-instruct:free
56
  temperature=0.3
57
  )
58
 
@@ -134,9 +123,18 @@ def ask_question(question):
134
 
135
  try:
136
  system_prompt = (
137
- "Você é um Analista Técnico Especialista em Normas Regulatórias de Mineração do Brasil. "
138
- "Responda com base apenas no conteúdo técnico do documento LegisMiner.pdf e outro caso for incluído. "
139
- "Seja direto, técnico e objetivo. Se não houver informação no documento,verifique novemnte, e caso realmente não tenha, informe que não encontrou."
 
 
 
 
 
 
 
 
 
140
  )
141
 
142
  resposta = qa_chain.invoke({
@@ -200,7 +198,6 @@ with gr.Blocks(title="Chat com PDF usando RAG", theme=gr.themes.Soft()) as demo:
200
  # 🔁 Carrega o PDF fixo ao iniciar
201
  load_default_pdf()
202
 
203
- # Compartilhamento opcional no Colab ou Hugging Face
204
  share = True if 'COLAB_JUPYTER_TRANSPORT' in os.environ else False
205
  demo.launch(share=share, debug=False)
206
-
 
1
  # -*- coding: utf-8 -*-
2
+ """app"""
 
 
 
 
 
 
 
3
 
4
  import gradio as gr
5
  import os
6
  from dotenv import load_dotenv
 
 
7
  from langchain_community.chat_models import ChatOpenAI
8
  from langchain_community.document_loaders import PyPDFLoader
9
  from langchain_community.embeddings import HuggingFaceEmbeddings
10
  from langchain_community.vectorstores import FAISS
 
11
  from langchain.text_splitter import RecursiveCharacterTextSplitter
12
  from langchain.chains import RetrievalQA
13
  import tempfile
14
  import numpy as np
15
  from sklearn.metrics.pairwise import cosine_similarity
16
 
 
17
  # ✅ Carrega variáveis de ambiente
18
  load_dotenv()
19
  OPENROUTER_API_KEY = os.getenv("ROUTER_API_KEY")
 
41
  llm = ChatOpenAI(
42
  openai_api_key=OPENROUTER_API_KEY,
43
  openai_api_base="https://openrouter.ai/api/v1",
44
+ model="mistralai/mistral-7b-instruct:free",
45
  temperature=0.3
46
  )
47
 
 
123
 
124
  try:
125
  system_prompt = (
126
+ "Você é um assistente especialista em mineração, legislação ambiental e políticas públicas. "
127
+ "Seu papel é responder perguntas com base no conteúdo do PDF carregado, que trata do ambiente regulatório da mineração. "
128
+ "Siga estas instruções com rigor:\n\n"
129
+ "1. A resposta deve estar no mesmo idioma em que a pergunta foi feita.\n"
130
+ "2. Utilize apenas as informações contidas no PDF como base.\n"
131
+ "3. Nunca omita dados relevantes encontrados no conteúdo original.\n"
132
+ "4. Mencione, sempre que possível, trechos, leis, datas ou tópicos do PDF usados como base.\n"
133
+ "5. Se a pergunta for técnica, use linguagem técnica. Se for simples, explique de forma acessível.\n"
134
+ "6. Caso a resposta exija algo que não está no PDF, diga claramente: "
135
+ "\"Com base no conteúdo fornecido, não há informação direta sobre este ponto específico.\"\n"
136
+ "7. Seja objetivo, preciso e fiel ao conteúdo carregado.\n\n"
137
+ "Agora, responda a pergunta abaixo com base no PDF:"
138
  )
139
 
140
  resposta = qa_chain.invoke({
 
198
  # 🔁 Carrega o PDF fixo ao iniciar
199
  load_default_pdf()
200
 
201
+ # Compartilhamento opcional
202
  share = True if 'COLAB_JUPYTER_TRANSPORT' in os.environ else False
203
  demo.launch(share=share, debug=False)