File size: 2,477 Bytes
0c4db82
f2d60a4
 
0c4db82
 
340688d
f2d60a4
 
c33532f
f2d60a4
 
 
 
 
 
0b1652b
f2d60a4
 
 
 
 
 
0cf1a46
f2d60a4
 
 
 
 
0b1652b
0cf1a46
0c4db82
 
c33532f
bac1b16
f2d60a4
0cf1a46
0c4db82
 
 
 
0cf1a46
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
37
38
39
40
41
import gradio as gr
from datasets import load_dataset
import pandas as pd
from huggingface_hub import InferenceClient

client = InferenceClient("deepseek-ai/DeepSeek-R1-Distill-Qwen-32B")
ds = pd.DataFrame(load_dataset("missvector/okkolo-kb")['train']).to_string()

def respond(message, history):
    outputs = client.chat.completions.create(
                             messages=[
                                 {"role": "system", "content": f"""Стиль общения:
                                                                - ответы должны быть короткие,
                                                                - используй информацию из базы знаний,
                                                                - будь вежливым и дружелюбным,
                                                                - используй эмодзи.
                                                                Если в вопросе пользователя есть слова "Окколо" или "арт-кластер", делись ссылкой на группу ВКонтакте: https://vk.com/okkolospb.
                                                                Для ответов на вопросы используй следующую таблицу:
                                                                {ds}
                                                                """
                                 },
                                 {"role": "user",
                                  "content": f"Ответить на следующий вопрос пользователя: {message}",
                                 }],
                             stream=False,
                             max_tokens=1024,
                             temperature=0.7,
                             top_p=0.1
                             ).choices[0].get('message')['content'].split('\n')[-1]
    return outputs

demo = gr.ChatInterface(
    fn=respond,
    examples=['Что такое Окколо?', 'Что такое инклюзия?', 'Где расположен арт-кластер?', 'Что такое арт-кластер?'],
    title='Окколо-бот',
    description='Виртуальный ассистент арт-кластера Окколо',
)


if __name__ == "__main__":
    demo.launch(share=True)