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.