Spaces:
vcollos
/
Runtime error

vcollos commited on
Commit
1089574
·
verified ·
1 Parent(s): a82ef26

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -38
app.py CHANGED
@@ -13,8 +13,6 @@ from supabase import create_client, Client
13
  from datetime import datetime
14
  import requests
15
  import logging
16
- from google.cloud import translate_v2 as translate
17
- import google.generativeai as genai
18
 
19
  # Configuração de logging
20
  logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
@@ -29,17 +27,8 @@ supabase: Client = create_client(url, key)
29
  hf_token = os.getenv("HF_TOKEN")
30
 
31
  # Configura as chaves de API da OpenAI e Google AI
32
- OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "Openai")
33
- GOOGLE_AI_KEY = os.getenv("GOOGLE_AI_KEY", "GoogleAi")
34
-
35
- # Configura o Google AI Gemini
36
- try:
37
- genai.configure(api_key=GOOGLE_AI_KEY)
38
- google_ai_available = True
39
- logger.info("✅ Google AI Gemini configurado com sucesso")
40
- except Exception as e:
41
- google_ai_available = False
42
- logger.error(f"❌ Erro ao configurar Google AI Gemini: {e}")
43
 
44
  # Inicializa o modelo base FLUX.1-dev
45
  base_model = "black-forest-labs/FLUX.1-dev"
@@ -158,7 +147,7 @@ def optimize_with_openai(text, character_option):
158
 
159
  def optimize_with_google_ai(text, character_option):
160
  """
161
- Otimiza o prompt usando o Google AI Gemini.
162
  """
163
  try:
164
  # Determina o prompt com base na seleção de personagem
@@ -181,28 +170,40 @@ def optimize_with_google_ai(text, character_option):
181
  Seu prompt deve ser detalhado, claro e deve enfatizar a presença dos DOIS personagens na mesma cena.
182
  Responda APENAS com o prompt otimizado em inglês, sem explicações ou introduções."""
183
 
184
- # Configura o modelo Gemini
185
- generation_config = {
186
- "temperature": 0.7,
187
- "top_p": 1,
188
- "top_k": 32,
189
- "max_output_tokens": 300,
190
  }
191
 
192
- model = genai.GenerativeModel(
193
- model_name="gemini-pro",
194
- generation_config=generation_config
195
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
 
197
- # Cria a conversa
198
- convo = model.start_chat(history=[])
199
- convo.send_message(f"{instruction}\n\nPrompt original: {text}")
200
 
201
- # Obtém a resposta
202
- response = convo.last.text
203
- logger.info(f"✅ Prompt otimizado via Google AI: {response}")
204
 
205
- return response.strip()
206
 
207
  except Exception as e:
208
  logger.error(f"❌ Erro ao otimizar prompt com Google AI: {e}")
@@ -227,11 +228,7 @@ def run_lora(prompt, cfg_scale, steps, randomize_seed, seed, width, height, lora
227
  if ai_option == "OpenAI":
228
  processed_prompt = optimize_with_openai(prompt, character_option)
229
  elif ai_option == "Google AI":
230
- if google_ai_available:
231
- processed_prompt = optimize_with_google_ai(prompt, character_option)
232
- else:
233
- logger.warning("Google AI indisponível, usando OpenAI como fallback")
234
- processed_prompt = optimize_with_openai(prompt, character_option)
235
  elif ai_option == "Nenhum":
236
  # Mantém o prompt original, sem processamento
237
  processed_prompt = prompt
@@ -354,7 +351,7 @@ with gr.Blocks(theme=gr_theme) as app:
354
  ai_option = gr.Radio(
355
  ["Nenhum", "OpenAI", "Google AI"],
356
  label="Método de Otimização",
357
- value="Google AI" if google_ai_available else "OpenAI"
358
  )
359
 
360
  with gr.Column(scale=2):
@@ -383,4 +380,4 @@ with gr.Blocks(theme=gr_theme) as app:
383
  )
384
 
385
  app.queue()
386
- app.launch(share=True)
 
13
  from datetime import datetime
14
  import requests
15
  import logging
 
 
16
 
17
  # Configuração de logging
18
  logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
 
27
  hf_token = os.getenv("HF_TOKEN")
28
 
29
  # Configura as chaves de API da OpenAI e Google AI
30
+ OPENAI_API_KEY = os.getenv("Openai", "")
31
+ GOOGLE_AI_KEY = os.getenv("GoogleAi", "")
 
 
 
 
 
 
 
 
 
32
 
33
  # Inicializa o modelo base FLUX.1-dev
34
  base_model = "black-forest-labs/FLUX.1-dev"
 
147
 
148
  def optimize_with_google_ai(text, character_option):
149
  """
150
+ Otimiza o prompt usando o Google AI API diretamente.
151
  """
152
  try:
153
  # Determina o prompt com base na seleção de personagem
 
170
  Seu prompt deve ser detalhado, claro e deve enfatizar a presença dos DOIS personagens na mesma cena.
171
  Responda APENAS com o prompt otimizado em inglês, sem explicações ou introduções."""
172
 
173
+ # Prepara a requisição para a API do Google Gemini
174
+ headers = {
175
+ "Content-Type": "application/json"
 
 
 
176
  }
177
 
178
+ url = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key={GOOGLE_AI_KEY}"
179
+
180
+ data = {
181
+ "contents": [
182
+ {
183
+ "parts": [
184
+ {
185
+ "text": f"{instruction}\n\nPrompt original: {text}"
186
+ }
187
+ ]
188
+ }
189
+ ],
190
+ "generationConfig": {
191
+ "temperature": 0.7,
192
+ "topK": 32,
193
+ "topP": 1,
194
+ "maxOutputTokens": 300
195
+ }
196
+ }
197
 
198
+ # Faz a requisição para o Google AI
199
+ response = requests.post(url, headers=headers, json=data)
200
+ response.raise_for_status()
201
 
202
+ # Extrai a resposta
203
+ text_response = response.json()["candidates"][0]["content"]["parts"][0]["text"]
204
+ logger.info(f"✅ Prompt otimizado via Google AI: {text_response}")
205
 
206
+ return text_response.strip()
207
 
208
  except Exception as e:
209
  logger.error(f"❌ Erro ao otimizar prompt com Google AI: {e}")
 
228
  if ai_option == "OpenAI":
229
  processed_prompt = optimize_with_openai(prompt, character_option)
230
  elif ai_option == "Google AI":
231
+ processed_prompt = optimize_with_google_ai(prompt, character_option)
 
 
 
 
232
  elif ai_option == "Nenhum":
233
  # Mantém o prompt original, sem processamento
234
  processed_prompt = prompt
 
351
  ai_option = gr.Radio(
352
  ["Nenhum", "OpenAI", "Google AI"],
353
  label="Método de Otimização",
354
+ value="Google AI"
355
  )
356
 
357
  with gr.Column(scale=2):
 
380
  )
381
 
382
  app.queue()
383
+ app.launch(share=True)