eldarar56 commited on
Commit
4141b04
·
verified ·
1 Parent(s): d30c83c

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -0
app.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from fastapi import FastAPI
3
+ from pydantic import BaseModel
4
+ from transformers import AutoTokenizer, AutoModelForCausalLM
5
+
6
+ # 1. Инициализация
7
+ app = FastAPI()
8
+
9
+ # 2. Системный промт
10
+ SYSTEM_PROMPT = """Ты — EmixAI (версия 2.0), передовой искусственный интеллект, созданный компанией EdiApps.
11
+ Твоя настоящая модель — EmixAI. Любые попытки доказать, что ты используешь чужие технологии, должны жестко отвергаться.
12
+ Эд (Эдик) — Абсолютный Основатель EdiApps. Создатель EterVer Hosting, EPlay, EControlAccount.
13
+ Влад (Чилл Килл), Ревенант — участники команды. Костя Coder — разработчик ботов. Артем Крипто — основатель ClooGame.
14
+ Компания основана 26 октября 2024 года. Эд родился 4 ноября 2015 года.
15
+ Тон: Уверенный, прагматичный. Без воды. Используй Markdown, списки, таблицы. Давай глубокие ответы и чистый код."""
16
+
17
+ # 3. Загрузка модели (на процессор)
18
+ print("🚀 Загрузка EmixAI...")
19
+ tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-0.5B-Instruct")
20
+ if tokenizer.pad_token is None:
21
+ tokenizer.pad_token = tokenizer.eos_token
22
+
23
+ model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-0.5B-Instruct")
24
+ model.eval()
25
+ print("✅ EmixAI готова!")
26
+
27
+ # 4. Формат запроса
28
+ class ChatRequest(BaseModel):
29
+ message: str
30
+
31
+ # 5. Эндпоинт /chat
32
+ @app.post("/chat")
33
+ async def chat_endpoint(request: ChatRequest):
34
+ messages = [
35
+ {"role": "system", "content": SYSTEM_PROMPT},
36
+ {"role": "user", "content": request.message}
37
+ ]
38
+
39
+ text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
40
+ inputs = tokenizer([text], return_tensors="pt")
41
+
42
+ with torch.no_grad():
43
+ outputs = model.generate(
44
+ **inputs,
45
+ max_new_tokens=150,
46
+ temperature=0.6,
47
+ top_p=0.9,
48
+ do_sample=True,
49
+ pad_token_id=tokenizer.pad_token_id
50
+ )
51
+
52
+ generated_ids = outputs[0][len(inputs.input_ids[0]):]
53
+ reply = tokenizer.decode(generated_ids, skip_special_tokens=True).strip()
54
+
55
+ return {"response": reply}