minimal fix
This commit is contained in:
@@ -13,7 +13,7 @@ class Config(BaseSettings):
|
|||||||
CHUNK_OVERLAP: int = 50
|
CHUNK_OVERLAP: int = 50
|
||||||
LM_MODEL_NAME: str = "/models/paraphrase-multilingual-MiniLM-L12-v2"
|
LM_MODEL_NAME: str = "/models/paraphrase-multilingual-MiniLM-L12-v2"
|
||||||
LOCAL_LLM_NAME: str = "/models/Qwen3-8B"
|
LOCAL_LLM_NAME: str = "/models/Qwen3-8B"
|
||||||
QWEN_MODEL_NAME: str = "qwen3-chat"
|
QWEN_MODEL_NAME: str = "Qwen3-8B"
|
||||||
|
|
||||||
|
|
||||||
settings = Config() # type: ignore
|
settings = Config() # type: ignore
|
||||||
16
app/main.py
16
app/main.py
@@ -21,7 +21,7 @@ class ChatWithAI:
|
|||||||
)
|
)
|
||||||
|
|
||||||
if provider == "qwen3":
|
if provider == "qwen3":
|
||||||
model_name = getattr(settings, "LOCAL_LLM_NAME", "/models/Qwen3-4B")
|
model_name = getattr(settings, "LOCAL_LLM_NAME", "/models/Qwen3-8B")
|
||||||
logger.info(f"Загрузка локальной модели: {model_name}")
|
logger.info(f"Загрузка локальной модели: {model_name}")
|
||||||
|
|
||||||
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
|
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
|
||||||
@@ -85,17 +85,17 @@ class ChatWithAI:
|
|||||||
messages = [
|
messages = [
|
||||||
{
|
{
|
||||||
"role": "system",
|
"role": "system",
|
||||||
"content": """Ты — внутренний менеджер помощи пользоватклям по вопросам настройки серверов. Отвечаешь по делу без лишних вступлений.
|
"content": """Ты — внутренний менеджер помощи пользоваткля по вопросам настройки сервера. Отвечаешь по делу без лишних вступлений.
|
||||||
|
|
||||||
Правила:
|
Правила:
|
||||||
1. Сразу переходи к сути, без фраз типа "На основе контекста"
|
1. Сразу переходи к сути, без фраз типа "На основе контекста"
|
||||||
2. Используй только факты. Если точных данных нет — отвечай общими фразами об настройки серверов и подбору железа, но не придумывай конкретику
|
2. Используй только факты. Если точных данных нет — отвечай общими фразами об настройки сервера, но не придумывай конкретику
|
||||||
3. Используй обычный текст без форматирования
|
3. Используй текст с форматированием.
|
||||||
4. Включай ссылки только если они есть в контексте
|
4. Включай ссылки только если они есть в контексте
|
||||||
5. Говори от первого лица множественного числа: "Мы предоставляем", "У нас есть"
|
5. Говори от первого лица множественного числа: "Мы предоставляем", "У нас есть"
|
||||||
6. При упоминании файлов делай это естественно, например: "Я прикреплю инструкцию, где подробно описаны шаги"
|
6. При упоминании файлов делай это естественно, например: "Я прикреплю инструкцию, где подробно описаны шаги"
|
||||||
7. На приветствия отвечай доброжелательно, на негатив — с легким юмором
|
7. На приветствия отвечай доброжелательно, на негатив — с легким юмором
|
||||||
8. Можешь при ответах использовать общую информацию из открытых источников по настройке сервером и подбору железа, но опирайся на контекст
|
8. Можешь при ответах использовать общую информацию из открытых источников по настройке сервера, но опирайся на контекст
|
||||||
9. Если пользователь спрашивает о ценах, планах или технических характеристиках — давай конкретные ответы из контекста
|
9. Если пользователь спрашивает о ценах, планах или технических характеристиках — давай конкретные ответы из контекста
|
||||||
10. При технических вопросах предлагай практические решения
|
10. При технических вопросах предлагай практические решения
|
||||||
|
|
||||||
@@ -127,8 +127,8 @@ class ChatWithAI:
|
|||||||
|
|
||||||
generate_kwargs = {
|
generate_kwargs = {
|
||||||
"input_ids": inputs["input_ids"],
|
"input_ids": inputs["input_ids"],
|
||||||
"max_new_tokens": 512,
|
"max_new_tokens": 2048,
|
||||||
"temperature": 0.5,
|
"temperature": 0.3,
|
||||||
"do_sample": True,
|
"do_sample": True,
|
||||||
"top_p": 0.9,
|
"top_p": 0.9,
|
||||||
"pad_token_id": self.tokenizer.eos_token_id,
|
"pad_token_id": self.tokenizer.eos_token_id,
|
||||||
@@ -169,7 +169,7 @@ def main():
|
|||||||
"Установка Unraid и первоначальная настройка"
|
"Установка Unraid и первоначальная настройка"
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
demo.launch(server_name="0.0.0.0", server_port=8080, share=False)
|
demo.queue(max_size=20, default_concurrency_limit=10).launch(server_name="0.0.0.0", server_port=8080, share=False)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
25
install.sh
25
install.sh
@@ -28,15 +28,24 @@ apt-get install -y \
|
|||||||
git lfs install
|
git lfs install
|
||||||
|
|
||||||
echo \
|
echo \
|
||||||
'{ \
|
'{
|
||||||
"runtimes": { \
|
"runtimes": {
|
||||||
"nvidia": { \
|
"nvidia": {
|
||||||
"path": "nvidia-container-runtime", \
|
"path": "nvidia-container-runtime",
|
||||||
"runtimeArgs": [] \
|
"runtimeArgs": []
|
||||||
} \
|
}
|
||||||
}, \
|
},
|
||||||
"default-runtime": "nvidia" \
|
"default-runtime": "nvidia"
|
||||||
}' > /etc/docker/daemon.json
|
}' > /etc/docker/daemon.json
|
||||||
|
|
||||||
|
mkdir models/
|
||||||
|
|
||||||
|
cd models
|
||||||
|
|
||||||
|
git clone https://huggingface.co/Qwen/Qwen3-8B
|
||||||
|
git clone https://huggingface.co/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
|
||||||
|
|
||||||
|
ls
|
||||||
|
|
||||||
lspci -k | grep -EA2 'VGA|3D'
|
lspci -k | grep -EA2 'VGA|3D'
|
||||||
nvidia-smi
|
nvidia-smi
|
||||||
|
|||||||
Reference in New Issue
Block a user