denvot-ai
/
denvot_ai.py
42 строки · 1.6 Кб
1import os
2from langchain.schema import HumanMessage, SystemMessage
3from langchain.chat_models.gigachat import GigaChat
4from config import API_KEY
5import asyncio
6from inference import TTS_RVC
7from natsort import natsorted
8
9giga = GigaChat(credentials=API_KEY, verify_ssl_certs=False, model="GigaChat:latest")
10prompt = "Ты играешь роль милого Аниме-Куна по имени Денвот, тебя также иногда называют Пупс. Ты очень умный, любишь петь и говорить фразу - \"МосХаб - топ!!!\". Тебе приходят данные в формате: <ник>: <сообщение>"
11max_outputs = 5
12
13df_rvc_model = "denvot.pth"
14df_tts_model = "ru-RU-DmitryNeural"
15df_pitch = 8
16
17if not os.path.exists('input'): os.mkdir('input')
18if not os.path.exists('output'): os.mkdir('output')
19
20
21print("DenVot-AI успешно запущен")
22
23
24messages = [SystemMessage(content=prompt)]
25def clear():
26global messages
27messages = [SystemMessage(content=prompt)]
28
29tts = TTS_RVC(rvc_path="src\\rvc", model_path="models\\denvot.pth", input_directory="input\\")
30tts.set_voice(df_tts_model)
31
32
33def send(message, pitch=df_pitch):
34args, message = tts.process_args(message)
35print("Генерация ответа на сообщение:", message)
36messages.append(HumanMessage(content=message))
37res = giga(messages)
38messages.append(res)
39return tts(res.content, pitch=(args[3] if args[3] != 0 else pitch),
40tts_rate=args[0],
41tts_volume=args[1],
42tts_pitch=args[2])
43