Spaces:
Sleeping
Sleeping
File size: 3,511 Bytes
a844653 2bf7b09 3618620 2bf7b09 56205e9 152d4a2 1cc747b 56205e9 2bf7b09 a844653 1b071a4 152d4a2 a844653 152d4a2 a844653 47af0fc 12f5431 a844653 17d2ff9 12f5431 a844653 12f5431 a844653 12f5431 a844653 12f5431 17d2ff9 fb6e36a a844653 12f5431 a844653 3618620 a844653 1b071a4 a844653 3618620 a844653 17d2ff9 a844653 12f5431 a844653 3618620 a844653 12f5431 a844653 152d4a2 cc178d7 2bf7b09 6066e39 12f5431 2bf7b09 cc178d7 2bf7b09 f04979d e00c1d6 f19d93a |
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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
import logging
import os
from typing import Union, Optional, SupportsIndex
import requests
from fastapi import FastAPI
from llama_cpp import Llama
app = FastAPI()
TELEGRAM_TOKEN = os.getenv('TELEGRAM_TOKEN')
CHAT_TEMPLATE = '<|system|> {system_prompt}<|end|><|user|> {prompt}<|end|><|assistant|>'.strip()
SYSTEM_PROMPT = '{prompt}'
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO
)
logger = logging.getLogger(__name__)
logger.info("Запускаемся... 🥳🥳🥳")
REPO_ID = "Vikhrmodels/Vikhr-Qwen-2.5-1.5B-Instruct-GGUF"
FILENAME = "Vikhr-Qwen-2.5-1.5b-Instruct-Q8_0.gguf",
# Инициализация модели
try:
logger.info(f"Загрузка модели {FILENAME}...")
# загрузка модели для локального хранилища
# llm = Llama(
# model_path=f"./models/{model_name}.gguf",
# verbose=False,
# n_gpu_layers=-1,
# n_ctx=1512,
# temperature=0.3,
# num_return_sequences=1,
# no_repeat_ngram_size=2,
# top_k=50,
# top_p=0.95,
# )
# if not llm:
LLM = Llama.from_pretrained(
repo_id=REPO_ID,
filename='Vikhr-Qwen-2.5-1.5b-Instruct-Q8_0.gguf',
n_gpu_layers=-1,
n_ctx=1512,
temperature=0.3,
num_return_sequences=1,
no_repeat_ngram_size=2,
top_k=50,
top_p=0.95,
)
except Exception as e:
logger.error(f"Ошибка загрузки модели: {str(e)}")
raise
# составление промта для модели
def create_prompt(text: str) -> Union[str, None]:
try:
user_input = text
logger.info(f"Получено сообщение: {user_input}")
# Генерация шаблона
return CHAT_TEMPLATE.format(
system_prompt=SYSTEM_PROMPT.format(promt='Ответ должен быть точным, кратким и с юмором.'),
prompt=user_input,
)
except Exception as e:
logger.error(e)
def generate_response(prompt: str) -> Optional[str]:
try:
# Обработка текстового сообщения
output = LLM(
prompt,
max_tokens=64,
stop=["<|end|>"],
)
logger.info('Output:')
logger.info(output)
response = output['choices'][0]['text']
# Отправка ответа
if response:
return response
return 'Произошла ошибка при обработке запроса'
except Exception as e:
logger.error(f"Ошибка обработки сообщения: {str(e)}")
async def send_to_telegram(message):
url = f"https://api.telegram.org/bot7517190315:AAE4TAhZm4ybTEPGe_KOYajFxHttNOqUtaY/sendMessage"
payload = {
"chat_id": '719751843',
"text": message
}
response = requests.post(url, json=payload)
return "Сообщение отправлено!" if response.ok else "Ошибка!"
@app.get("/")
async def root():
await send_to_telegram('aaaaaaaaaaa')
return {"message": "Hello World"}
@app.post("/webhook")
async def predict(response):
# Генерация ответа с помощью модели
logger.info('post/webhook -> response:')
logger.info(response)
# prompt = create_prompt(text)
# response = generate_response(prompt)
return {"response": response}
|