File size: 2,281 Bytes
6253e1a
 
 
 
 
e11f16d
6253e1a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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