Spaces:
Sleeping
Sleeping
Commit
·
b6dfa57
1
Parent(s):
2b7c617
Correção do time out e evolução para troca do sonnet pelo grok no processamento do merge
Browse files- Dockerfile +1 -1
- app.py +6 -6
- config.py +3 -3
- templates/index.html +1 -1
Dockerfile
CHANGED
@@ -23,4 +23,4 @@ COPY . .
|
|
23 |
CMD ["gunicorn", "--bind", "0.0.0.0:7860", "app:app"]
|
24 |
|
25 |
# Adiciona o parâmetro --timeout 300 para aumentar o tempo limite para 300 segundos (5 minutos)
|
26 |
-
CMD ["gunicorn", "--bind", "0.0.0.0:7860", "--timeout", "
|
|
|
23 |
CMD ["gunicorn", "--bind", "0.0.0.0:7860", "app:app"]
|
24 |
|
25 |
# Adiciona o parâmetro --timeout 300 para aumentar o tempo limite para 300 segundos (5 minutos)
|
26 |
+
CMD ["gunicorn", "--bind", "0.0.0.0:7860", "--timeout", "1300", "app:app"]
|
app.py
CHANGED
@@ -99,7 +99,7 @@ def process():
|
|
99 |
yield f"data: {json.dumps({'progress': 33, 'message': 'Agora, o Claude Sonnet está aprofundando o texto...', 'partial_result': {'id': 'grok-output', 'content': grok_html}})}\n\n"
|
100 |
|
101 |
prompt_sonnet = PromptTemplate(template=PROMPT_HIERARQUICO_SONNET, input_variables=["solicitacao_usuario", "texto_para_analise"])
|
102 |
-
claude_with_max_tokens = claude_llm.bind(max_tokens=
|
103 |
chain_sonnet = LLMChain(llm=claude_with_max_tokens, prompt=prompt_sonnet)
|
104 |
resposta_sonnet = chain_sonnet.invoke({"solicitacao_usuario": solicitacao_usuario, "texto_para_analise": resposta_grok})['text']
|
105 |
if not resposta_sonnet or not resposta_sonnet.strip(): raise ValueError("Falha no serviço Claude Sonnet: Sem resposta.")
|
@@ -118,7 +118,7 @@ def process():
|
|
118 |
|
119 |
return Response(generate_stream(mode, form_data, temp_file_paths), mimetype='text/event-stream')
|
120 |
|
121 |
-
# --- ROTA DE MERGE ATUALIZADA PARA
|
122 |
@app.route('/merge', methods=['POST'])
|
123 |
def merge():
|
124 |
data = request.get_json()
|
@@ -129,10 +129,10 @@ def merge():
|
|
129 |
|
130 |
prompt_merge = PromptTemplate(template=PROMPT_ATOMICO_MERGE, input_variables=["solicitacao_usuario", "texto_para_analise_grok", "texto_para_analise_sonnet", "texto_para_analise_gemini"])
|
131 |
|
132 |
-
|
133 |
-
chain_merge = LLMChain(llm=
|
134 |
|
135 |
-
yield f"data: {json.dumps({'progress': 50, 'message': 'Enviando textos para o
|
136 |
|
137 |
resposta_merge = chain_merge.invoke({
|
138 |
"solicitacao_usuario": data.get('solicitacao_usuario'),
|
@@ -142,7 +142,7 @@ def merge():
|
|
142 |
})['text']
|
143 |
|
144 |
if not resposta_merge or not resposta_merge.strip():
|
145 |
-
raise ValueError("Falha no serviço de Merge (
|
146 |
|
147 |
merge_html = markdown2.markdown(resposta_merge, extras=["fenced-code-blocks", "tables"])
|
148 |
|
|
|
99 |
yield f"data: {json.dumps({'progress': 33, 'message': 'Agora, o Claude Sonnet está aprofundando o texto...', 'partial_result': {'id': 'grok-output', 'content': grok_html}})}\n\n"
|
100 |
|
101 |
prompt_sonnet = PromptTemplate(template=PROMPT_HIERARQUICO_SONNET, input_variables=["solicitacao_usuario", "texto_para_analise"])
|
102 |
+
claude_with_max_tokens = claude_llm.bind(max_tokens=12000)
|
103 |
chain_sonnet = LLMChain(llm=claude_with_max_tokens, prompt=prompt_sonnet)
|
104 |
resposta_sonnet = chain_sonnet.invoke({"solicitacao_usuario": solicitacao_usuario, "texto_para_analise": resposta_grok})['text']
|
105 |
if not resposta_sonnet or not resposta_sonnet.strip(): raise ValueError("Falha no serviço Claude Sonnet: Sem resposta.")
|
|
|
118 |
|
119 |
return Response(generate_stream(mode, form_data, temp_file_paths), mimetype='text/event-stream')
|
120 |
|
121 |
+
# --- ROTA DE MERGE ATUALIZADA PARA USAR GROK ---
|
122 |
@app.route('/merge', methods=['POST'])
|
123 |
def merge():
|
124 |
data = request.get_json()
|
|
|
129 |
|
130 |
prompt_merge = PromptTemplate(template=PROMPT_ATOMICO_MERGE, input_variables=["solicitacao_usuario", "texto_para_analise_grok", "texto_para_analise_sonnet", "texto_para_analise_gemini"])
|
131 |
|
132 |
+
# ATUALIZAÇÃO: O merge agora será feito pelo GROK
|
133 |
+
chain_merge = LLMChain(llm=grok_llm, prompt=prompt_merge)
|
134 |
|
135 |
+
yield f"data: {json.dumps({'progress': 50, 'message': 'Enviando textos para o GROK para consolidação...'})}\n\n"
|
136 |
|
137 |
resposta_merge = chain_merge.invoke({
|
138 |
"solicitacao_usuario": data.get('solicitacao_usuario'),
|
|
|
142 |
})['text']
|
143 |
|
144 |
if not resposta_merge or not resposta_merge.strip():
|
145 |
+
raise ValueError("Falha no serviço de Merge (GROK): Sem resposta.")
|
146 |
|
147 |
merge_html = markdown2.markdown(resposta_merge, extras=["fenced-code-blocks", "tables"])
|
148 |
|
config.py
CHANGED
@@ -61,7 +61,7 @@ Com base na solicitação original do usuário e no texto gerado pelo primeiro e
|
|
61 |
---
|
62 |
|
63 |
**Suas Instruções:**
|
64 |
-
1. **Valide se o texto atingiu a quantidade de palavras mínimas (4000 palavras)**.
|
65 |
2. **Analise o texto:** Verifique a coesão, coerência e profundidade dos argumentos.
|
66 |
3. **Aprofunde e Detalhe:** Identifique pontos que podem ser mais explorados. Adicione detalhes, exemplos e nuances que enriqueçam o conteúdo original.
|
67 |
4. **Faça Correções:** Corrija eventuais imprecisões conceituais ou argumentativas.
|
@@ -88,7 +88,7 @@ Você é o revisor final. Sua função é polir e aperfeiçoar o texto que já p
|
|
88 |
|
89 |
**Suas Instruções:**
|
90 |
1. **Análise Crítica Final:** Leia o texto atentamente, buscando a máxima qualidade, clareza e profundidade.
|
91 |
-
2. **Valide se o texto atingiu a quantidade de palavras mínimas (4000 palavras)
|
92 |
3. **Correções e Complementos Finais:** Adicione os toques finais. Melhore a fluidez entre os parágrafos, enriqueça o vocabulário e adicione insights que possam ter sido omitidos.
|
93 |
4. **Não Resuma ou Reduza:** Assim como o revisor anterior, seu papel é adicionar valor e profundidade, não remover conteúdo.
|
94 |
5. **Garantia de Qualidade:** Assegure que o texto final atende a todos os requisitos da solicitação original do usuário de forma exemplar.
|
@@ -168,7 +168,7 @@ Com base na solicitação original do usuário e nos textos-base fornecidos, sua
|
|
168 |
|
169 |
**Suas Instruções:**
|
170 |
- **Estrutura:** Analise e escolha a melhor estrutura de seções entre os 3 textos e aplique no texto consolidado. A melhor estrutura de seções é aquela que melhor entendeu o objetivo da solicitação do usuário e que mais conseguir se aprofundar na abordagem do tema.
|
171 |
-
- **Valide se o texto atingiu a quantidade de palavras mínimas (4000 palavras)
|
172 |
- **Analise o texto:** Verifique a coesão, coerência e profundidade dos argumentos.
|
173 |
- **Consolidação:** Identifique os pontos fortes de cada texto e gere um texto final consolidado. Cuide para o que texto não fique redundante. Ou seja, voltando nos mesmos assuntos e conceitos.
|
174 |
- **Faça Correções:** Corrija eventuais imprecisões conceituais ou argumentativas.
|
|
|
61 |
---
|
62 |
|
63 |
**Suas Instruções:**
|
64 |
+
1. **Valide se o texto atingiu a quantidade de palavras mínimas (4000 palavras) e máxima (5000 palavras)**.
|
65 |
2. **Analise o texto:** Verifique a coesão, coerência e profundidade dos argumentos.
|
66 |
3. **Aprofunde e Detalhe:** Identifique pontos que podem ser mais explorados. Adicione detalhes, exemplos e nuances que enriqueçam o conteúdo original.
|
67 |
4. **Faça Correções:** Corrija eventuais imprecisões conceituais ou argumentativas.
|
|
|
88 |
|
89 |
**Suas Instruções:**
|
90 |
1. **Análise Crítica Final:** Leia o texto atentamente, buscando a máxima qualidade, clareza e profundidade.
|
91 |
+
2. **Valide se o texto atingiu a quantidade de palavras mínimas (4000 palavras) e máxima (5000 palavras)**.
|
92 |
3. **Correções e Complementos Finais:** Adicione os toques finais. Melhore a fluidez entre os parágrafos, enriqueça o vocabulário e adicione insights que possam ter sido omitidos.
|
93 |
4. **Não Resuma ou Reduza:** Assim como o revisor anterior, seu papel é adicionar valor e profundidade, não remover conteúdo.
|
94 |
5. **Garantia de Qualidade:** Assegure que o texto final atende a todos os requisitos da solicitação original do usuário de forma exemplar.
|
|
|
168 |
|
169 |
**Suas Instruções:**
|
170 |
- **Estrutura:** Analise e escolha a melhor estrutura de seções entre os 3 textos e aplique no texto consolidado. A melhor estrutura de seções é aquela que melhor entendeu o objetivo da solicitação do usuário e que mais conseguir se aprofundar na abordagem do tema.
|
171 |
+
- **Valide se o texto atingiu a quantidade de palavras mínimas (4000 palavras) e máxima (5000 palavras)**.
|
172 |
- **Analise o texto:** Verifique a coesão, coerência e profundidade dos argumentos.
|
173 |
- **Consolidação:** Identifique os pontos fortes de cada texto e gere um texto final consolidado. Cuide para o que texto não fique redundante. Ou seja, voltando nos mesmos assuntos e conceitos.
|
174 |
- **Faça Correções:** Corrija eventuais imprecisões conceituais ou argumentativas.
|
templates/index.html
CHANGED
@@ -104,7 +104,7 @@
|
|
104 |
mockContainer.style.display = this.checked ? 'block' : 'none';
|
105 |
});
|
106 |
processingModeSwitch.addEventListener('change', function() {
|
107 |
-
document.getElementById('flow-description').textContent = this.checked ? "GROK | Claude Sonnet | Gemini
|
108 |
});
|
109 |
|
110 |
// --- Lógica de Upload ---
|
|
|
104 |
mockContainer.style.display = this.checked ? 'block' : 'none';
|
105 |
});
|
106 |
processingModeSwitch.addEventListener('change', function() {
|
107 |
+
document.getElementById('flow-description').textContent = this.checked ? "GROK | Claude Sonnet | Gemini" : "GROK ➔ Claude Sonnet ➔ Gemini";
|
108 |
});
|
109 |
|
110 |
// --- Lógica de Upload ---
|