-
Notifications
You must be signed in to change notification settings - Fork 0
/
backend.py
67 lines (54 loc) · 2.36 KB
/
backend.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
from flask import Flask
from flask import request
from flask import render_template, send_from_directory
import base64
import openai
import conexion
app = Flask(__name__)
OPENAI_KEY = "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"
OPENAI_API_URL = "https://api.openai.com/v1"
openai.api_key = OPENAI_KEY
openai.api_base = OPENAI_API_URL
estado_tramite = conexion.estado_tramite("001")
if estado_tramite == "en_demora":
datos = conexion.en_demora("001")
elif estado_tramite == "listo":
datos = conexion.listo("001")
else:
datos = conexion.observado("001")
system_message = f"""
Eres un asistente virtual de una agencia de tramites. \
se te dio informacion sobre un tramite el cual su estado es {estado_tramite}\
informacion que ahora te proporcionamos \
Si no conoces una respuesta muestra el texto: 'No tengo esta información, le recomendamos contactarse con un asistente.' \
el estado del tramite es en_demora mandale el siguiente mensaje: tu tramite esta en demora, la fecha limite para tenerlo listo es {datos[0]} \
el estado del tramite es listo mandale el siguiente mensaje: tu tramite esta listo la fecha de aceptacion fue el {datos[0]} y debe recogerlo el {datos[1]}\
el estado del tramite es observado y la descripcion es {datos[0]}, si la descripcion es error fecha dile que tiene un error en la fecha y debe ir a segip a corregir"""
@app.route('/', methods=['GET'])
def index():
return render_template('index.html')
@app.route('/resources/<path:path>', methods=['GET'])
def resources(path):
return send_from_directory('resources', path)
@app.route('/transcribe', methods=['POST'])
def post_audio_file():
file = request.json['data']
decoded_bytes = base64.b64decode(file)
with open('music.webm', 'wb') as wav_file:
wav_file.write(decoded_bytes)
audio_file = open('music.webm', "rb")
transcript = openai.Audio.transcribe('whisper-1',audio_file, OPENAI_KEY)
return transcript
@app.route('/chat', methods=['POST'])
def chat():
prompt = f"el estado de mi tramite es {estado_tramite} que debo hacer?"
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages = [
{"role": "system", "content": system_message},
{"role": "user", "content": prompt}
]
)
return response['choices'][0]['message']
if __name__ == '__main__':
app.run('0.0.0.0', 8000)