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