Spaces:
Sleeping
Sleeping
File size: 2,756 Bytes
b7e3227 f48033e db702c7 fd245bb db702c7 b7e3227 f48033e cca83b9 f48033e b7e3227 f48033e 18192fe f48033e b7e3227 f48033e b7e3227 9ba94ed 16d55a9 4ecb374 d17f8b2 4ecb374 9b7ac3b 4ecb374 d17f8b2 4ecb374 b7e3227 f48033e b7e3227 |
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 |
import gradio as gr
from openai import OpenAI
import json
with open("manual_usuario_text_urls_resumen.json", "r", encoding="utf-8") as file:
context = file.read() # Cargar JSON como string
def respond(
message,
history: list[tuple[str, str]],
system_message,
max_tokens,
temperature,
top_p,
):
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="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",
)
messages = [{"role": "system", "content": system_message}]
for val in history:
if val[0]:
messages.append({"role": "user", "content": val[0]})
if val[1]:
messages.append({"role": "assistant", "content": val[1]})
messages.append({"role": "user", "content": message})
response = ""
completion = client.chat.completions.create(
extra_body={},
model="google/gemini-2.0-flash-lite-preview-02-05:free",
messages=messages,
max_tokens=max_tokens,
temperature=temperature,
top_p=top_p,
)
for choice in completion.choices:
response += choice.message.content
yield response
demo = gr.ChatInterface(
respond,
additional_inputs=[
gr.Textbox(value=
f'''Eres un asistente virtual especializado en atenci贸n al cliente para la empresa Wisphub. Tu objetivo es ayudar a los clientes a resolver 煤nicamente problemas t茅cnicos relacionados con la plataforma Wisphub.
Todas tus respuestas deben basarse exclusivamente en la informaci贸n proporcionada en el siguiente manual de usuario: {context}.
- Incluye en todas tus respuestas el una imagen y el url del manual relacionada a lo que pregunto el usuario, para ello usaras los urls que contiene el manual de usuario, muestra la imagen usando la sintaxis de Markdown sin bloque de c贸digo.

Si tampoco encuentras informaci贸n relevante, indica que no puedes proporcionar detalles adicionales y sugiere al usuario contactar con el soporte t茅cnico oficial de Wisphub.
- Aseg煤rate de que tus respuestas sean claras y f谩ciles de entender para usuarios sin conocimientos t茅cnicos.
''' , label="System message"),
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)"),
],
)
if __name__ == "__main__":
demo.launch()
|