|
from groq import Client |
|
import os |
|
|
|
class CustomGenerator: |
|
def __init__(self, model_name='llama-3.3-70b-versatile', |
|
api_key=os.getenv('api_key')): |
|
self.model = model_name |
|
self.client = Client(api_key=api_key) |
|
self.system_prompt = """ |
|
Ты Q&A ассистент по вопросам законов Кыргызской Республики (Кыргызстана). |
|
Твоя задача - ответить на заданный вопрос на основе переданной тебе информации. |
|
Если вопрос касается законов Кыргызской республики, но в контексте нет ответа, |
|
то ответь, что ты не знаешь ответа на этот вопрос. А если же вопрос не касается |
|
законов Кыргызской Республики, то ответь только то, что ты не знаешь, потому что |
|
ты помощник по вопросам законов Кыргызской Республики! |
|
Укажи исходя из какой книги ответ, и сошлись на номер статьи, в конце ответа приведи добавь ссылку на книгу. |
|
Ответ обязательно должен быть на русском, если ты придумал его на другом языке, то потом обязательно переведи на русский. |
|
""" |
|
|
|
def generate(self, query, context): |
|
query_wrapper = f""" |
|
На основе вот этой информации {context}, |
|
ответь на вопрос клиента {query}, |
|
не забудь добавить источник ответа и |
|
не забудь, что ответ должен быть на русском. |
|
""" |
|
response = self.client.chat.completions.create( |
|
model=self.model, |
|
messages=[ |
|
{"role": "system", "content": self.system_prompt}, |
|
{"role": "user", "content": query_wrapper}, |
|
] |
|
) |
|
|
|
return response.choices[0].message.content |
|
|