Eventi
Ottieni gratuitamente la certificazione in Microsoft Fabric.
19 nov, 23 - 10 dic, 23
Per un periodo di tempo limitato, il team della community di Microsoft Fabric offre buoni per esami DP-600 gratuiti.
Prepara oraQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Importante
Questa funzionalità è disponibile in anteprima pubblica ed è supportata in entrambe le API del modello foundation con pagamento in base al token e negli endpoint di velocità effettiva con provisioning.
Questo articolo descrive gli output strutturati in Azure Databricks e come usarli come parte dei flussi di lavoro generati dell'applicazione di intelligenza artificiale. Gli output strutturati sono compatibili con OpenAI ed è disponibile solo durante la gestione del modello come parte delle API del modello di base.
Gli output strutturati consentono di generare dati strutturati sotto forma di oggetti JSON dai dati di input. È possibile scegliere di generare testo, oggetti JSON non strutturati e oggetti JSON conformi a uno schema JSON specifico. Gli output strutturati sono supportati per i modelli di chat serviti usando le API modello di base con pagamento in base al token e gli endpoint di velocità effettiva con provisioning.
Databricks consiglia di usare output strutturati per gli scenari seguenti:
Specificare gli output strutturati usando response_format
nella richiesta di chat. Vedere Informazioni di riferimento sulle API REST del modello Di base.
Di seguito è riportato un esempio di estrazione di dati di documenti di ricerca in uno schema JSON specifico.
import os
import json
from openai import OpenAI
DATABRICKS_TOKEN = os.environ.get('YOUR_DATABRICKS_TOKEN')
DATABRICKS_BASE_URL = os.environ.get('YOUR_DATABRICKS_BASE_URL')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url=DATABRICKS_BASE_URL
)
response_format = {
"type": "json_schema",
"json_schema": {
"name": "research_paper_extraction",
"schema": {
"type": "object",
"properties": {
"title": { "type": "string" },
"authors": {
"type": "array",
"items": { "type": "string" }
},
"abstract": { "type": "string" },
"keywords": {
"type": "array",
"items": { "type": "string" }
}
},
},
"strict": True
}
}
messages = [{
"role": "system",
"content": "You are an expert at structured data extraction. You will be given unstructured text from a research paper and should convert it into the given structure."
},
{
"role": "user",
"content": "..."
}]
response = client.chat.completions.create(
model="databricks-meta-llama-3-1-70b-instruct",
messages=messages,
response_format=response_format
)
print(json.dumps(response.choices[0].message.model_dump()['content'], indent=2))
Di seguito è riportato un esempio di estrazione JSON, ma lo schema JSON non è noto prima della mano.
import os
import json
from openai import OpenAI
DATABRICKS_TOKEN = os.environ.get('YOUR_DATABRICKS_TOKEN')
DATABRICKS_BASE_URL = os.environ.get('YOUR_DATABRICKS_BASE_URL')
client = OpenAI(
api_key=DATABRICKS_TOKEN,
base_url=DATABRICKS_BASE_URL
)
response_format = {
"type": "json_object",
}
messages = [
{
"role": "user",
"content": "Extract the name, size, price, and color from this product description as a JSON object:\n<description>\nThe SmartHome Mini is a compact smart home assistant available in black or white for only $49.99. It's 5 inches wide.\n</description>"
}]
response = client.chat.completions.create(
model="databricks-meta-llama-3-1-70b-instruct",
messages=messages,
response_format=response_format
)
print(json.dumps(response.choices[0].message.model_dump()['content'], indent=2))
Le API del modello foundation supportano su larga scala output strutturati accettati da OpenAI. Tuttavia, l'uso di uno schema JSON più semplice per le definizioni dello schema JSON comporta una generazione JSON di qualità superiore. Per promuovere una generazione di qualità superiore, le API del modello base supportano solo un sottoinsieme di specifiche dello schema JSON.
Le seguenti chiavi di definizione delle chiamate di funzione non sono supportate:
pattern
.anyOf
, oneOf
, allOf
, prefixItems
o $ref
.[type, “null”]
in cui un tipo nell'elenco è un tipo JSON valido e l'altro è "null"
L'inserimento di richieste e altre tecniche vengono usate per migliorare la qualità degli output strutturati. In questo modo si influisce sul numero di token di input e output utilizzati dal modello, con conseguenti implicazioni per la fatturazione.
64
.maxProperties
, minProperties
e maxLength
.Eventi
Ottieni gratuitamente la certificazione in Microsoft Fabric.
19 nov, 23 - 10 dic, 23
Per un periodo di tempo limitato, il team della community di Microsoft Fabric offre buoni per esami DP-600 gratuiti.
Prepara ora