Hatten Sie ein unordentliches Jupyter-Notizbuch mit kopierener Code gefüllt, um einige Daten zu verwenden, die die Logik der Daten umgehen? Egal, ob Sie es für Leidenschaft oder zur Arbeit tun, wenn Sie viel codieren, dann haben Sie wahrscheinlich so etwas wie „viel zu viele“ beantwortet.
Du bist nicht allein.
Vielleicht haben Sie versucht, Daten mit Kollegen zu teilen oder Ihr neuestes ML -Modell in ein Slick -Dashboard zu stecken, aber das Senden von CSVs oder das Wiederaufbau des Armaturenbretts von Grund auf sich nicht richtig anfühlt.
Hier ist das heutige Repair (und Thema): Bauen Sie sich eine persönliche API auf.
In diesem Beitrag zeige ich Ihnen, wie Sie einen leichten, leistungsstarken Fastapi -Service einrichten, um Ihre Datensätze oder Modelle freizulegen und Endlich Geben Sie Ihren Datenprojekten die Modularität, die sie verdienen.
Ob du ein Solo bist Datenwissenschaft Fanatic, ein Scholar mit Nebenprojekten oder ein erfahrener ML -Ingenieur, das ist für Sie.
Und nein, ich werde nicht dafür bezahlt, diesen Service zu fördern. Es wäre intestine, aber die Realität ist weit davon entfernt. Ich benutze es einfach gerne und ich dachte, es lohnt sich, geteilt zu werden.
Lassen Sie uns das heutige Inhaltsverzeichnis überprüfen:
- Was ist eine persönliche API? (Und warum sollte es dir interessiert?)
- Einige Anwendungsfälle
- Aufstellen mit Fastapi
- Abschluss
Was ist eine persönliche API? (Und warum sollte es dir interessiert?)
99% der Menschen, die dies lesen, werden bereits mit dem API -Konzept vertraut sein. Für diese 1percentist hier ein kurzes Intro, das in den nächsten Abschnitten mit Code ergänzt wird:
Ein API (Anwendungsprogrammierschnittstelle) ist eine Reihe von Regeln und Instruments, mit denen verschiedene Softwareanwendungen miteinander kommunizieren können. Es definiert Was Sie um ein Programm bitten können, um dies zu tunwie z. B. „Gib mir die Wettervorhersage“ oder „eine Nachricht senden“. Und dieses Programm übernimmt die Anfrage hinter den Kulissen und gibt das Ergebnis zurück.
Additionally, was ist ein Persönliche API? Es ist im Wesentlichen ein kleiner Webdienst, der Ihre Daten oder Ihre Logik auf strukturierte, wiederverwendbare Weise enthüllt. Stellen Sie sich dies wie eine Mini -App vor, die auf HTTP -Anfragen mit JSON -Versionen Ihrer Daten reagiert.
Warum sollte das eine gute Idee sein? Meiner Meinung nach hat es unterschiedliche Vorteile:
- Wie bereits erwähnt, Wiederverwendbarkeit. Wir können es aus unseren Notebooks, Dashboards oder Skripten verwenden, ohne denselben Code mehrmals neu schreiben zu müssen.
- Zusammenarbeit: Ihre Teamkollegen können über die API -Endpunkte problemlos auf Ihre Daten zugreifen, ohne Ihren Code zu duplizieren oder dieselben Datensätze in ihren Maschinen herunterzuladen.
- Portabilität: Sie können es überall einsetzen – native, in der Cloud, in einem Behälter oder sogar auf einem Raspberry Pi.
- Testen: Müssen Sie eine neue Funktion oder ein neues Modell -Replace testen? Schieben Sie es auf Ihre API und testen Sie sofort alle Shoppers (Notebooks, Apps, Dashboards).
- Kapselung und Versionierung: Sie können Ihre Logik (v1, v2 usw.) und separate Rohdaten von der verarbeiteten Logik sauber versionieren. Das ist ein großes Plus für die Wartbarkeit.
Und Fastapi ist perfekt dafür. Aber sehen wir uns einige echte Anwendungsfälle an, in denen jemand wie Sie und ich von einer persönlichen API profitieren würde.
Einige Anwendungsfälle
Egal, ob Sie Datenwissenschaftler, Analyst, ML -Ingenieur sind oder nur coole Dinge am Wochenende bauen, eine persönliche API kann zu Ihrer geheimen Produktivitätswaffe werden. Hier sind drei Beispiele:
- Modell-as-a-Service (Masse): trainieren Sie ein ML -Modell lokal und setzen Sie es Ihrer Öffentlichkeit über einen Endpunkt aus
/predict. Und Optionen von hier sind endlos: Schnelles Prototyping, integrieren Sie es in eine Frontend… - Dashboard-fähige Daten: Servieren Sie die Vorverarbeitungs-, Reinigungs- und gefilterten Datensätze in BI -Instruments oder benutzerdefinierten Dashboards. Sie können die Logik in Ihrer API zentralisieren, sodass das Dashboard leicht bleibt und die Filterung oder Aggregation nicht erneut implementiert.
- Wiederverwendbare Datenzugriffsschicht: Wenn Sie an einem Projekt arbeiten, das mehrere Notizbücher enthält, ist es Ihnen jemals passiert, dass die ersten Zellen auf allen immer denselben Code enthalten? Was ist, wenn Sie den gesamten Code in Ihre API zentralisierten und ihn aus einer einzigen Anfrage erledigen lassen? Ja, Sie könnten es auch modularisieren und eine Funktion aufrufen, um dasselbe zu erledigen, aber das Erstellen der API ermöglicht es Ihnen, einen Schritt weiter zu gehen und sie einfach von überall von überall (nicht nur lokal) zu verwenden.
Ich hoffe du bekommst den Punkt. Optionen sind endlos, genau wie der Nutzen.
Aber gehen wir zum interessanten Teil: Erstellen der API.
Aufstellen mit Fastapi
Beginnen Sie wie immer, indem Sie die Umgebung mit Ihrem Lieblings -Env -Software (Venv, Pipenv…) einrichten. Installieren Sie dann Fastapi und Uvicorn mit pip set up fastapi uvicorn. Lassen Sie uns verstehen, was sie tun:
- Fastapi(1): Es ist die Bibliothek, die es uns ermöglicht, die API im Wesentlichen zu entwickeln.
- Uvicorn(2): Dies ermöglicht es uns, den Webserver auszuführen.
Nach der Set up benötigen wir nur eine Datei. Der Einfachheit halber nennen wir es app.py.
Lassen Sie uns nun einen Kontext in das setzen, was wir tun werden: Stellen Sie sich vor, wir bauen ein intelligentes Bewässerungssystem für unseren Gemüsegarten zu Hause auf. Das Bewässerungssystem ist recht einfach: Wir haben einen Feuchtigkeitssensor, der die Bodenfeuchtigkeit mit einer gewissen Frequenz liest, und wir möchten das System aktivieren, wenn es unter 30percentliegt.
Natürlich möchten wir es lokal automatisieren. Wenn es additionally auf den Schwellenwert trifft, beginnt es Wasser fallen zu lassen. Wir sind aber auch daran interessiert, auf das System aus der Ferne zugreifen zu können, den aktuellen Wert zu lesen oder sogar die Wasserpumpe auszulösen, wenn wir möchten. Dann kann die persönliche API nützlich sein.
Hier ist der Grundcode, mit dem wir genau das tun können (beachten Sie, dass ich eine andere Bibliothek verwende. Duckdb(3), weil ich dort die Daten speichern würde – aber Sie konnten einfach SQLite3, Pandas oder was auch immer Sie möchten):
import datetime
from fastapi import FastAPI, Question
import duckdb
app = FastAPI()
conn = duckdb.join("moisture_data.db")
@app.get("/last_moisture")
def get_last_moisture():
question = "SELECT * FROM moisture_reads ORDER BY day DESC, time DESC LIMIT 1"
return conn.execute(question).df().to_dict(orient="data")
@app.get("/moisture_reads/{day}")
def get_moisture_reads(day: datetime.date, time: datetime.time = Question(None)):
question = "SELECT * FROM moisture_reads WHERE day = ?"
args = (day)
if time:
question += " AND time = ?"
args.append(time)
return conn.execute(question, args).df().to_dict(orient="data")
@app.get("/trigger_irrigation")
def trigger_irrigation():
# It is a placeholder for the precise irrigation set off logic
# In a real-world state of affairs, you'll combine along with your irrigation system right here
return {"message": "Irrigation triggered"}
Wenn dieser Code vertikal gelesen wird, trennt dieser Code drei Hauptblöcke:
- Importe
- Einrichten des App -Objekts und der DB -Verbindung
- Erstellen der API -Endpunkte
1 und 2 sind ziemlich unkompliziert, additionally konzentrieren wir uns auf den dritten. Was ich hier getan habe, struggle, 3 Endpunkte mit eigenen Funktionen zu erstellen:
/last_moistureZeigt den letzten Sensorwert (den neuesten)./moisture_reads/{day}ist nützlich, um den Sensor aus einem einzigen Tag zu sehen. Wenn ich beispielsweise im Winter mit denen im Sommer das Feuchtigkeitsniveau vergleichen wollte, würde ich überprüfen, was sich befindet/moisture_reads/2024-01-01und beobachten Sie die Unterschiede mit/moisture_reads/2024-08-01.
Aber ich habe es auch in der Lage, Get -Parameter zu lesen, wenn ich eine bestimmte Zeit überprüfen möchte. Zum Beispiel:/moisture_reads/2024-01-01?time=10:00/trigger_irrigationwürde tun, was der Title vorschlägt.
Wir fehlen additionally nur einen Teil, der den Server starten. Sehen Sie, wie einfach es ist, es lokal auszuführen:
uvicorn app:app --reload
Jetzt konnte ich besuchen:
Aber hier endet es nicht. Fastapi liefert einen weiteren Endpunkt, der in gefunden wird http: // localhost: 8000/docs Dies zeigt eine autogenerierte interaktive Dokumentation für unsere API. In unserem Fall:

Es ist äußerst nützlich, wenn die API kollaborativ ist, da wir den Code nicht überprüfen müssen, um alle Endpunkte zu sehen, auf die wir Zugriff haben!
Und mit nur wenigen Codezeilen konnten wir unsere persönliche API aufbauen. Es kann offensichtlich viel komplizierter werden (und wahrscheinlich sollte es sein), aber das struggle der heutige Zweck nicht.
Abschluss
Mit nur ein paar Zeilen von Python Und die Kraft von Fastapi, Sie haben jetzt gesehen, wie einfach es ist, Ihre Daten oder Logik durch eine persönliche API aufzudecken. Egal, ob Sie ein intelligentes Bewässerungssystem aufbauen, ein maschinelles Lernmodell aussetzen oder es nur müde, dieselbe Wrangling -Logik über Notizbücher hinweg neu zu schreiben – dieser Ansatz bringt Modularität, Zusammenarbeit und Skalierbarkeit Ihren Projekten.
Und das ist nur der Anfang. Sie könnten:
- Authentifizierung und Versionierung hinzufügen
- Bereitstellen in der Cloud oder in einem Himbeer -PI
- Ketten Sie es zu einem Frontend oder einem Telegrammbot
- Verwandeln Sie Ihr Portfolio in einen lebendigen, atmenden Projektzentrum
Wenn Sie jemals wollten, dass Ihre Daten funktionieren fühlen Wie ein echtes Produkt – das ist Ihr Gateway.
Lassen Sie mich wissen, wenn Sie etwas Cooles damit bauen. Oder noch besser, schicken Sie mir die URL zu Ihrem /predictAnwesend /last_moistureoder was auch immer Sie gemacht haben. Ich würde gerne sehen, was Sie sich einfallen lassen.
Ressourcen
(1) Ramírez, S. (2018). Fastapi (Model 0.109.2) (Computersoftware). https://fastapi.tiangolo.com
(2) codieren. (2018). Uvicorn (Model 0.27.0) (Computersoftware). https://www.uvicorn.org
(3) H. Mühleisen, M. Raasveldt & Mitwirkende von Duckdb. (2019). Duckdb (Model 0.10.2) (Computersoftware). https://duckdb.org
