🔌 Создание RESTful API для управления IoT устройствами с FastAPI
📌 Этот код предоставляет базовый RESTful API для управления IoT устройствами с использованием FastAPI. Вы можете добавлять,
читать, обновлять и удалять устройства из хранилища, что позволяет легко управлять состоянием ваших IoT устройств. Такое API может
быть полезно для приложений умного дома, где нужно централизованно контролировать различные устройства.
🛠 Установите необходимые библиотеки:
Подпишись 👉🏻 @KodduuPython 🤖
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Dict
app = FastAPI()
# Структура данных для устройства
class Device(BaseModel):
id: int
name: str
status: str
# Хранилище устройств
devices: Dict = {}
@app.post("/devices/", response_model=Device)
def create_device(device: Device):
if device.id in devices:
raise HTTPException(status_code=400, detail="Device with this ID already exists")
devices = device
return device
@app.get("/devices/{device_id}", response_model=Device)
def read_device(device_id: int):
if device_id not in devices:
raise HTTPException(status_code=404, detail="Device not found")
return devices
@app.put("/devices/{device_id}", response_model=Device)
def update_device(device_id: int, device: Device):
if device_id not in devices:
raise HTTPException(status_code=404, detail="Device not found")
devices = device
return device
@app.delete("/devices/{device_id}", response_model=Device)
def delete_device(device_id: int):
if device_id not in devices:
raise HTTPException(status_code=404, detail="Device not found")
deleted_device = devices.pop(device_id)
return deleted_device
# Пример использования
# Запустите сервер: uvicorn script_name:app --reload
📌 Этот код предоставляет базовый RESTful API для управления IoT устройствами с использованием FastAPI. Вы можете добавлять,
читать, обновлять и удалять устройства из хранилища, что позволяет легко управлять состоянием ваших IoT устройств. Такое API может
быть полезно для приложений умного дома, где нужно централизованно контролировать различные устройства.
🛠 Установите необходимые библиотеки:
pip install fastapi uvicornПодпишись 👉🏻 @KodduuPython 🤖
👍1
🌦️ Асинхронное взаимодействие с API OpenWeather
📌 Этот код демонстрирует, как использовать асинхронные запросы для взаимодействия с OpenWeather API. Мы создаем асинхронный
клиент, который получает и обрабатывает данные о погоде для указанного города. Такой подход позволяет эффективно работать с API,
минимизируя задержки и улучшая производительность приложения.
Подпишись 👉🏻 @KodduuPython 🤖
import aiohttp
import asyncio
from typing import Dict, Any
API_KEY = 'your_openweather_api_key'
BASE_URL = 'http://api.openweathermap.org/data/2.5/weather'
async def fetch_weather_data(city: str) -> Dict:
async with aiohttp.ClientSession() as session:
params = {'q': city, 'appid': API_KEY, 'units': 'metric'}
async with session.get(BASE_URL, params=params) as response:
if response.status == 200:
return await response.json()
else:
raise Exception(f"Ошибка при получении данных: {response.status}")
async def main():
city = "Moscow"
try:
weather_data = await fetch_weather_data(city)
print(f"Погода в {city}: {weather_data['main']['temp']}°C")
except Exception as e:
print(f"Ошибка: {e}")
if __name__ == "__main__":
asyncio.run(main())
📌 Этот код демонстрирует, как использовать асинхронные запросы для взаимодействия с OpenWeather API. Мы создаем асинхронный
клиент, который получает и обрабатывает данные о погоде для указанного города. Такой подход позволяет эффективно работать с API,
минимизируя задержки и улучшая производительность приложения.
Подпишись 👉🏻 @KodduuPython 🤖
📊 Автоматизация обработки данных в Pandas
📌 Этот код автоматически очищает данные в CSV-файле: удаляет пропуски и дубликаты, а также форматирует имена столбцов. Это упрощает предварительную
обработку данных для анализа, что полезно аналитикам и разработчикам, работающим с большими наборами данных.
🛠 pip install pandas
Подпишись 👉🏻 @KodduuPython 🤖
import pandas as pd
def clean_data(file_path: str) -> pd.DataFrame:
try:
df = pd.read_csv(file_path)
df.dropna(inplace=True)
df.drop_duplicates(inplace=True)
df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_')
return df
except FileNotFoundError:
print(f"Файл не найден: {file_path}")
return pd.DataFrame()
except pd.errors.EmptyDataError:
print("Файл пустой.")
return pd.DataFrame()
except Exception as e:
print(f"Ошибка при обработке файла: {e}")
return pd.DataFrame()
# Пример использования
dataframe = clean_data('data.csv')
print(dataframe.head())
📌 Этот код автоматически очищает данные в CSV-файле: удаляет пропуски и дубликаты, а также форматирует имена столбцов. Это упрощает предварительную
обработку данных для анализа, что полезно аналитикам и разработчикам, работающим с большими наборами данных.
🛠 pip install pandas
Подпишись 👉🏻 @KodduuPython 🤖
Forwarded from AIGENTTO
Агенты общаются как люди (без оркестрации)
Вот пример общения агентов без оркестрации — они как люди сами решают, что делать и когда делать, а когда не делать...
1️⃣ Пришел запрос от пользователя.
2️⃣ Проверка пользователя на анонимность (если залогинен, то разрешаем).
3️⃣ Агент не блокировал НЕ персональный вопрос.
4️⃣ Агент-юрист понял, что вопрос не по его теме.
5️⃣ Агенту HR разрешено всё, он попытался найти инфу в документах компании, но не смог 😀.
6️⃣ Forward-agent понял, что на вопрос никто не ответил, и приказал его отправить людям 👨.
7️⃣ Агент task tracker взял и создал задачу на человека с этим вопросом.
Подпишись 👉🏻 @aigentto 🤖
Вот пример общения агентов без оркестрации — они как люди сами решают, что делать и когда делать, а когда не делать...
1️⃣ Пришел запрос от пользователя.
2️⃣ Проверка пользователя на анонимность (если залогинен, то разрешаем).
3️⃣ Агент не блокировал НЕ персональный вопрос.
4️⃣ Агент-юрист понял, что вопрос не по его теме.
5️⃣ Агенту HR разрешено всё, он попытался найти инфу в документах компании, но не смог 😀.
6️⃣ Forward-agent понял, что на вопрос никто не ответил, и приказал его отправить людям 👨.
7️⃣ Агент task tracker взял и создал задачу на человека с этим вопросом.
Подпишись 👉🏻 @aigentto 🤖
👍1🤔1