Gjeneroni dalje të strukturuar me Gemini API


Binjakët gjenerojnë tekst të pastrukturuar si parazgjedhje, por disa aplikacione kërkojnë tekst të strukturuar. Për këto raste përdorimi, mund ta kufizoni Gemini të përgjigjet me JSON, një format i strukturuar i të dhënave i përshtatshëm për përpunim të automatizuar. Ju gjithashtu mund ta kufizoni modelin që të përgjigjet me një nga opsionet e specifikuara në një numër.

Këtu janë disa raste përdorimi që mund të kërkojnë dalje të strukturuar nga modeli:

  • Ndërtoni një bazë të dhënash të kompanive duke nxjerrë informacionin e kompanisë nga artikujt e gazetave.
  • Tërhiqni informacionin e standardizuar nga CV-të.
  • Nxjerr përbërësit nga recetat dhe shfaq një lidhje në një faqe interneti ushqimore për secilin përbërës.

Në kërkesën tuaj, mund t'i kërkoni Binjakëve që të prodhojë dalje të formatuar JSON, por kini parasysh se modeli nuk është i garantuar të prodhojë JSON dhe asgjë tjetër përveç JSON. Për një përgjigje më deterministe, ju mund të kaloni një skemë specifike JSON në një fushë responseSchema në mënyrë që Binjakët të përgjigjen gjithmonë me një strukturë të pritshme. Për të mësuar më shumë rreth punës me skemat, shihni Më shumë rreth skemave JSON .

Ky udhëzues ju tregon se si të gjeneroni JSON duke përdorur metodën generateContent përmes SDK-së së zgjedhjes suaj ose duke përdorur drejtpërdrejt API REST. Shembujt tregojnë hyrjen vetëm me tekst, megjithëse Gemini mund të prodhojë gjithashtu përgjigje JSON ndaj kërkesave multimodale që përfshijnë imazhe , video dhe audio .

Më shumë rreth skemave JSON

Kur konfiguroni modelin që të kthejë një përgjigje JSON, mund të përdorni një objekt Schema për të përcaktuar formën e të dhënave JSON. Schema përfaqëson një nënbashkësi të zgjedhur të objektit OpenAPI 3.0 Schema .

Këtu është një përfaqësim pseudo-JSON i të gjitha fushave Schema :

{
  "type": enum (Type),
  "format": string,
  "description": string,
  "nullable": boolean,
  "enum": [
    string
  ],
  "maxItems": string,
  "minItems": string,
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "propertyOrdering": [
    string
  ],
  "items": {
    object (Schema)
  }
}

Type i skemës duhet të jetë një nga llojet e të dhënave OpenAPI. Vetëm një nëngrup fushash është e vlefshme për çdo Type . Lista e mëposhtme harton çdo Type në fusha të vlefshme për atë lloj:

  • string -> enum, format
  • integer -> format
  • number -> format
  • bool
  • array -> minItems, maxItems, artikuj
  • object -> vetitë, të kërkuara, pronëRendimi, i pavlefshëm

Këtu janë disa skema shembuj që tregojnë kombinime të vlefshme të tipit dhe fushës:

{ "type": "string", "enum": ["a", "b", "c"] }

{ "type": "string", "format": "date-time" }

{ "type": "integer", "format": "int64" }

{ "type": "number", "format": "double" }

{ "type": "bool" }

{ "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": ... } }

{ "type": "object",
  "properties": {
    "a": { "type": ... },
    "b": { "type": ... },
    "c": { "type": ... }
  },
  "nullable": true,
  "required": ["c"],
  "propertyOrdering": ["c", "b", "a"]
}

Për dokumentacionin e plotë të fushave të Skemës pasi ato përdoren në API-në e Gemini, shihni referencën e skemës .

Renditja e pronës

Kur jeni duke punuar me skemat JSON në Gemini API, renditja e vetive është e rëndësishme. Si parazgjedhje, API i rendit pronat në mënyrë alfabetike dhe nuk ruan rendin në të cilin përcaktohen vetitë (edhe pse SDK-të e AI të Genit të Google mund ta ruajnë këtë renditje). Nëse po i jepni shembuj modelit me një skemë të konfiguruar dhe renditja e vetive të shembujve nuk është në përputhje me renditjen e vetive të skemës, rezultati mund të jetë i ngathët ose i papritur.

Për të siguruar një renditje të qëndrueshme dhe të parashikueshme të pronave, mund të përdorni fushën opsionale propertyOrdering[] .

"propertyOrdering": ["recipe_name", "ingredients"]

propertyOrdering[] – jo një fushë standarde në specifikimin OpenAPI – është një grup vargjesh që përdoren për të përcaktuar rendin e vetive në përgjigje. Duke specifikuar rendin e vetive dhe më pas duke ofruar shembuj me vetitë në të njëjtin rend, mund të përmirësoni potencialisht cilësinë e rezultateve.