File size: 3,965 Bytes
a2297eb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
from smolagents import LiteLLMModel
from smolagents import CodeAgent
from smolagents.local_python_executor import LocalPythonExecutor
from data import df


model = LiteLLMModel(
    api_key='nyjyVJhQqTEz12YFL4fgkmYtqHsU3sju',
    model_id='mistral/mistral-small-latest'
)

custom_executor = LocalPythonExecutor(['pandas'])

agent = CodeAgent(
    tools=[],
    model=model,
    additional_authorized_imports=['pandas']
)
agent.python_executor.send_variables({'df': df})

user_prompt = '''
Сгенерируй код для следующей задачи

# Краткая постановка задачи
{task}

# Описание таблицы
Эта таблица представляет собой базу данных сотрудников банка. Она содержит информацию о сотрудниках, их должностях, подразделениях, местоположении и статусе прохождения обучающих курсов. Таблица предназначена для отслеживания кадровых данных и контроля за выполнением обучающих программ сотрудниками.

Таблица лежит в переменной df

# Описание колонок таблицы
User ID (Идентификатор пользователя)

Описание: Уникальный идентификатор сотрудника в базе данных.
Тип данных: Целое число (Integer).
ФИ (Фамилия Имя)

Описание: Полное имя сотрудника.
Тип данных: Строка (String).
Должность

Описание: Название должности сотрудника в банке.
Тип данных: Строка (String).
Примечание: Содержит до 30 уникальных должностей, связанных с банковской деятельностью.
Дата вступления в должность

Описание: Дата, когда сотрудник занял свою текущую должность.
Тип данных: Дата (Date).
Почта

Описание: Электронная почта сотрудника.
Тип данных: Строка (String).
Подразделение

Описание: Название подразделения банка, в котором работает сотрудник.
Тип данных: Строка (String).
Примечание: Содержит 10 уникальных подразделений, таких как HR, IT и т.д.
ГОСБ (Головное отделение)

Описание: Местоположение подразделения банка, в котором работает сотрудник.
Тип данных: Строка (String).
Примечание: Содержит до 12 уникальных регионов России.
Назначено курсов

Описание: Общее количество курсов, назначенных сотруднику для прохождения.
Тип данных: Целое число (Integer).
Пройдено курсов

Описание: Количество курсов, которые сотрудник успешно завершил.
Тип данных: Целое число (Integer).
Не пройдено курсов

Описание: Количество курсов, которые сотрудник еще не начал или не завершил.
Тип данных: Целое число (Integer).
Просрочено курсов

Описание: Количество курсов, срок прохождения которых истек.
Тип данных: Целое число (Integer).
'''

def run(task: str):
    prompt = user_prompt.format(task=task)
    result = agent.run(prompt)
    return result