Gemini API mbështet disa modele të përfshirjes që gjenerojnë ngulitje për fjalë, fraza, kode dhe fjali. Përfshirjet që rezultojnë mund të përdoren më pas për detyra të tilla si kërkimi semantik, klasifikimi i tekstit dhe grupimi, ndër shumë të tjera.
Çfarë janë embeddings?
Embeddings janë paraqitje numerike të tekstit (ose formateve të tjera mediatike) që kapin marrëdhëniet midis hyrjeve. Përfshirja e tekstit funksionon duke e kthyer tekstin në vargje numrash me pikë lundruese, të quajtur vektorë . Këta vektorë janë krijuar për të kapur kuptimin e tekstit. Gjatësia e vargut të ngulitur quhet dimensionaliteti i vektorit. Një pasazh teksti mund të përfaqësohet nga një vektor që përmban qindra dimensione.
Embeddings kapin kuptimin dhe kontekstin semantik, gjë që rezulton në tekst me kuptime të ngjashme që kanë ngulitje "më të afërta". Për shembull, fjalia "Unë e çova qenin tim te veterineri" dhe "Unë e çova macen time te veterineri" do të kishte ngulitje që janë afër njëra-tjetrës në hapësirën vektoriale.
Ju mund të përdorni embeddings për të krahasuar tekste të ndryshme dhe për të kuptuar se si ato lidhen. Për shembull, nëse futjet e tekstit "mace" dhe "qen" janë afër njëra-tjetrës, mund të konkludoni se këto fjalë janë të ngjashme në kuptim, kontekst ose të dyja. Kjo mundëson një sërë rastesh të zakonshme të përdorimit të AI .
Para se të filloni
Përpara se të telefononi Gemini API, sigurohuni që keni të instaluar SDK-në tuaj të zgjedhur dhe një çelës Gemini API të konfiguruar dhe gati për t'u përdorur.
Gjeneroni ngulitje
Përdorni metodën embedContent
për të gjeneruar ngulitje teksti:
from google import genai
client = genai.Client(api_key="GEMINI_API_KEY")
result = client.models.embed_content(
model="gemini-embedding-exp-03-07",
contents="What is the meaning of life?")
print(result.embeddings)
import { GoogleGenAI } from "@google/genai";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const response = await ai.models.embedContent({
model: 'gemini-embedding-exp-03-07',
contents: 'What is the meaning of life?',
});
console.log(response.embeddings);
}
main();
ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GEMINI_API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
em := client.EmbeddingModel("gemini-embedding-exp-03-07")
res, err := em.EmbedContent(ctx, genai.Text("What is the meaning of life?"))
if err != nil {
panic(err)
}
fmt.Println(res.Embedding.Values)
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-exp-03-07:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-exp-03-07",
"content": {
"parts":[{
"text": "What is the meaning of life?"}]}
}'
Ju gjithashtu mund të gjeneroni ngulitje për disa pjesë në të njëjtën kohë duke i kaluar ato si një listë vargjesh.
Llojet e detyrave
Kur ndërtoni sisteme të gjenerimit të shtuar (RAG), një dizajn i zakonshëm është përdorimi i ngulitjes së tekstit për të kryer një kërkim të ngjashmërisë. Në disa raste kjo mund të çojë në degradim të cilësisë, sepse pyetjet dhe përgjigjet e tyre nuk janë të ngjashme semantikisht. Për shembull, një pyetje si "Pse qielli është blu?" dhe përgjigja e tij "Shpërndarja e dritës së diellit shkakton ngjyrën blu", kanë kuptime të ndryshme si deklarata, që do të thotë se një sistem RAG nuk do ta njohë automatikisht lidhjen e tyre.
Llojet e detyrave ju mundësojnë të gjeneroni ngulitje të optimizuara për detyra specifike, duke ju kursyer kohë dhe kosto dhe duke përmirësuar performancën.
from google import genai
from google.genai import types
client = genai.Client(api_key="GEMINI_API_KEY")
result = client.models.embed_content(
model="gemini-embedding-exp-03-07",
contents="What is the meaning of life?",
config=types.EmbedContentConfig(task_type="SEMANTIC_SIMILARITY")
)
print(result.embeddings)
import { GoogleGenAI } from "@google/genai";
async function main() {
const ai = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const response = await ai.models.embedContent({
model: 'gemini-embedding-exp-03-07',
contents: 'What is the meaning of life?',
config: {
taskType: "SEMANTIC_SIMILARITY",
}
});
console.log(response.embeddings);
}
main();
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-exp-03-07:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/gemini-embedding-exp-03-07",
"content": {
"parts":[{
"text": "What is the meaning of life?"}]},
"taskType": "SEMANTIC_SIMILARITY"
}'
Llojet e detyrave të mbështetura
Lloji i detyrës | Përshkrimi |
---|---|
SEMANTIC_SIMILARITY | Përdoret për të gjeneruar ngulitje që janë optimizuar për të vlerësuar ngjashmërinë e tekstit. |
CLASSIFICATION | Përdoret për të gjeneruar ngulitje që janë optimizuar për të klasifikuar tekstet sipas etiketave të paracaktuara. |
CLUSTERING | Përdoret për të gjeneruar ngulitje që janë optimizuar për të grumbulluar tekste bazuar në ngjashmëritë e tyre. |
RETRIEVAL_DOCUMENT , RETRIEVAL_QUERY , QUESTION_ANSWERING dhe FACT_VERIFICATION | Përdoret për të gjeneruar ngulitje që janë optimizuar për kërkimin e dokumenteve ose marrjen e informacionit. |
CODE_RETRIEVAL_QUERY | Përdoret për të tërhequr një bllok kodi bazuar në një pyetje të gjuhës natyrore, të tilla si renditja e një grupi ose kthimi i një liste të lidhur. Përfshirjet e blloqeve të kodit llogariten duke përdorur RETRIEVAL_DOCUMENT . |
Rastet e përdorimit
Përfshirjet e tekstit përdoren në një sërë rastesh të zakonshme të përdorimit të AI, të tilla si:
Marrja e informacionit: Ju mund të përdorni ngulitje për të marrë tekst të ngjashëm semantikisht të dhënë një pjesë të tekstit hyrës.
Grumbullimi: Krahasimi i grupeve të përfshirjeve mund të ndihmojë në identifikimin e tendencave të fshehura.
Baza e të dhënave vektoriale: Ndërsa merrni raste të ndryshme të përdorimit të ngulitjes në prodhim, është e zakonshme të ruash futjet në një bazë të dhënash vektoriale.
Klasifikimi: Ju mund të trajnoni një model duke përdorur ngulitje për të klasifikuar dokumentet në kategori.
Modelet e ngulitjes
Gemini API ofron tre modele që gjenerojnë ngulitje teksti:
Çfarë është më pas
Shikoni fletoren e nisjes së shpejtë të futjeve .