Серверный компонент для управления и исполнения параметрированными функциями вещественных переменных вида y = f(x, λ).
Система предоставляет функционал для:
- CRUD операций над параметрированными функциями (создание, чтение, обновление, удаление)
- Вычисления функций на заданных входных параметрах
- Запроса информации о функциях (имя, сигнатуры входа/выхода, параметры)
Проект состоит из следующих компонентов:
function_manager.py # Основной модуль управления функциями api_server.py # REST API сервер на FastAPI cli.py # CLI интерфейс example_api_client.py # Пример клиента для API example_cli_client.py # Пример использования CLI requirements.txt # Зависимости проекта
python -m venv venv
venv\Scripts\activate
source venv/bin/activate
python3 -m venv .venv
- Установите зависимости:
pip install -r requirements.txtpython api_server.pyСервер запустится на http://localhost:8000
# Список всех функций
python cli.py list
# Информация о функции
python cli.py info linear
# Создать функцию
python cli.py create my_func --type quadratic --a 1 --b 0 --c 0
# Выполнить функцию
python cli.py execute my_func --x 5.0Откройте http://localhost:8000/docs и используйте интерактивный интерфейс.
# Получить список функций
curl http://localhost:8000/functions
# Создать функцию
curl -X POST "http://localhost:8000/functions" \
-H "Content-Type: application/json" \
-d '{
"name": "my_sine",
"function_type": "sinusoidal",
"parameters": {"A": 2.0, "omega": 3.0, "phi": 1.0},
"description": "Синусоида y = 2*sin(3*x + 1)"
}'
# Выполнить функцию
curl -X POST "http://localhost:8000/functions/my_sine/execute" \
-H "Content-Type: application/json" \
-d '{"inputs": {"x": 1.57}}'# Создать функцию
python cli.py create my_poly --type polynomial \
--c0 2.0 --c1 3.0 --c2 1.0 \
--description "Полином y = 2 + 3x + x²"
# Выполнить функцию
python cli.py execute my_poly --x 2.0# Создать функцию
python cli.py create my_poly --type polynomial --c0 2.0 --c1 3.0 --c2 1.0 --description "Полином"
# Выполнить функцию
python cli.py execute my_poly --x 2.0Все пользовательские функции автоматически сохраняются в functions_storage.json.
Встроенные функции (linear, quadratic, exponential, multi_output) не сохраняются в файл и инициализируются при каждом запуске.
Запуск примеров
python example_api_client.py
python example_cli_client.py