Gjenerimi i tekstit

Gemini API mund të gjenerojë dalje teksti kur jepet tekst, imazhe, video dhe audio si hyrje.

Ky udhëzues ju tregon se si të gjeneroni tekst duke përdorur metodat generateContent dhe streamGenerateContent . Për të mësuar rreth punës me vizionin dhe aftësitë audio të Gemini, referojuni udhëzuesve Vision dhe Audio .

Gjeneroni tekst nga futja vetëm me tekst

Mënyra më e thjeshtë për të gjeneruar tekst duke përdorur Gemini API është t'i siguroni modelit një hyrje të vetme vetëm teksti, siç tregohet në këtë shembull:

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[{"text": "Write a story about a magic backpack."}]
        }]
       }' 2> /dev/null

Në këtë rast, kërkesa ("Shpjego se si funksionon AI") nuk përfshin asnjë shembull dalës, udhëzim sistemi ose informacion formatimi. Është një qasje me goditje zero . Për disa raste përdorimi, një kërkesë me një shkrepje ose me disa shkrepje mund të prodhojë rezultate që përputhet më shumë me pritjet e përdoruesit. Në disa raste, mund të dëshironi të jepni gjithashtu udhëzime të sistemit për të ndihmuar modelin të kuptojë detyrën ose të ndjekë udhëzime specifike.

Gjeneroni tekst nga futja e tekstit dhe imazhit

Gemini API mbështet hyrjet multimodale që kombinojnë tekstin me skedarët media. Shembulli i mëposhtëm tregon se si të gjeneroni tekst nga futja e tekstit dhe imazhit:

# Use a temporary file to hold the base64 encoded image data
TEMP_B64=$(mktemp)
trap 'rm -f "$TEMP_B64"' EXIT
base64 $B64FLAGS $IMG_PATH > "$TEMP_B64"

# Use a temporary file to hold the JSON payload
TEMP_JSON=$(mktemp)
trap 'rm -f "$TEMP_JSON"' EXIT

cat > "$TEMP_JSON" << EOF
{
  "contents": [{
    "parts":[
      {"text": "Tell me about this instrument"},
      {
        "inline_data": {
          "mime_type":"image/jpeg",
          "data": "$(cat "$TEMP_B64")"
        }
      }
    ]
  }]
}
EOF

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d "@$TEMP_JSON" 2> /dev/null

Ashtu si me nxitjen vetëm për tekst, nxitja multimodale mund të përfshijë qasje dhe përmirësime të ndryshme. Në varësi të rezultatit nga ky shembull, mund të dëshironi të shtoni hapa në prompt ose të jeni më specifik në udhëzimet tuaja. Për të mësuar më shumë, shihni Strategjitë e nxitjes së skedarëve .

Krijo një transmetim teksti

Si parazgjedhje, modeli kthen një përgjigje pasi të ketë përfunduar të gjithë procesin e krijimit të tekstit. Ju mund të arrini ndërveprime më të shpejta duke mos pritur për të gjithë rezultatin dhe në vend të kësaj përdorni transmetimin për të trajtuar rezultatet e pjesshme.

Shembulli i mëposhtëm tregon se si të zbatohet transmetimi duke përdorur metodën streamGenerateContent për të gjeneruar tekst nga një kërkesë e hyrjes vetëm me tekst.

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:streamGenerateContent?alt=sse&key=${GOOGLE_API_KEY}" \
        -H 'Content-Type: application/json' \
        --no-buffer \
        -d '{ "contents":[{"parts":[{"text": "Write a story about a magic backpack."}]}]}'

Ndërtoni një bisedë interaktive

Gemini SDK ju lejon të mbledhni raunde të shumta pyetjesh dhe përgjigjesh, duke i lejuar përdoruesit të hapin hap pas hapi drejt përgjigjeve ose të marrin ndihmë për problemet me shumë pjesë. Kjo veçori SDK ofron një ndërfaqe për të mbajtur gjurmët e historisë së bisedave, por prapa skenave përdor të njëjtën metodë generateContent për të krijuar përgjigjen.

Shembulli i mëposhtëm i kodit tregon një zbatim bazë të bisedës:

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [
        {"role":"user",
         "parts":[{
           "text": "Hello"}]},
        {"role": "model",
         "parts":[{
           "text": "Great to meet you. What would you like to know?"}]},
        {"role":"user",
         "parts":[{
           "text": "I have two dogs in my house. How many paws are in my house?"}]},
      ]
    }' 2> /dev/null | grep "text"

Aktivizo transmetimin e bisedës

Ju gjithashtu mund të përdorni transmetimin me chat, siç tregohet në shembullin e mëposhtëm:

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:streamGenerateContent?alt=sse&key=$GOOGLE_API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [
        {"role":"user",
         "parts":[{
           "text": "Hello"}]},
        {"role": "model",
         "parts":[{
           "text": "Great to meet you. What would you like to know?"}]},
        {"role":"user",
         "parts":[{
           "text": "I have two dogs in my house. How many paws are in my house?"}]},
      ]
    }' 2> /dev/null | grep "text"

Konfiguro gjenerimin e tekstit

Çdo kërkesë që i dërgoni modelit përfshin parametra që kontrollojnë se si modeli gjeneron përgjigje. Ju mund të përdorni GenerationConfig për të konfiguruar këto parametra. Nëse nuk i konfiguroni parametrat, modeli përdor opsionet e paracaktuara, të cilat mund të ndryshojnë sipas modelit.

Shembulli i mëposhtëm tregon se si të konfiguroni disa nga opsionet e disponueshme.

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
        "contents": [{
            "parts":[
                {"text": "Write a story about a magic backpack."}
            ]
        }],
        "safetySettings": [
            {
                "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
                "threshold": "BLOCK_ONLY_HIGH"
            }
        ],
        "generationConfig": {
            "stopSequences": [
                "Title"
            ],
            "temperature": 1.0,
            "maxOutputTokens": 800,
            "topP": 0.8,
            "topK": 10
        }
    }'  2> /dev/null | grep "text"

stopSequences specifikon grupin e sekuencave të karaktereve (deri në 5) që do të ndalojnë gjenerimin e daljes. Nëse specifikohet, API do të ndalojë në shfaqjen e parë të një stop_sequence . Sekuenca e ndalimit nuk do të përfshihet si pjesë e përgjigjes.

temperature kontrollon rastësinë e daljes. Përdorni vlera më të larta për përgjigje më kreative dhe vlera më të ulëta për përgjigje më deterministe. Vlerat mund të variojnë nga [0.0, 2.0].

maxOutputTokens cakton numrin maksimal të argumenteve për t'u përfshirë në një kandidat.

topP ndryshon mënyrën se si modeli zgjedh argumentet për dalje. Shenjat zgjidhen nga më e mundshme në më pak të mundshme derisa shuma e probabiliteteve të tyre të jetë e barabartë me vlerën topP . Vlera e paracaktuar topP është 0.95.

topK ndryshon mënyrën se si modeli zgjedh argumentet për dalje. Një topK prej 1 do të thotë se tokeni i zgjedhur është më i mundshmi nga të gjithë shenjat në fjalorin e modelit, ndërsa një topK prej 3 do të thotë që tokeni tjetër zgjidhet nga 3 më të mundshmit duke përdorur temperaturën. Shenjat filtrohen më tej në bazë të topP me shenjën përfundimtare të zgjedhur duke përdorur kampionimin e temperaturës.

Shtoni udhëzimet e sistemit

Udhëzimet e sistemit ju lejojnë të drejtoni sjelljen e një modeli bazuar në nevojat tuaja specifike dhe rastet e përdorimit.

Duke i dhënë udhëzimet e sistemit të modelit, ju i ofroni modelit kontekst shtesë për të kuptuar detyrën, për të gjeneruar përgjigje më të personalizuara dhe për t'iu përmbajtur udhëzimeve specifike mbi ndërveprimin e plotë të përdoruesit me modelin. Ju gjithashtu mund të specifikoni sjelljen në nivel produkti duke vendosur udhëzime të sistemit, të ndara nga kërkesat e ofruara nga përdoruesit fundorë.

Ju mund të vendosni udhëzimet e sistemit kur inicializoni modelin tuaj:

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{ "system_instruction": {
    "parts":
      { "text": "You are a cat. Your name is Neko."}},
    "contents": {
      "parts": {
        "text": "Hello there"}}}'

Për një shembull interaktiv nga fundi në fund të përdorimit të udhëzimeve të sistemit, shihni udhëzimet e sistemit Colab .

Çfarë është më pas

Tani që keni eksploruar bazat e API-së Gemini, mund të dëshironi të provoni:

  • Kuptimi i vizionit : Mësoni se si të përdorni të kuptuarit vendas të vizionit të Binjakëve për të përpunuar imazhe dhe video.
  • Kuptimi audio : Mësoni se si të përdorni të kuptuarit e zërit origjinal të Gemini për të përpunuar skedarët audio.
,

Gemini API mund të gjenerojë dalje teksti kur jepet tekst, imazhe, video dhe audio si hyrje.

Ky udhëzues ju tregon se si të gjeneroni tekst duke përdorur metodat generateContent dhe streamGenerateContent . Për të mësuar rreth punës me vizionin dhe aftësitë audio të Gemini, referojuni udhëzuesve Vision dhe Audio .

Gjeneroni tekst nga futja vetëm me tekst

Mënyra më e thjeshtë për të gjeneruar tekst duke përdorur Gemini API është t'i siguroni modelit një hyrje të vetme vetëm teksti, siç tregohet në këtë shembull:

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[{"text": "Write a story about a magic backpack."}]
        }]
       }' 2> /dev/null

Në këtë rast, kërkesa ("Shpjego se si funksionon AI") nuk përfshin asnjë shembull dalës, udhëzim sistemi ose informacion formatimi. Është një qasje me goditje zero . Për disa raste përdorimi, një kërkesë me një shkrepje ose me disa shkrepje mund të prodhojë rezultate që përputhet më shumë me pritjet e përdoruesit. Në disa raste, mund të dëshironi të jepni gjithashtu udhëzime të sistemit për të ndihmuar modelin të kuptojë detyrën ose të ndjekë udhëzime specifike.

Gjeneroni tekst nga futja e tekstit dhe imazhit

Gemini API mbështet hyrjet multimodale që kombinojnë tekstin me skedarët media. Shembulli i mëposhtëm tregon se si të gjeneroni tekst nga futja e tekstit dhe imazhit:

# Use a temporary file to hold the base64 encoded image data
TEMP_B64=$(mktemp)
trap 'rm -f "$TEMP_B64"' EXIT
base64 $B64FLAGS $IMG_PATH > "$TEMP_B64"

# Use a temporary file to hold the JSON payload
TEMP_JSON=$(mktemp)
trap 'rm -f "$TEMP_JSON"' EXIT

cat > "$TEMP_JSON" << EOF
{
  "contents": [{
    "parts":[
      {"text": "Tell me about this instrument"},
      {
        "inline_data": {
          "mime_type":"image/jpeg",
          "data": "$(cat "$TEMP_B64")"
        }
      }
    ]
  }]
}
EOF

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d "@$TEMP_JSON" 2> /dev/null

Ashtu si me nxitjen vetëm për tekst, nxitja multimodale mund të përfshijë qasje dhe përmirësime të ndryshme. Në varësi të rezultatit nga ky shembull, mund të dëshironi të shtoni hapa në prompt ose të jeni më specifik në udhëzimet tuaja. Për të mësuar më shumë, shihni Strategjitë e nxitjes së skedarëve .

Krijoni një transmetim teksti

Si parazgjedhje, modeli kthen një përgjigje pasi të ketë përfunduar të gjithë procesin e krijimit të tekstit. Ju mund të arrini ndërveprime më të shpejta duke mos pritur për të gjithë rezultatin dhe në vend të kësaj përdorni transmetimin për të trajtuar rezultatet e pjesshme.

Shembulli i mëposhtëm tregon se si të zbatohet transmetimi duke përdorur metodën streamGenerateContent për të gjeneruar tekst nga një kërkesë e hyrjes vetëm me tekst.

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:streamGenerateContent?alt=sse&key=${GOOGLE_API_KEY}" \
        -H 'Content-Type: application/json' \
        --no-buffer \
        -d '{ "contents":[{"parts":[{"text": "Write a story about a magic backpack."}]}]}'

Ndërtoni një bisedë interaktive

Gemini SDK ju lejon të mbledhni raunde të shumta pyetjesh dhe përgjigjesh, duke i lejuar përdoruesit të hapin hap pas hapi drejt përgjigjeve ose të marrin ndihmë për problemet me shumë pjesë. Kjo veçori SDK ofron një ndërfaqe për të mbajtur gjurmët e historisë së bisedave, por prapa skenave përdor të njëjtën metodë generateContent për të krijuar përgjigjen.

Shembulli i mëposhtëm i kodit tregon një zbatim bazë të bisedës:

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [
        {"role":"user",
         "parts":[{
           "text": "Hello"}]},
        {"role": "model",
         "parts":[{
           "text": "Great to meet you. What would you like to know?"}]},
        {"role":"user",
         "parts":[{
           "text": "I have two dogs in my house. How many paws are in my house?"}]},
      ]
    }' 2> /dev/null | grep "text"

Aktivizo transmetimin e bisedës

Ju gjithashtu mund të përdorni transmetimin me chat, siç tregohet në shembullin e mëposhtëm:

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:streamGenerateContent?alt=sse&key=$GOOGLE_API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [
        {"role":"user",
         "parts":[{
           "text": "Hello"}]},
        {"role": "model",
         "parts":[{
           "text": "Great to meet you. What would you like to know?"}]},
        {"role":"user",
         "parts":[{
           "text": "I have two dogs in my house. How many paws are in my house?"}]},
      ]
    }' 2> /dev/null | grep "text"

Konfiguro gjenerimin e tekstit

Çdo kërkesë që i dërgoni modelit përfshin parametra që kontrollojnë se si modeli gjeneron përgjigje. Ju mund të përdorni GenerationConfig për të konfiguruar këto parametra. Nëse nuk i konfiguroni parametrat, modeli përdor opsionet e paracaktuara, të cilat mund të ndryshojnë sipas modelit.

Shembulli i mëposhtëm tregon se si të konfiguroni disa nga opsionet e disponueshme.

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
        "contents": [{
            "parts":[
                {"text": "Write a story about a magic backpack."}
            ]
        }],
        "safetySettings": [
            {
                "category": "HARM_CATEGORY_DANGEROUS_CONTENT",
                "threshold": "BLOCK_ONLY_HIGH"
            }
        ],
        "generationConfig": {
            "stopSequences": [
                "Title"
            ],
            "temperature": 1.0,
            "maxOutputTokens": 800,
            "topP": 0.8,
            "topK": 10
        }
    }'  2> /dev/null | grep "text"

stopSequences specifikon grupin e sekuencave të karaktereve (deri në 5) që do të ndalojnë gjenerimin e daljes. Nëse specifikohet, API do të ndalojë në shfaqjen e parë të një stop_sequence . Sekuenca e ndalimit nuk do të përfshihet si pjesë e përgjigjes.

temperature kontrollon rastësinë e daljes. Përdorni vlera më të larta për përgjigje më kreative dhe vlera më të ulëta për përgjigje më deterministe. Vlerat mund të variojnë nga [0.0, 2.0].

maxOutputTokens cakton numrin maksimal të argumenteve për t'u përfshirë në një kandidat.

topP ndryshon mënyrën se si modeli zgjedh argumentet për dalje. Shenjat zgjidhen nga më e mundshme në më pak të mundshme derisa shuma e probabiliteteve të tyre të jetë e barabartë me vlerën topP . Vlera e paracaktuar topP është 0.95.

topK ndryshon mënyrën se si modeli zgjedh argumentet për dalje. Një topK prej 1 do të thotë se tokeni i zgjedhur është më i mundshmi nga të gjithë shenjat në fjalorin e modelit, ndërsa një topK prej 3 do të thotë që tokeni tjetër zgjidhet nga 3 më të mundshmit duke përdorur temperaturën. Shenjat filtrohen më tej në bazë të topP me shenjën përfundimtare të zgjedhur duke përdorur kampionimin e temperaturës.

Shtoni udhëzimet e sistemit

Udhëzimet e sistemit ju lejojnë të drejtoni sjelljen e një modeli bazuar në nevojat tuaja specifike dhe rastet e përdorimit.

Duke i dhënë udhëzimet e sistemit të modelit, ju i ofroni modelit kontekst shtesë për të kuptuar detyrën, për të gjeneruar përgjigje më të personalizuara dhe për t'iu përmbajtur udhëzimeve specifike mbi ndërveprimin e plotë të përdoruesit me modelin. Ju gjithashtu mund të specifikoni sjelljen në nivel produkti duke vendosur udhëzime të sistemit, të ndara nga kërkesat e ofruara nga përdoruesit fundorë.

Ju mund të vendosni udhëzimet e sistemit kur inicializoni modelin tuaj:

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{ "system_instruction": {
    "parts":
      { "text": "You are a cat. Your name is Neko."}},
    "contents": {
      "parts": {
        "text": "Hello there"}}}'

Për një shembull interaktiv nga fundi në fund të përdorimit të udhëzimeve të sistemit, shihni udhëzimet e sistemit Colab .

Çfarë është më pas

Tani që keni eksploruar bazat e API-së Gemini, mund të dëshironi të provoni:

  • Kuptimi i vizionit : Mësoni se si të përdorni të kuptuarit vendas të vizionit të Binjakëve për të përpunuar imazhe dhe video.
  • Kuptimi audio : Mësoni se si të përdorni të kuptuarit e zërit origjinal të Gemini për të përpunuar skedarët audio.