ExcelAgent / agent.py
AtikinNT's picture
example on fake dataframe
a2297eb
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