scrimba
Mistral AI
RAG - Uploading data to the vector db
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

RAG - Uploading data to the vector db
AboutCommentsNotes
RAG - Uploading data to the vector db
Expand for more info
index.js
run
preview
console
import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";
import MistralClient from "@mistralai/mistralai";
import { createClient } from "@supabase/supabase-js";

const client = new MistralClient(process.env.MISTRAL_API_KEY);
const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_API_KEY);

async function splitDocument(path) {
const response = await fetch(path);
const text = await response.text();
const splitter = new RecursiveCharacterTextSplitter({
chunkSize: 250,
chunkOverlap: 40
});
const output = await splitter.createDocuments([text]);
const textArr = output.map(chunk => chunk.pageContent);
return textArr;
}

const handbookChunks = await splitDocument('handbook.txt');

async function createEmbeddings(chunks) {
const embeddings = await client.embeddings({
model: 'mistral-embed',
input: chunks
});
const data = chunks.map((chunk, i) => {
return {
content: chunk,
embedding: embeddings.data[i].embedding
}
});
return data;
}

const data = await createEmbeddings(handbookChunks);

Console
"res"
,
{error:
null
, data:
null
, count:
null
, status:
201
, statusText:
""
}
,
/index.html
-2:42