add validator

This commit is contained in:
podiukov.iv
2026-04-23 20:39:47 +05:00
parent 3e0a0ee403
commit 9670a1e960
7 changed files with 166 additions and 77 deletions

42
modules/paraGenerator.py Normal file
View File

@@ -0,0 +1,42 @@
# 2 модуль - Генератор парафраза на основе llama.cpp
from openai import OpenAI
class ParaphraseGenerator:
"""
Класс для использования генеративной модели на базе llama.cpp
Использование: ParaphraseGenerator([температура], [максимальное количество токенов])
"""
def __init__(self, temperature=0.8, max_tokens=200):
self.client = OpenAI(base_url='http://127.0.0.1:8080', api_key='')
def generateByPrompt(self, prompt):
try:
response = self.client.chat.completions.create(
model = '',
messages = [{'role': 'user', 'content': prompt}],
temperature = self.temperature,
max_tokens = self.max_tokens
)
return response.choices[0].message.content
except Exception as e:
print(f'Ошибка генерации: {e}')
return None
def generate(self, srcText, entities):
"""
Генерация парафраза.
Использование: generate(<исходный текст>, <сущности>)
Возвращает set сущностей (без повторения)
"""
prompt = (
f'Перефразируй следующий текст, сохранив все именованные сущности "{', '.join(entity for entity in entities)}" в точности такими же, как в оригинале. '
'Не изменяй эти фрагменты текста, не заменяй их синонимами, не переставляй слова внутри них. '
'Можешь изменять грамматическую структуру предложения, порядок слов, использовать синонимы для'
f'остальных частей текста, но именованные сущности должны остаться неизменными. Исходный текст: "{srcText}"'
)
return self.generateByPrompt(prompt)