Files
VKR_2026/paraGenerator.py
2026-04-23 15:35:34 +05:00

34 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2 модуль - Генератор парафраза на основе llama.cpp
from openai import OpenAI
class ParaphraseGenerator:
"""
Класс для использования генеративной модели на базе llama.cpp
"""
def __init__(self):
self.client = OpenAI(base_url="http://127.0.0.1:8080", api_key="")
def generate(self, srcText, entities):
"""
Генерация парафраза по промпту.
Использование: generate(<исходный текст>, <сущности>)
"""
entityList = ', '.join(entity['text'] for entity in entities) # генерация списка выделенных сущностей
prompt = 'Перефразируй следующий текст, сохранив все именованные сущности "' + entityList + '" в точности такими же, как в оригинале. ' \
'Не изменяй эти фрагменты текста, не заменяй их синонимами, не переставляй слова внутри них. ' \
'Можешь изменять грамматическую структуру предложения, порядок слов, использовать синонимы для' \
'остальных частей текста, но именованные сущности должны остаться неизменными. Исходный текст: "' + srcText + '"'
try:
response = self.client.chat.completions.create(
model = "",
messages = [{"role": "user", "content": prompt}],
temperature = 0.8,
top_p = 0.95,
max_tokens = 200
)
return response.choices[0].message.content
except Exception as e:
print(f"Ошибка генерации: {e}")
return None