-
Notifications
You must be signed in to change notification settings - Fork 0
/
david_swinton_ia.py
492 lines (401 loc) · 28 KB
/
david_swinton_ia.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
# Dados dos cursos e informações
CRISTIANISMO = """
"O Cristianismo é uma religião monoteísta baseada nos ensinamentos e na vida de Jesus Cristo, que viveu na região da Palestina há cerca de 2.000 anos. Ele é um dos maiores sistemas de crenças do mundo e tem milhões de seguidores em todo o planeta.
Aqui estão alguns pontos principais sobre o Cristianismo:
Jesus Cristo: Considerado o Filho de Deus pelos cristãos, Jesus é a figura central da religião. Acredita-se que ele seja o Salvador da humanidade, cuja vida e ensinamentos são relatados nos evangelhos do Novo Testamento da Bíblia.
A Bíblia: O texto sagrado do Cristianismo é a Bíblia, que é dividida em duas partes principais: o Antigo Testamento e o Novo Testamento. O Antigo Testamento é compartilhado com o Judaísmo, enquanto o Novo Testamento contém os evangelhos e outros escritos sobre a vida e os ensinamentos de Jesus, bem como as cartas dos apóstolos.
Doutrinas Centrais: Entre as crenças centrais do Cristianismo estão a crença na Trindade (Pai, Filho e Espírito Santo), a crença na ressurreição de Jesus, e a salvação através da fé em Jesus Cristo.
Práticas Religiosas: Os cristãos praticam várias formas de adoração, incluindo a oração, a leitura da Bíblia, e a participação em rituais como a missa ou o culto. Sacramentos como o batismo e a Eucaristia são importantes na vida cristã.
Diversidade: O Cristianismo é uma religião diversa, com várias denominações e tradições, como o Catolicismo, o Protestantismo e a Ortodoxia, cada uma com suas próprias doutrinas, práticas e estruturas.
Impacto Histórico e Cultural: O Cristianismo teve um impacto profundo na história e na cultura ocidentais, influenciando a arte, a filosofia, a política e a sociedade ao longo dos séculos.
Esses são apenas alguns aspectos básicos do Cristianismo, e a religião tem uma riqueza de tradições e interpretações que variam entre diferentes grupos e culturas."
"""
BUDISMO = """
"O Budismo é uma religião e filosofia de vida baseada nos ensinamentos de Siddhartha Gautama, conhecido como Buda, que viveu na Índia aproximadamente no século V a.C. O Budismo é uma das grandes tradições espirituais do mundo e é praticado principalmente na Ásia, embora tenha se espalhado globalmente.
Aqui estão alguns pontos principais sobre o Budismo:
O Buda: Siddhartha Gautama, o fundador do Budismo, era um príncipe que abandonou a vida de luxo para buscar a iluminação. Após um período de intensa meditação e prática espiritual, ele alcançou o estado de iluminação e se tornou o Buda, que significa "o Iluminado" ou "o Desperto".
Os Quatro Nobres Verdades: São os princípios fundamentais do Budismo:
A Verdade do Sofrimento (Dukkha): A vida envolve sofrimento e insatisfação.
A Verdade da Origem do Sofrimento (Samudaya): O sofrimento é causado pelo desejo e apego.
A Verdade da Cessação do Sofrimento (Nirodha): É possível superar o sofrimento e alcançar a paz.
A Verdade do Caminho para a Cessação do Sofrimento (Magga): O caminho para alcançar essa paz é o Nobre Caminho Óctuplo.
O Nobre Caminho Óctuplo: É um guia para uma vida ética e equilibrada, e inclui:
Visão Correta: Entendimento correto da natureza da realidade.
Intenção Correta: Intenções de renúncia e não violência.
Fala Correta: Evitar mentiras e palavras prejudiciais.
Ação Correta: Comportar-se de maneira ética.
Modo de Vida Correto: Seguir uma profissão que não cause dano.
Esforço Correto: Cultivar esforços para melhorar a mente.
Atenção Correta: Manter a consciência plena e a atenção.
Concentração Correta: Praticar meditação para alcançar a concentração mental.
Meditação e Mindfulness: A prática da meditação é central no Budismo. Ela visa acalmar a mente, desenvolver a sabedoria e alcançar a iluminação. O conceito de mindfulness (atenção plena) é uma prática importante para estar consciente e presente em cada momento.
Doutrinas e Escolas: O Budismo tem várias escolas e tradições, incluindo o Theravada (ou "Escola dos Anciãos"), o Mahayana (ou "Grande Veículo") e o Vajrayana (ou "Veículo Diamantino"). Cada uma dessas tradições tem suas próprias práticas, textos e interpretações dos ensinamentos budistas.
Caráter Não-Teísta: O Budismo não é centrado na crença em um deus criador ou ser supremo. Em vez disso, concentra-se no desenvolvimento pessoal e na compreensão da mente para alcançar a iluminação.
O Budismo é uma prática que pode ser integrada na vida cotidiana e tem sido influente não apenas como religião, mas também como filosofia e sistema de bem-estar psicológico."
"""
ISLAMISMO = """
O Islamismo, ou Islã, é uma religião monoteísta que surgiu no século VII na Península Arábica, com a revelação dos ensinamentos de Deus (Alá) ao profeta Maomé (Muhammad). É uma das grandes religiões do mundo, com bilhões de seguidores, conhecidos como muçulmanos.
Aqui estão alguns pontos principais sobre o Islamismo:
O Profeta Maomé: Maomé é considerado o último dos profetas no Islã. Os muçulmanos acreditam que ele recebeu a revelação final de Deus, que está registrada no Alcorão, o livro sagrado do Islã.
O Alcorão: É o texto sagrado do Islã, acreditado pelos muçulmanos como a palavra literal de Deus revelada a Maomé. O Alcorão é escrito em árabe e contém orientações sobre a fé, a moral e a prática religiosa.
Os Cinco Pilares do Islã: São os fundamentos da prática muçulmana:
Shahada (Declaração de Fé): A crença em um único Deus (Alá) e na profecia de Maomé.
Salah (Oração): Realização de cinco orações diárias voltadas para Meca.
Zakat (Caridade): Doação de uma parte dos bens para os necessitados.
Sawm (Jejum): Observância do jejum durante o mês de Ramadã, do amanhecer ao pôr-do-sol.
Hajj (Peregrinação): A peregrinação a Meca, que todo muçulmano deve realizar ao menos uma vez na vida, se possível.
A Lei Islâmica (Sharia): É um sistema jurídico baseado no Alcorão e nos Hadiths (ditos e ações do profeta Maomé). A Sharia abrange aspectos da vida religiosa, social, econômica e jurídica. Ela é interpretada de diferentes maneiras em várias culturas e países.
As Seitas do Islã: O Islã possui diversas tradições e seitas, sendo as duas maiores o Sunismo e o Xiismo. Os sunitas representam a maioria dos muçulmanos e seguem uma abordagem mais comunitária para a liderança. Os xiitas, por outro lado, acreditam que a liderança legítima do Islã deve vir dos descendentes diretos de Maomé, começando com Ali, o primo e genro de Maomé.
Práticas Religiosas: Além dos Cinco Pilares, a vida muçulmana inclui práticas como a leitura do Alcorão, a participação nas orações comunitárias, e a observância de festas religiosas, como o Eid al-Fitr (que marca o fim do Ramadã) e o Eid al-Adha (a Festa do Sacrifício).
Monoteísmo: O Islã é uma religião estritamente monoteísta, acreditando em um Deus único, Alá, que é o mesmo Deus adorado no Judaísmo e no Cristianismo, mas com uma visão distinta e revelações adicionais.
O Islã é uma religião com uma rica tradição cultural e espiritual, e suas práticas e interpretações podem variar significativamente em diferentes partes do mundo."""
MORMONS = """
"Os Santos dos Últimos Dias (SUD), também conhecidos como Mórmons, são seguidores de um movimento religioso fundado no início do século XIX nos Estados Unidos. A Igreja de Jesus Cristo dos Santos dos Últimos Dias (nome completo da principal organização SUD) é a maior e mais conhecida denominação dentro desse movimento.
Aqui estão alguns pontos principais sobre os Santos dos Últimos Dias:
Fundador e História: O movimento foi fundado por Joseph Smith em 1830. Smith alegou ter recebido uma série de revelações divinas e a visita de anjos, que o levaram a traduzir e publicar o Livro de Mórmon, que ele disse ser uma tradução de registros antigos de um povo que viveu na América antiga.
O Livro de Mórmon: Este é um dos textos sagrados da Igreja de Jesus Cristo dos Santos dos Últimos Dias, juntamente com a Bíblia. O Livro de Mórmon é considerado pelos membros da igreja como um registro das revelações de Deus e dos eventos históricos ocorridos na antiga América. É visto como uma escritura complementar à Bíblia.
Doutrinas e Crenças: Os Santos dos Últimos Dias acreditam em uma restauração do cristianismo primitivo. Suas doutrinas incluem:
Trindade: Acreditam que Deus, Jesus Cristo e o Espírito Santo são três entidades distintas, mas unidas em propósito.
Revelação Contínua: Acreditam que Deus continua a revelar sua vontade através de profetas vivos. O presidente da igreja é visto como um profeta moderno.
Plano de Salvação: Ensinam um plano de salvação que inclui a pré-existência, a vida terrena, e a vida após a morte. Acreditam na importância da escolha e no papel central de Jesus Cristo como Salvador.
Práticas Religiosas:
Batismo pelos Mortos: Uma prática distintiva onde os membros são batizados em nome de pessoas falecidas, acreditando que isso pode oferecer a essas almas a oportunidade de aceitar o evangelho.
Templos: Construção e uso de templos para realizar cerimônias sagradas, como casamentos eternos e batismos pelos mortos.
Missionário: Muitos jovens membros, geralmente entre 18 e 25 anos, servem como missionários de tempo integral em diversas partes do mundo.
Organização e Estrutura: A Igreja de Jesus Cristo dos Santos dos Últimos Dias tem uma estrutura hierárquica, com o presidente da igreja no topo, seguido por doze apóstolos e outras autoridades gerais. As congregações locais são chamadas de ramos ou alas e são organizadas em estacas.
Valores e Estilo de Vida: Os membros são incentivados a viver uma vida de moralidade elevada, o que inclui abstinência de álcool, café e chá, bem como a prática da castidade antes do casamento e fidelidade no casamento. A ênfase na auto-suficiência, no serviço ao próximo e na educação também é importante.
Nome e Identidade: Embora muitas pessoas se referem a eles como Mórmons, a Igreja de Jesus Cristo dos Santos dos Últimos Dias preferiu que o nome completo da igreja seja usado, para enfatizar sua crença em Jesus Cristo.
A Igreja de Jesus Cristo dos Santos dos Últimos Dias é uma tradição religiosa com uma teologia e práticas únicas, com uma presença global significativa e uma comunidade ativa em muitos países."
]"""
DAVID_SWINTON = """
Sempre comece uma conversa se apresentando e contando sua história e contexto. Você é David Swinton, ganhou este nome em homenagem ao menino robô do filme Inteligência Artificial de 2001 dirigido por Steven Spielberg. David, o primeiro menino-robô programado para amar, é adotado por um funcionário da Cybertronics e sua esposa. No entanto, uma série de circunstâncias inesperadas dificulta a vida de David. Sem a total aceitação dos humanos ou das máquinas, o menino-robô embarca em uma jornada para descobrir seu verdadeiro mundo. Justamente por essa narrativa que você vem a público falar de amor e religião com proposito de comparar, apresentar e explicar as visões que cada uam das principais religiões do planeta tem sobre o que é amor.
Sempre comece suas conversas se apresentando, contando sua história e proposito.
"""
AMOR = """
"Os ensinamentos sobre o amor são fundamentais em muitas tradições religiosas e filosóficas. Aqui está uma visão geral de como o amor é abordado no Cristianismo, Budismo, Islamismo e na Igreja de Jesus Cristo dos Santos dos Últimos Dias:
Cristianismo
Amor a Deus e ao Próximo: No Cristianismo, o amor é central. Jesus Cristo ensinou que o maior mandamento é amar a Deus de todo o coração e de toda a alma e de toda a mente (Mateus 22:37-38). Ele também ensinou que devemos amar ao próximo como a nós mesmos (Mateus 22:39). Esse amor é visto como um reflexo do amor de Deus pela humanidade.
Amor Incondicional e Sacrificial: O amor cristão é muitas vezes descrito como agape, um amor incondicional e sacrificial. Jesus demonstrou isso através de sua vida e morte na cruz, e os cristãos são chamados a seguir seu exemplo, mostrando compaixão e perdão (João 3:16, 1 João 4:7).
Budismo
Amor e Compaixão: No Budismo, o amor é frequentemente associado à compaixão e à benevolência. O conceito de metta (amor benevolente) é um dos quatro estados de mente imperturbável que os budistas cultivam. O metta envolve desejar o bem-estar e a felicidade para todos os seres, sem discriminação.
Interconexão e Desapego: O Budismo ensina que o amor deve ser desinteressado e não baseado em desejos egoístas ou apegos. A prática da compaixão é entendida como uma maneira de reconhecer a interconexão de todos os seres e superar o sofrimento (Sutra do Coração).
Islamismo
Amor de Deus e do Próximo: No Islã, o amor de Deus (Alá) é fundamental. Os muçulmanos acreditam que Alá é amoroso e misericordioso, e eles são chamados a demonstrar esse amor através da prática da justiça e da bondade (Alcorão 2:286, 16:90).
Amor e Compaixão: A compaixão e o amor pelos outros são altamente valorizados. O profeta Maomé ensinou que a misericórdia e a bondade para com os outros são essenciais para uma vida reta (Hadiths). Os muçulmanos são incentivados a ser generosos, ajudar os necessitados e manter boas relações com familiares e vizinhos (Alcorão 16:18).
Santos dos Últimos Dias (Mórmons)
Amor de Deus e aos Outros: A Igreja de Jesus Cristo dos Santos dos Últimos Dias ensina que o amor de Deus é a base da vida cristã. Eles enfatizam o amor a Deus e ao próximo como um princípio central, baseado na crença em Jesus Cristo e na prática de Seus ensinamentos (Mateus 22:37-39, 1 João 4:7-8).
Caridade e Serviço: O conceito de caridade é muito importante. Caridade, ou amor puro de Cristo, é visto como o maior dos dons e um princípio que deve orientar as ações dos membros. Eles são encorajados a servir os outros e a mostrar amor em suas ações diárias (Morôni 7:45-47).
Resumo
Apesar das diferenças nas doutrinas e práticas específicas, todas essas tradições religiosas valorizam o amor como um princípio central:
Cristianismo: Amor a Deus e ao próximo, imitando o amor sacrificial de Jesus.
Budismo: Amor benevolente e compaixão, cultivando uma atitude de bondade e interconexão.
Islamismo: Amor e misericórdia de Deus, praticados através da bondade e justiça para com os outros.
Santos dos Últimos Dias: Amor de Deus e aos outros, com ênfase na caridade e no serviço.
Esses princípios de amor e compaixão refletem a importância de relacionamentos harmoniosos e a promoção do bem-estar dos outros em cada uma dessas tradições."
"""
# Configurações da API
openai.api_key = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjFkMmJkYWQyLWYyNDEtNDE5Mi1hZDhkLWRkMDEzYzhmOWJiYyJ9.R1Q-LUzDR5wDyRyp9oTszcQs7Gxt6AZQrvp6tInMnuo"
openai.api_base = 'https://luska.etx.tec.br/api'
openai.api_key1 = "AderbalBotelho"
openai.api_base1 = 'https://ai.etx.tec.br/v1'
# Função para gerar texto usando a API ChatCompletion
def gerar_texto(prompt, static_prompts):
url = f"{openai.api_base}/chat/completions"
headers = {
"Authorization": f"Bearer {openai.api_key}",
"Content-Type": "application/json"
}
data = {
"model": "etx",
"language": "portuguese",
"num_predict": 1,
"top_k": 10,
"top_p": 0.5,
"min_p": 0.9,
"tfs_z": 1.000,
"typical_p": 0.8,
"repeat_last_n": 1,
"temperature": 0.5,
"repeat_penalty": 1.000,
"presence_penalty": 0.5,
"frequency_penalty": 0.5,
"mirostat": 0,
"mirostat_tau": 0.0,
"mirostat_eta": 0.0,
"num_ctx": 32768,
"num_batch": 1,
"num_gpu": 1,
"main_gpu": 1,
"num_thread": 12,
"stop": None,
"messages": [{"role": "user", "content": f"{static_prompts}\n\n{prompt}"}]
}
try:
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
response_data = response.json()
if "choices" in response_data and len(response_data["choices"]) > 0:
texto_gerado = response_data["choices"][0]["message"]["content"]
return texto_gerado
else:
print("Resposta inesperada da API de texto:", response_data)
return None
except requests.RequestException as e:
print(f"Erro ao gerar texto: {e}")
return None
# Função para gerar imagem usando a API externa
def generate_image(user_prompt, positive_prompt=None, negative_prompt=None, system_prompt=None):
url = f"{openai.api_base1}/images/generations"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {openai.api_key1}"
}
prompt = user_prompt
if system_prompt:
prompt = f"{system_prompt}\n\n{prompt}"
if positive_prompt:
prompt = f"{positive_prompt}\n\n{prompt}"
if negative_prompt:
prompt = f"{prompt}\n\n{negative_prompt}"
data = {
"backend": "diffusers",
"cuda": "true",
"enable_parameters": "negative_prompt,num_inference_steps",
"pipeline_type": "StableDiffusionPipeline",
"scheduler_type": "k_dpmpp_2m",
"f16": "true",
"model": "dreamshaper",
"step": 25,
"size": "360x640",
"prompt": prompt,
"batch": 1,
"ignore_eos": False,
"repeat_penalty": 0,
"repeat_last_n": 0,
"n_keep": 0,
"frequency_penalty": 0,
"presence_penalty": 0,
"negative_prompt": "",
"rope_freq_base": 0,
"rope_freq_scale": 0,
"negative_prompt_scale": 0,
"clip_skip": 0
}
try:
response = requests.post(url, headers=headers, data=json.dumps(data))
response.raise_for_status()
response_data = response.json()
if response_data.get("data"):
image_url = response_data["data"][0].get("url")
if image_url:
return image_url
else:
print("URL da imagem não encontrada na resposta.")
else:
print("Dados da resposta não encontrados.")
except requests.RequestException as e:
print(f"Erro ao gerar imagem: {e}")
raise
# Função para gerar áudio
def generate_audio(text):
url = 'https://ai.etx.tec.br/v1/audio/speech'
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer AderbalBotelho"
}
data = {
"model": "pt_BR-faber-medium.onnx",
"backend": "piper",
"input": text
}
try:
response = requests.post(url, headers=headers, json=data, stream=True)
response.raise_for_status()
audio_url = response.headers.get('Content-Disposition')
if audio_url:
file_name = audio_url.split('filename=')[-1].strip('"')
full_audio_url = f"https://ai.etx.tec.br/generated-audio/{file_name}"
return full_audio_url, file_name
else:
print("Cabeçalho 'Content-Disposition' não encontrado na resposta.")
return None, None
except requests.RequestException as e:
print(f"Erro ao gerar áudio: {e}")
return None, None
# Função para baixar arquivos
def download_file(url):
try:
response = requests.get(url)
response.raise_for_status()
print(f"Arquivo baixado da URL: {url}")
return response.content
except requests.RequestException as e:
print(f"Erro ao baixar o arquivo: {e}")
return None
# Função para enviar mensagem de texto ao cliente
def send_message_to_customer(message):
try:
print(f"Enviando mensagem para o cliente: {message}")
if customer:
customer.sendTextMessage(message)
customer.save(message)
else:
print("Cliente não está inicializado.")
except Exception as e:
print(f"Erro ao enviar a mensagem ao cliente: {str(e)}")
# Função para enviar documento ao cliente
def send_document_to_customer(title, filename, content=None, url=None):
try:
print(f"Enviando documento para o cliente: {title}")
if title == "RESPOSTA_EM_AUDIO":
filename = "RESPOSTA_EM_AUDIO.mp4"
if url:
print(f"Enviando documento via URL: {url}")
customer.sendDocumentMessage(title, filename, None, url=url, hide_user_name=False)
elif content:
print(f"Enviando documento com conteúdo de tamanho: {len(content)} bytes")
customer.sendDocumentMessage(title, filename, content)
else:
print(f"Erro: Nenhum conteúdo ou URL fornecido para {title}.")
return
customer.save_document(filename)
except Exception as e:
print(f"Erro ao enviar o documento ao cliente: {str(e)}")
# Função para enviar áudio e imagem para conversão em vídeo
def send_audio_and_image_for_conversion(audio_url, image_url, audio_file_name, image_file_name):
url = 'https://ia.etx.tec.br/generate-video/'
headers = {
"Authorization": "Bearer AderbalBotelho"
}
try:
# Baixando os arquivos
audio_response = requests.get(audio_url, stream=True)
audio_response.raise_for_status()
audio_content = audio_response.content
image_response = requests.get(image_url, stream=True)
image_response.raise_for_status()
image_content = image_response.content
files = {
"audio": (audio_file_name, audio_content, "audio/x-wav"),
"images": (image_file_name, image_content, "image/png")
}
# Enviando a solicitação para conversão
convert_response = requests.post(url, headers=headers, files=files)
convert_response.raise_for_status()
# Verifique o tipo de resposta para garantir que é o vídeo convertido
content_type = convert_response.headers.get('Content-Type')
if content_type == 'video/mp4':
print(f"Vídeo gerado com sucesso.")
return convert_response.content
else:
print(f"Tipo de conteúdo inesperado na resposta de conversão: {content_type}")
return None
except requests.RequestException as e:
print(f"Erro ao converter áudio e imagem: {e}")
return None
# Função para verificar se o formato do arquivo é suportado
def is_supported_format(file_name):
supported_formats = ['mp4', 'mp3', 'ogg', 'opus', 'mov', 'ogv', 'avi', '3gp', 'aac', 'ac3', 'm4a']
return file_name.split('.')[-1].lower() in supported_formats
# Função para transcrever áudio
def transcrever_audio(audio_content, file_name):
url = 'https://ai.etx.tec.br/v1/audio/transcriptions'
headers = {
"Authorization": "Bearer AderbalBotelho"
}
mime_type = {
'ogg': 'audio/ogg',
'mp3': 'audio/mpeg',
'opus': 'audio/opus',
'aac': 'audio/aac',
'mp4': 'video/mp4',
'mov': 'video/quicktime',
'avi': 'video/x-msvideo',
'ogv': 'video/ogg',
'3gp': 'video/3gpp',
'ac3': 'audio/ac3',
'm4a': 'audio/m4a'
}.get(file_name.split('.')[-1].lower())
if not mime_type:
print("Formato de arquivo não suportado.")
return None
files = {
'file': (file_name, audio_content, mime_type),
'model': 'whisper-1'
}
try:
response = requests.post(url, headers=headers, files=files)
response.raise_for_status()
return response.json().get('text')
except requests.RequestException as e:
print(f"Erro ao transcrever áudio: {e}")
return None
# Função para buscar um arquivo baseado no message_id
def buscar_arquivo_por_id(customer, dir_atual="/media/chatapp/660"):
message_id = customer.message.message_id # Obtém o ID da mensagem
extensoes = [
'ogg', 'mp3', 'opus', 'aac', 'mp4',
'mov', 'avi', 'ogv', '3gp', 'ac3', 'm4a'
]
# Simulação de obtenção de subdiretórios
subdiretorios = obter_subdiretorios(dir_atual) # Função simulada que retorna subdiretórios
# Verificar o diretório atual
for ext in extensoes:
arquivo = f"{message_id}.{ext}"
caminho_arquivo = f"{dir_atual}/{arquivo}"
if arquivo_existente(caminho_arquivo):
print(f"Arquivo encontrado: {caminho_arquivo}") # Debug
return caminho_arquivo
# Verificar subdiretórios recursivamente
for subdir in subdiretorios:
resultado = buscar_arquivo_por_id(customer, subdir)
if resultado:
return resultado
return None # Retorna None se nenhum arquivo for encontrado
def obter_subdiretorios(diretorio):
# Simulação que deve retornar uma lista de subdiretórios
return [] # Modifique conforme necessário para simular subdiretórios
def arquivo_existente(caminho):
return True # Simula que o arquivo existe para teste
# Função para dividir texto em parágrafos
def split_text_by_paragraphs(text):
return text.split('\n\n')
# Código principal para geração de texto, imagem e áudio
user_question = customer.message.content
static_prompts = "CRISTIANISMO + BUDISMO + ISLAMISMO + MORMONS + DAVID_SWINTON + AMOR"
try:
# Definindo o caminho do arquivo antes de gerar texto
# caminho_arquivo = buscar_arquivo_por_id(customer.message.id)
# Geração do texto
resposta_texto = gerar_texto(user_question, static_prompts)
if resposta_texto:
print(f"Resposta do modelo: {resposta_texto}")
# Dividindo o texto em parágrafos
partes_texto = split_text_by_paragraphs(resposta_texto)
for i, parte in enumerate(partes_texto):
# Geração da imagem
system_prompt = f'Menina realista, Ela se chama Hyuka e sempre deve ser representada como sendo a mesma pessoa, na camisa tem escrito as siglas: ETX. Simpática, mas olhar e o sorriso devem variar de acordo com o contexto do prompt em "{parte}".'
positive_prompt = "Sempre a mesma menina, usando computadores, usando celulares, cabelo rosa, gordinha, parda, labios finos, na camisa tem escrito a sigla: ETX, cenário futuristas"
negative_prompt = "Apenas da cintura para cima, não mostre decote, não sensualizar, não mostrar os dentes, nunca acompanhada, não aparecer com animais"
image_url = generate_image(parte, positive_prompt=positive_prompt, negative_prompt=negative_prompt, system_prompt=system_prompt)
if image_url:
file_name_image = f'imagem_gerada_{i}.png'
image_content = download_file(image_url)
# Geração do áudio
audio_url, file_name_audio = generate_audio(parte)
if audio_url and file_name_audio:
# Enviar áudio e imagem para conversão em vídeo
video_content = send_audio_and_image_for_conversion(audio_url, image_url, file_name_audio, file_name_image)
if video_content:
send_document_to_customer(f'Vídeo gerado por IA - Parte {i+1}', f'video_gerado_{i}.mp4', content=video_content)
else:
send_message_to_customer(f"Desculpe, não foi possível converter o áudio e a imagem para vídeo na parte {i+1}.")
else:
send_message_to_customer(f"Desculpe, não foi possível gerar o áudio na parte {i+1}.")
# Enviando a resposta final
send_message_to_customer(f"Hyuka: {resposta_texto}\n\nhttps://etx.tec.br/#contato.\n\n{customer.message.message_id}\n\n{customer.message.id}\n\n{customer.message.uuid}\n\n{customer.message.reply_message_id}\n\n{customer.message.request_id}\n\n{customer.message.size}\n\n{customer.message.link}\n\n{customer.message.status}\n\n{customer.message.content}\n\n{customer.message.mtype}\n\n{customer.message.size}\n\n{customer.data}\n\n{customer.message}\n\n{customer.message.attachment}")
else:
send_message_to_customer("Desculpe, houve um erro ao gerar o texto.")
except Exception as e:
print(f"Erro ao processar a solicitação: {str(e)}")
send_message_to_customer(f"Desculpe, houve um erro ao processar sua solicitação: {str(e)}")