Servire un'applicazione LLM come endpoint API con FastAPI in Python
Sblocca la potenza dei Large Language Models (LLM) nelle tue applicazioni con il nostro ultimo blog "Servire un'applicazione LLM come endpoint API usando FastAPI in Python". LLM come GPT, Claude e LLaMA stanno rivoluzionando chatbot, creazione di contenuti e molti altri casi d'uso. Scopri come le API agiscono da ponti cruciali, consentendo un'integrazione senza attriti di funzioni avanzate di comprensione e generazione del linguaggio nei tuoi progetti.
I Large Language Models (LLM) sono in prima linea nell'IA generativa, trasformando il modo in cui le macchine comprendono e generano testo simile a quello umano. Modelli LLM come GPT, Claude, LLaMA, Mistral, ecc. guidano innovazioni in chatbot, creazione di contenuti e oltre, offrendo capacità senza precedenti nell'elaborazione e generazione del linguaggio naturale.
Tuttavia, la vera utilità degli LLM va oltre la loro pura potenza computazionale; l'accessibilità è fondamentale. Le API, o Application Programming Interface, fungono da ponti che consentono a diverse applicazioni di attingere alla potenza degli LLM. Permettono agli sviluppatori di integrare funzionalità sofisticate di comprensione e generazione del linguaggio nelle loro applicazioni, dal semplice text analysis a sistemi di dialogo complessi.
In questo tutorial costruiremo una semplice applicazione Python utilizzando il modello OpenAI GPT e la esporremo con un endpoint API sviluppato con il framework FastAPI in Python.
Large Language Models
I Large Language Models (LLM) sono sistemi avanzati di intelligenza artificiale progettati per comprendere e generare testo simile a quello umano. Questi modelli sono addestrati su enormi quantità di dati, il che consente loro di cogliere schemi complessi, comprendere le sfumature del linguaggio e generare risposte coerenti.
Gli LLM sono in grado di svolgere vari compiti linguistici, tra cui traduzione, completamento del testo, sintesi e persino interazioni conversazionali. GPT è un esempio di LLM.
In questo post, costruiremo una semplice applicazione Python utilizzando le API di GPT di OpenAI e poi creeremo un endpoint REST per la nostra applicazione usando il framework FastAPI in Python.
L'Application Programming Interface (API) è la spina dorsale della comunicazione software, consentendo a sistemi, applicazioni e dispositivi diversi di interagire e condividere dati senza soluzione di continuità. Agisce come un insieme di regole e protocolli che permettono agli enti software di comunicare, offrendo un modo predefinito perché un'applicazione sfrutti le capacità o i dati di un'altra senza doverne capire il funzionamento interno.
Le API sono onnipresenti nell'ecosistema digitale di oggi: alimentano servizi web, app mobili e cloud computing, facilitando la comunicazione tra applicazioni e l'integrazione di servizi di terze parti. Semplificano lo sviluppo fornendo mattoncini riutilizzabili che gli sviluppatori possono usare per accelerare la creazione di nuovo software, migliorando funzionalità ed esperienza utente senza partire da zero.
Attraverso le API, gli sviluppatori possono estendere le loro applicazioni in modi che altrimenti sarebbero complessi o impossibili, rendendole un componente fondamentale nello sviluppo moderno del software.
Se ti interessa l'ingegneria legata alla messa in produzione di modelli di machine learning nel mondo reale, consulta questa guida completa su Machine Learning, pipeline, deployment e MLOps. Puoi anche dare un'occhiata al corso gratuito Introduzione alle API su Datacamp.
FastAPI
FastAPI è un framework Python progettato per creare API ad alte prestazioni. La sua ascesa è sostenuta da velocità, facilità d'uso e compatibilità con la programmazione asincrona. FastAPI aiuta gli sviluppatori a esporre le funzionalità degli LLM come endpoint API, semplificando il deploy, la gestione e la scalabilità di servizi alimentati dall'IA.
FastAPI si distingue per prestazioni ed efficienza, sfruttando funzionalità moderne di Python come i type hint e la programmazione asincrona per offrire miglioramenti di velocità paragonabili a NodeJS e persino a Go.
Questo vantaggio prestazionale è cruciale per applicazioni che richiedono elaborazione dati in tempo reale e gestione di richieste concorrenti, come quelle che interagiscono con gli LLM. La sua capacità di validare automaticamente i dati in ingresso e serializzare le risposte riduce il boilerplate, rendendo lo sviluppo di API più pulito e lineare.
La documentazione automatica, che utilizza standard come OpenAPI, fornisce a sviluppatori e utenti una documentazione chiara e interattiva delle API, semplificando ulteriormente integrazione e test.
Esempio di creazione di un'API:
from typing import Union
from fastapi import FastAPI
app = FastAPI()@app.get("/")defread_root():return{"Hello":"World"}@app.get("/items/{item_id}")defread_item(item_id:int, q: Union[str,None]=None):return{"item_id": item_id,"q": q}Offerto da
Questo codice crea un semplice server web usando FastAPI. Il server risponde a due tipi di richieste web: una che saluta l'utente con "Hello World" quando visita la home page ("/"), e un'altra che mostra l'ID di un elemento e un parametro di query opzionale "q" quando l'utente visita una pagina specifica dell'elemento ("/items/{item_id}"). L'ID dell'elemento è obbligatorio e deve essere un intero, mentre il parametro di query "q" è facoltativo e può essere una stringa o mancare.
Esegui il server FastAPI con:
Crea un'applicazione end-to-end in Python
Lo scopo principale di questo blog è mostrare come puoi creare rapidamente endpoint REST API per le tue applicazioni LLM. Creeremo una semplice applicazione Python (una sola funzione) che usa le API di OpenAI GPT-4 e traduce testo inglese in francese. Questa applicazione ha una sola funzione, translate_text:
from openai import OpenAI
import os
os.environ["OPENAI_API_KEY"]="..."# Initialize OpenAI client with your API key
client = OpenAI()deftranslate_text(input_str):
completion = client.chat.completions.create(
model="gpt-4-0125-preview",
messages=[{"role":"system","content":"You are an expert translator who translates text from english to french and only return translated text",},{"role":"user","content": input_str},],)return completion.choices[0].message.contentOfferto da
Questa funzione prende un input dall'utente e lo passa semplicemente al modello OpenAI GPT-4. Ha un prompt di sistema per definire il contesto e il prompt dell'utente è il testo che riceviamo dall'utente in input_str.
Puoi testare questa funzione eseguendo quanto segue. Dovresti ottenere il testo in francese come risultato.
# test the function
translate_text("this is a test string to translate")Offerto da
Se stai pensando di condividere questa applicazione con altri, inviare semplicemente il file Python da eseguire sulla loro riga di comando potrebbe funzionare per alcuni utenti, specialmente per chi ha familiarità con Python e gli strumenti da riga di comando.
Tuttavia, questo approccio ha dei limiti. Non tutti gli utenti si sentono a loro agio con la riga di comando e, anche per chi lo è, eseguire uno script Python richiede un ambiente Python configurato con tutte le dipendenze necessarie. Questo può essere macchinoso e creare una barriera all'accesso alle funzionalità della tua applicazione di traduzione.
È qui che incapsulare la tua applicazione in una FastAPI per esporla come endpoint REST API diventa una soluzione potente. In questo modo, crei un'interfaccia accessibile alla tua applicazione raggiungibile via Internet senza che gli utenti debbano eseguire script Python. Possono interagire con la tua applicazione tramite semplici richieste web, effettuabili da una grande varietà di piattaforme e linguaggi di programmazione, non solo Python.
Creare una REST API con FastAPI automatizza il processo di ricezione delle richieste di traduzione e l'invio delle traduzioni. Gli utenti possono inviare il testo da tradurre attraverso un'interfaccia web o una chiamata API programmatica, rendendo il tutto molto più semplice e flessibile per diversi casi d'uso.
Per convertire questa semplice funzione in un endpoint API usando FastAPI, modificheremo il nostro codice:
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import os
os.environ["OPENAI_API_KEY"]="..."# Initialize OpenAI client with your API key
client = OpenAI()# Initialize FastAPI client
app = FastAPI()# Create class with pydantic BaseModelclassTranslationRequest(BaseModel):
input_str:strdeftranslate_text(input_str):
completion = client.chat.completions.create(
model="gpt-4-0125-preview",
messages=[{"role":"system","content":"You are an expert translator who translates text from english to french and only return translated text",},{"role":"user","content": input_str},],)return completion.choices[0].message.content
@app.post("/translate/")# This line decorates 'translate' as a POST endpointasyncdeftranslate(request: TranslationRequest):try:# Call your translation function
translated_text = translate_text(request.input_str)return{"translated_text": translated_text}except Exception as e:# Handle exceptions or errors during translationraise HTTPException(status_code=500, detail=str(e))Offerto da
Per eseguire e testare questa API in locale, esegui semplicemente il seguente comando:
Qui, main.py si riferisce al file che contiene il tuo codice. Il termine app punta all'istanza dell'applicazione FastAPI, che nel tuo codice è identificata da app = FastAPI().
Vai su localhost:8000/docs per vedere un'interfaccia UI che dovrebbe apparire così:
Clicca su POST, poi su Try it out, inserisci la tua stringa di testo e premi Execute.
Dovresti vedere un comando curl inviato all'API, l'URL della richiesta che in questo momento è il tuo localhost e la risposta del server. Il codice 200 indica successo; accanto puoi vedere la traduzione in francese.
Conclusione
Questo blog ha illustrato la configurazione di un endpoint API usando FastAPI per servire applicazioni alimentate da Large Language Models come GPT. FastAPI, con le sue prestazioni e facilità d'uso, offre un modo semplice per creare API ad alte prestazioni, rendendolo una scelta ideale per gli sviluppatori che vogliono integrare LLM nei loro progetti.
Se vuoi scoprire tutto il potenziale degli LLM con un corso concettuale unico che copre applicazioni, metodologie di training, considerazioni etiche e le ricerche più recenti, dai un'occhiata a questo corso gratuito su Mastering Large Language Models (LLMs) su Datacamp.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Introduzione
I Large Language Models (LLM) sono in prima linea nell'IA generativa, trasformando il modo in cui le macchine comprendono e generano testo simile a quello umano. Modelli LLM come GPT, Claude, LLaMA, Mistral, ecc. guidano innovazioni in chatbot, creazione di contenuti e oltre, offrendo capacità senza precedenti nell'elaborazione e generazione del linguaggio naturale.
Tuttavia, la vera utilità degli LLM va oltre la loro pura potenza computazionale; l'accessibilità è fondamentale. Le API, o Application Programming Interface, fungono da ponti che consentono a diverse applicazioni di attingere alla potenza degli LLM. Permettono agli sviluppatori di integrare funzionalità sofisticate di comprensione e generazione del linguaggio nelle loro applicazioni, dal semplice text analysis a sistemi di dialogo complessi.
In questo tutorial costruiremo una semplice applicazione Python utilizzando il modello OpenAI GPT e la esporremo con un endpoint API sviluppato con il framework FastAPI in Python.
Large Language Models
I Large Language Models (LLM) sono sistemi avanzati di intelligenza artificiale progettati per comprendere e generare testo simile a quello umano. Questi modelli sono addestrati su enormi quantità di dati, il che consente loro di cogliere schemi complessi, comprendere le sfumature del linguaggio e generare risposte coerenti.
Gli LLM sono in grado di svolgere vari compiti linguistici, tra cui traduzione, completamento del testo, sintesi e persino interazioni conversazionali. GPT è un esempio di LLM.
In questo post, costruiremo una semplice applicazione Python utilizzando le API di GPT di OpenAI e poi creeremo un endpoint REST per la nostra applicazione usando il framework FastAPI in Python.
Un LLM è un tipo di IA generativa. Se vuoi saperne di più sull'IA generativa e su come può stimolare la tua creatività, dai un'occhiata ai nostri post sul blog Usare l'IA generativa per aumentare la tua creatività e al nostro podcast, Dentro la rivoluzione dell'IA generativa.
Puoi anche iscriverti al nostro prossimo corso su Concetti sui Large Language Models.
Che cos'è un'API?
L'Application Programming Interface (API) è la spina dorsale della comunicazione software, consentendo a sistemi, applicazioni e dispositivi diversi di interagire e condividere dati senza soluzione di continuità. Agisce come un insieme di regole e protocolli che permettono agli enti software di comunicare, offrendo un modo predefinito perché un'applicazione sfrutti le capacità o i dati di un'altra senza doverne capire il funzionamento interno.
Le API sono onnipresenti nell'ecosistema digitale di oggi: alimentano servizi web, app mobili e cloud computing, facilitando la comunicazione tra applicazioni e l'integrazione di servizi di terze parti. Semplificano lo sviluppo fornendo mattoncini riutilizzabili che gli sviluppatori possono usare per accelerare la creazione di nuovo software, migliorando funzionalità ed esperienza utente senza partire da zero.
Attraverso le API, gli sviluppatori possono estendere le loro applicazioni in modi che altrimenti sarebbero complessi o impossibili, rendendole un componente fondamentale nello sviluppo moderno del software.
Fonte immagine
Se ti interessa l'ingegneria legata alla messa in produzione di modelli di machine learning nel mondo reale, consulta questa guida completa su Machine Learning, pipeline, deployment e MLOps. Puoi anche dare un'occhiata al corso gratuito Introduzione alle API su Datacamp.
FastAPI
FastAPI è un framework Python progettato per creare API ad alte prestazioni. La sua ascesa è sostenuta da velocità, facilità d'uso e compatibilità con la programmazione asincrona. FastAPI aiuta gli sviluppatori a esporre le funzionalità degli LLM come endpoint API, semplificando il deploy, la gestione e la scalabilità di servizi alimentati dall'IA.
FastAPI si distingue per prestazioni ed efficienza, sfruttando funzionalità moderne di Python come i type hint e la programmazione asincrona per offrire miglioramenti di velocità paragonabili a NodeJS e persino a Go.
Questo vantaggio prestazionale è cruciale per applicazioni che richiedono elaborazione dati in tempo reale e gestione di richieste concorrenti, come quelle che interagiscono con gli LLM. La sua capacità di validare automaticamente i dati in ingresso e serializzare le risposte riduce il boilerplate, rendendo lo sviluppo di API più pulito e lineare.
La documentazione automatica, che utilizza standard come OpenAPI, fornisce a sviluppatori e utenti una documentazione chiara e interattiva delle API, semplificando ulteriormente integrazione e test.
Esempio di creazione di un'API:
Questo codice crea un semplice server web usando FastAPI. Il server risponde a due tipi di richieste web: una che saluta l'utente con "Hello World" quando visita la home page ("/"), e un'altra che mostra l'ID di un elemento e un parametro di query opzionale "q" quando l'utente visita una pagina specifica dell'elemento ("/items/{item_id}"). L'ID dell'elemento è obbligatorio e deve essere un intero, mentre il parametro di query "q" è facoltativo e può essere una stringa o mancare.
Esegui il server FastAPI con:
Crea un'applicazione end-to-end in Python
Lo scopo principale di questo blog è mostrare come puoi creare rapidamente endpoint REST API per le tue applicazioni LLM. Creeremo una semplice applicazione Python (una sola funzione) che usa le API di OpenAI GPT-4 e traduce testo inglese in francese. Questa applicazione ha una sola funzione,
translate_text:Questa funzione prende un input dall'utente e lo passa semplicemente al modello OpenAI GPT-4. Ha un prompt di sistema per definire il contesto e il prompt dell'utente è il testo che riceviamo dall'utente in
input_str.Puoi testare questa funzione eseguendo quanto segue. Dovresti ottenere il testo in francese come risultato.
Se stai pensando di condividere questa applicazione con altri, inviare semplicemente il file Python da eseguire sulla loro riga di comando potrebbe funzionare per alcuni utenti, specialmente per chi ha familiarità con Python e gli strumenti da riga di comando.
Tuttavia, questo approccio ha dei limiti. Non tutti gli utenti si sentono a loro agio con la riga di comando e, anche per chi lo è, eseguire uno script Python richiede un ambiente Python configurato con tutte le dipendenze necessarie. Questo può essere macchinoso e creare una barriera all'accesso alle funzionalità della tua applicazione di traduzione.
È qui che incapsulare la tua applicazione in una FastAPI per esporla come endpoint REST API diventa una soluzione potente. In questo modo, crei un'interfaccia accessibile alla tua applicazione raggiungibile via Internet senza che gli utenti debbano eseguire script Python. Possono interagire con la tua applicazione tramite semplici richieste web, effettuabili da una grande varietà di piattaforme e linguaggi di programmazione, non solo Python.
Creare una REST API con FastAPI automatizza il processo di ricezione delle richieste di traduzione e l'invio delle traduzioni. Gli utenti possono inviare il testo da tradurre attraverso un'interfaccia web o una chiamata API programmatica, rendendo il tutto molto più semplice e flessibile per diversi casi d'uso.
Per convertire questa semplice funzione in un endpoint API usando FastAPI, modificheremo il nostro codice:
Per eseguire e testare questa API in locale, esegui semplicemente il seguente comando:
Qui, main.py si riferisce al file che contiene il tuo codice. Il termine app punta all'istanza dell'applicazione FastAPI, che nel tuo codice è identificata da
app = FastAPI().Vai su localhost:8000/docs per vedere un'interfaccia UI che dovrebbe apparire così:
Clicca su POST, poi su Try it out, inserisci la tua stringa di testo e premi Execute.
Dovresti vedere un comando curl inviato all'API, l'URL della richiesta che in questo momento è il tuo localhost e la risposta del server. Il codice 200 indica successo; accanto puoi vedere la traduzione in francese.
Conclusione
Questo blog ha illustrato la configurazione di un endpoint API usando FastAPI per servire applicazioni alimentate da Large Language Models come GPT. FastAPI, con le sue prestazioni e facilità d'uso, offre un modo semplice per creare API ad alte prestazioni, rendendolo una scelta ideale per gli sviluppatori che vogliono integrare LLM nei loro progetti.
Se vuoi scoprire tutto il potenziale degli LLM con un corso concettuale unico che copre applicazioni, metodologie di training, considerazioni etiche e le ricerche più recenti, dai un'occhiata a questo corso gratuito su Mastering Large Language Models (LLMs) su Datacamp.
Vuoi ampliare il tuo set di competenze e strumenti? Scopri le 21 tool essenziali di Python per sviluppo software, web scraping e development, analisi e visualizzazione dei dati e machine learning.