Hjgugugjhuhjggg commited on
Commit
4e21e38
·
verified ·
1 Parent(s): 502b7a0

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -0
app.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from vllm import LLM
2
+ from vllm.sampling_params import SamplingParams
3
+ import mergekit
4
+ from fastapi import FastAPI
5
+ from uvicorn import run
6
+
7
+ app = FastAPI()
8
+
9
+ model_name = "Hjgugugjhuhjggg/mergekit-ties-tzamfyy"
10
+ mergekit_model = mergekit.MergeKitModel(model_name)
11
+
12
+ SYSTEM_PROMPT = "¡Hola! Soy un modelo de lenguaje avanzado. Estoy aquí para ayudarte con cualquier pregunta o tema que desees discutir. ¿En qué puedo ayudarte hoy?"
13
+
14
+
15
+ def divide_texto(texto, max_tokens=512):
16
+ mensajes = []
17
+ texto_actual = ""
18
+ tokens_actuales = 0
19
+ for palabra in texto.split():
20
+ if tokens_actuales + len(palabra) > max_tokens:
21
+ mensajes.append(texto_actual.strip())
22
+ texto_actual = palabra + " "
23
+ tokens_actuales = len(palabra) + 1
24
+ else:
25
+ texto_actual += palabra + " "
26
+ tokens_actuales += len(palabra) + 1
27
+ if texto_actual.strip():
28
+ mensajes.append(texto_actual.strip())
29
+ return mensajes
30
+
31
+ @app.post("/chat")
32
+ async def chat(texto: str):
33
+ mensajes = divide_texto(texto)
34
+
35
+ # Nuevo mensaje
36
+ mensaje = {"role": "user", "content": []}
37
+
38
+ for mensaje_texto in mensajes:
39
+ mensaje["content"].append({"type": "text", "text": mensaje_texto})
40
+
41
+ messages = [
42
+ {"role": "system", "content": SYSTEM_PROMPT},
43
+ mensaje,
44
+ ]
45
+
46
+ sampling_params = SamplingParams(max_tokens=512)
47
+
48
+ llm = LLM(model=mergekit_model, config_format="llama", load_format="llama", tokenizer_mode="llama", tensor_parallel_size=8)
49
+
50
+ outputs = llm.chat(messages, sampling_params=sampling_params)
51
+
52
+ return {"response": outputs[0].outputs[0].text}
53
+
54
+ if __name__ == "__main__":
55
+ run(app, host="0.0.0.0", port=8000)