| 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 | |