Josedcape commited on
Commit
ba160a2
verified
1 Parent(s): 6233362

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -8
app.py CHANGED
@@ -2,7 +2,10 @@ import streamlit as st
2
  import openai
3
  import PyPDF2
4
  from docx import Document
 
5
  from dotenv import load_dotenv
 
 
6
 
7
  # Configuraci贸n de la interfaz
8
  st.set_page_config(page_title="Boti Asistente", layout="wide", initial_sidebar_state="expanded")
@@ -12,13 +15,43 @@ load_dotenv()
12
  openai.api_key = os.getenv("OPENAI_API_KEY")
13
  os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "botidinamix-g.json"
14
 
15
- def obtener_respuesta(prompt):
16
- response = openai.Completion.create(
17
- engine="davinci",
18
- prompt=prompt,
19
- max_tokens=150
 
 
 
20
  )
21
- return response.choices[0].text.strip()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
  # Estilos personalizados
24
  st.markdown(
@@ -83,11 +116,9 @@ def pagina_asistente():
83
  )
84
 
85
  def procesar_documento_contenido(contenido):
86
- # Aqu铆 podr铆as usar OpenAI para procesar el contenido del documento
87
  return obtener_respuesta(f"Procesa el siguiente contenido: {contenido}")
88
 
89
  def analizar_documento(contenido):
90
- # Aqu铆 podr铆as usar OpenAI para analizar la coherencia, pertinencia y calidad del contenido
91
  analisis = obtener_respuesta(f"Analiza el siguiente contenido: {contenido}")
92
  calificacion = obtener_respuesta(f"Califica el contenido del 1 al 10: {contenido}")
93
  return analisis, calificacion
 
2
  import openai
3
  import PyPDF2
4
  from docx import Document
5
+ from google.cloud import texttospeech, speech
6
  from dotenv import load_dotenv
7
+ import os
8
+ import tempfile
9
 
10
  # Configuraci贸n de la interfaz
11
  st.set_page_config(page_title="Boti Asistente", layout="wide", initial_sidebar_state="expanded")
 
15
  openai.api_key = os.getenv("OPENAI_API_KEY")
16
  os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "botidinamix-g.json"
17
 
18
+ # Funci贸n para obtener respuesta de OpenAI
19
+ def obtener_respuesta(pregunta, modelo="gpt-4", temperatura=0.5):
20
+ response = openai.ChatCompletion.create(
21
+ model=modelo,
22
+ messages=[{"role": "system", "content": "Eres Boty un asistente de la empresa Botidinamix Ai para el desarrollo y implementacion de asistentes virtuales automatizados."},
23
+ {"role": "user", "content": pregunta}],
24
+ temperature=temperatura,
25
+ max_tokens=150,
26
  )
27
+ respuesta = response['choices'][0]['message']['content']
28
+ return respuesta
29
+
30
+ # Funci贸n para convertir texto a voz usando Google Cloud Text-to-Speech
31
+ def text_to_speech(text):
32
+ client = texttospeech.TextToSpeechClient()
33
+ synthesis_input = texttospeech.SynthesisInput(text=text)
34
+ voice = texttospeech.VoiceSelectionParams(language_code="es-ES", ssml_gender=texttospeech.SsmlVoiceGender.NEUTRAL)
35
+ audio_config = texttospeech.AudioConfig(audio_encoding=texttospeech.AudioEncoding.MP3)
36
+ response = client.synthesize_speech(input=synthesis_input, voice=voice, audio_config=audio_config)
37
+ audio_path = tempfile.NamedTemporaryFile(delete=False, suffix=".mp3").name
38
+ with open(audio_path, "wb") as out:
39
+ out.write(response.audio_content)
40
+ return audio_path
41
+
42
+ # Funci贸n para transcribir audio a texto usando Google Cloud Speech-to-Text
43
+ def transcribir_audio(audio_bytes):
44
+ client = speech.SpeechClient()
45
+ audio = speech.RecognitionAudio(content=audio_bytes)
46
+ config = speech.RecognitionConfig(
47
+ encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
48
+ sample_rate_hertz=16000,
49
+ language_code="es-ES",
50
+ )
51
+ response = client.recognize(config=config, audio=audio)
52
+ for result in response.results:
53
+ return result.alternatives[0].transcript
54
+ return ""
55
 
56
  # Estilos personalizados
57
  st.markdown(
 
116
  )
117
 
118
  def procesar_documento_contenido(contenido):
 
119
  return obtener_respuesta(f"Procesa el siguiente contenido: {contenido}")
120
 
121
  def analizar_documento(contenido):
 
122
  analisis = obtener_respuesta(f"Analiza el siguiente contenido: {contenido}")
123
  calificacion = obtener_respuesta(f"Califica el contenido del 1 al 10: {contenido}")
124
  return analisis, calificacion