Detyra e MediaPipe Text Embedder ju lejon të krijoni një përfaqësim numerik të të dhënave të tekstit për të kapur kuptimin e tyre semantik. Këto udhëzime ju tregojnë se si të përdorni Text Embedder për aplikacionet e uebit dhe JavaScript.
Për më shumë informacion rreth aftësive, modeleve dhe opsioneve të konfigurimit të kësaj detyre, shihni Përmbledhjen .
Shembull kodi
Kodi shembull për Text Embedder ofron një implementim të plotë të kësaj detyre në JavaScript për referencën tuaj. Ky kod ju ndihmon të testoni këtë detyrë dhe të filloni ndërtimin e aplikacionit tuaj të ngulitur teksti. Mund ta shikoni, ekzekutoni dhe modifikoni shembullin e Text Embedder duke përdorur vetëm shfletuesin tuaj të internetit.
Konfigurimi
Ky seksion përshkruan hapat kryesorë për konfigurimin e mjedisit tuaj të zhvillimit dhe projekteve të kodit posaçërisht për të përdorur Text Embedder. Për informacion të përgjithshëm mbi konfigurimin e mjedisit tuaj të zhvillimit për përdorimin e detyrave MediaPipe, duke përfshirë kërkesat e versionit të platformës, shihni udhëzuesin e konfigurimit për Web .
Paketat JavaScript
Kodi i Embedder-it të Tekstit është i disponueshëm përmes paketës @mediapipe/tasks-text . Mund t'i gjeni dhe shkarkoni këto biblioteka nga lidhjet e dhëna në udhëzuesin e Konfigurimit të platformës.
Mund të instaloni paketat e kërkuara me kodin e mëposhtëm për konfigurimin lokal duke përdorur komandën e mëposhtme:
npm install @mediapipe/tasks-text
Nëse doni të vendosni në një server, mund të përdorni një shërbim të rrjetit të shpërndarjes së përmbajtjes (CDN), siç është jsDelivr , për të shtuar kod direkt në faqen tuaj HTML, si më poshtë:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
crossorigin="anonymous"></script>
</head>
Model
Detyra MediaPipe Text Embedder kërkon një model të trajnuar që është i pajtueshëm me këtë detyrë. Për më shumë informacion mbi modelet e trajnuara të disponueshme për Text Embedder, shihni seksionin Modelet e përmbledhjes së detyrës.
Zgjidhni dhe shkarkoni një model dhe më pas ruajeni atë brenda direktorisë së projektit tuaj:
<dev-project-root>/app/shared/models
Krijo detyrën
Përdorni një nga funksionet createFrom...() të Text Embedder për të përgatitur detyrën për ekzekutimin e inferencave. Mund të përdorni funksionin createFromModelPath() me një shteg relativ ose absolut për në skedarin e modelit të trajnuar. Shembulli i kodit më poshtë demonstron përdorimin e funksionit createFromOptions() . Për më shumë informacion mbi opsionet e konfigurimit të disponueshme, shihni Opsionet e konfigurimit .
Kodi i mëposhtëm tregon se si të ndërtohet dhe konfigurohet kjo detyrë:
async function createEmbedder() {
const textFiles = await FilesetResolver.forTextTasks("https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
textEmbedder = await TextEmbedder.createFromOptions(
textFiles,
{
baseOptions: {
modelAssetPath: `https://storage.googleapis.com/mediapipe-tasks/text_embedder/universal_sentence_encoder.tflite`
},
quantize: true
}
);
}
createEmbedder();
Opsionet e konfigurimit
Kjo detyrë ka opsionet e mëposhtme të konfigurimit për aplikacionet Web dhe JavaScript:
| Emri i opsionit | Përshkrimi | Diapazoni i Vlerave | Vlera e parazgjedhur |
|---|---|---|---|
l2Normalize | Nëse duhet të normalizohet vektori i karakteristikave të kthyera me normën L2. Përdoreni këtë opsion vetëm nëse modeli nuk përmban tashmë një L2_NORMALIZATION TFLite Op. Në shumicën e rasteve, ky është tashmë rasti dhe normalizimi L2 arrihet kështu përmes inferencës TFLite pa pasur nevojë për këtë opsion. | Boolean | False |
quantize | Nëse ngulitja e kthyer duhet të kuantizohet në bajt nëpërmjet kuantizimit skalar. Ngulitja supozohet në mënyrë implicite të jetë normë njësie dhe për këtë arsye çdo dimension është i garantuar të ketë një vlerë në [-1.0, 1.0]. Përdorni opsionin l2Normalize nëse nuk është ky rasti. | Boolean | False |
Përgatitni të dhënat
Embedder i Tekstit punon me të dhëna teksti ( string ). Detyra trajton parapërpunimin e të dhënave hyrëse, duke përfshirë tokenizimin dhe parapërpunimin e tenzorit. I gjithë parapërpunimi trajtohet brenda funksionit të embed . Nuk ka nevojë për parapërpunim shtesë të tekstit hyrës paraprakisht.
const inputText = "The input text to be embedded.";
Ekzekuto detyrën
Embedder-i i Tekstit përdor funksionin embed për të shkaktuar përfundime. Për ngulitjen e tekstit, kjo do të thotë kthimi i vektorëve të ngulitjes për tekstin e futur.
Kodi i mëposhtëm demonstron se si ekzekutohet përpunimi me modelin e detyrës.
// Wait to run the function until inner text is set
const embeddingResult = textEmbedder.embed(
inputText
);
Trajtoni dhe shfaqni rezultatet
Text Embedder jep një TextEmbedderResult që përmban një listë të ngulitjeve (ose me pikë lundruese ose të kuantizuara skalare) për tekstin e futur.
Më poshtë tregohet një shembull i të dhënave të daljes nga kjo detyrë:
TextEmbedderResult:
Embedding #0 (sole embedding head):
float_embedding: {0.2345f, 0.1234f, ..., 0.6789f}
head_index: 0
Mund të krahasoni ngjashmërinë semantike të dy ngulitjeve duke përdorur funksionin TextEmbedder.cosineSimilarity . Shihni kodin e mëposhtëm për një shembull.
// Compute cosine similarity.
const similarity = TextEmbedder.cosineSimilarity(
embeddingResult.embeddings[0],
otherEmbeddingResult.embeddings[0]);
Kodi shembullor i Text Embedder tregon se si të shfaqen rezultatet e embedderê të kthyera nga detyra, shihni shembullin për detaje.