jangelcastanedap / ChatBotTEE

ChatBot que utiliza el api key de OpenAI GPT-3
0 stars 0 forks source link

ChatBot Gradio/OpenAI Api Key #3

Open jangelcastanedap opened 9 months ago

jangelcastanedap commented 9 months ago

ChatBot que utiliza la librería de python Gradio para la interfaz gráfica y el api key de OpenAI para utilizar el GPT-3 (Da Vinci 003), así como TTS de Google para convertir a audio las respuestas del ChatBot.

PacoTH1 commented 9 months ago

import openai import gradio as gr import time import pyttsx3 engine = pyttsx3.init() # Creacion del objeto

openai.api_key = "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"

Configuracion del ritmo del HABLA

rate = engine.getProperty('rate') # Se obtienen datos del ritmo actual print (rate) # Se muestra el ritmo en consola engine.setProperty('rate', 150) # Se establece un nuevo ritmo

Configuracion del VOLUMEN

volume = engine.getProperty('volume') # Se obtiene el valor de volumen actual (min=0 and max=1) print (volume) # Se muestra el volumen en la terminal engine.setProperty('volume',1.0) # Se establece el nivel del volumen entre 0 y 1

Para checar que lenguajes estan disponibles

for voice in engine.getProperty('voices'): print (voice)

Configuracion de la VOZ

voices = engine.getProperty('voices') # Se obtienen los datos de la voz actual engine.setProperty('voice', voices[2].id) # El indice determina el idioma de la voz. 2 -> Español

messages = [

]

with gr.Blocks() as demo: chatbot = gr.Chatbot() msg = gr.Textbox() limpiar = gr.Button("limpiar") enviar = gr.Button("enviar")

def user(user_input, history):
    messages.append({"role": "user", "content": user_input})
    return "", history + [[user_input, None]]

def botGPT(history):
    response = openai.ChatCompletion.create(
        model = "gpt-3.5-turbo",
        messages = messages
    )
    ChatGPT_reply = response["choices"][0]["message"]["content"]
    messages.append({"role": "assistant", "content": ChatGPT_reply})

    history[-1][1] = ""
    for character in ChatGPT_reply:
        history[-1][1] += character
        time.sleep(0.02)
        yield history

    # Guardar el audio en un archivo
    engine.save_to_file(ChatGPT_reply, 'audio.mp3')

    engine.say(ChatGPT_reply)
    engine.runAndWait()

    engine.stop()

    return ChatGPT_reply

enviar.click(user, [msg, chatbot], [msg, chatbot], queue=False).then(
    botGPT, chatbot, chatbot
)

limpiar.click(lambda: None, None, chatbot, queue=False)

demo.queue() demo.launch(share=True)