diff --git a/endee-rag-ai-project/.gitignore b/endee-rag-ai-project/.gitignore new file mode 100644 index 000000000..7f53211b4 --- /dev/null +++ b/endee-rag-ai-project/.gitignore @@ -0,0 +1,20 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class + +# Environment +.env +.venv +env/ +venv/ +ENV/ + +# Project specifics +chroma_data/ +*.log +*.pdf +Vector_store.json + +# IDE +.vscode/ diff --git a/endee-rag-ai-project/README.md b/endee-rag-ai-project/README.md new file mode 100644 index 000000000..1db10127a --- /dev/null +++ b/endee-rag-ai-project/README.md @@ -0,0 +1,151 @@ +# 🤖 AI Workspace (RAG & Recommendations) + +An AI-powered document assistant and dynamic e-commerce recommendation engine. +This project demonstrates advanced **Retrieval-Augmented Generation (RAG)**, **Semantic Search**, and **Agentic Routing Workflows** paired with a beautiful glassmorphism User Interface. + +*Note: This project initially targeted the Endee vector database, but was adapted to use ChromaDB to support native execution on Windows without Docker environments while maintaining identical semantic search capabilities.* + +--- + +## 🚀 Features + +- 📄 **Upload PDF Documents**: Ingest documents on the fly into the vector knowledge base. +- 🔍 **Semantic Search**: Powered by `sentence-transformers`. +- 🧠 **Agentic AI Workflow**: A smart Gemini-powered agent that dynamically routes user intents to either RAG retrieval, Recommendation generation, or general conversation. +- 🛒 **Recommendation Engine**: Provides contextual item recommendations based on vector similarity. +- ⚡ **FastAPI Backend**: High performance API serving both the LLM logic and the static asset UI. +- 💬 **Interactive Premium UI**: A beautiful Vanilla HTML/CSS/JS frontend featuring dark-mode, glassmorphism, and markdown support. + +--- + +## 🛠 Tech Stack + +- **Python** (Backend Core) +- **FastAPI** & **Uvicorn** (Web framework and application server) +- **Google GenAI** (Gemini 2.5 Flash for LLM reasoning and routing) +- **ChromaDB** (Persistent native vector database) +- **Sentence Transformers** (`all-MiniLM-L6-v2` for embeddings) +- **PyPDF2** (Document parsing) +- **HTML5, CSS3, JS** (Frontend Interface) + +--- + +## 🏗 System Architecture + +```text +User Input (Chat / File Upload) + │ + UI Frontend (Vanilla JS + CSS) + │ + FastAPI Backend + ├──> PDF -> PyPDF2 -> SentenceTransformer -> ChromaDB (Knowledge Base) + │ + Agentic Router (Gemini) + ├───> Intent: RAG -> Query ChromaDB (Knowledge DB) -> Gemini -> User + ├───> Intent: RECOMMEND -> Query ChromaDB (Products DB) -> Gemini -> User + └───> Intent: CHAT -> Gemini -> User +``` + +--- + +## 📸 Project Screenshots & Demo + +### AI Workspace Complete UI +![UI Application](images/ai-workspace-ui.png) + +### RAG & Recommendations In-Action +![Demo Recording](images/demo-final.webp) + +### RAG Document Upload feature +![RAG File Upload](images/rag-success.png) + +--- + +## 📂 Project Structure + +```text +endee-rag-ai-project +│ +├── api/ +│ ├── main.py # FastAPI application and endpoint routing +│ ├── agent.py # Gemini Agentic routing and response generation +│ └── db_client.py # ChromaDB integration and embedding logic +│ +├── ui/ +│ ├── index.html # Main application interface +│ ├── style.css # Premium Glassmorphism styling +│ └── app.js # Client-side API interactions and chat logic +│ +├── chroma_data/ # Persistent vector database storage +├── requirements.txt # Python dependencies +└── README.md # Project documentation +``` + +--- + +## ⚙ Installation + +### 1. Clone the repository +```bash +git clone https://github.com/ajaykumarhn/endee.git +cd endee/endee-rag-ai-project +``` + +### 2. Install dependencies +Ensure you have Python 3.9+ installed. +```bash +pip install fastapi uvicorn sentence-transformers chromadb google-genai pypdf python-multipart +``` + +### 3. Configure API Keys +You need a Google Gemini API key to run the generative AI routing. Get one from [Google AI Studio](https://aistudio.google.com/). + +Set the environment variable in your terminal: + +**Windows (PowerShell):** +```powershell +$env:GEMINI_API_KEY="your_api_key_here" +``` + +**Linux/macOS:** +```bash +export GEMINI_API_KEY="your_api_key_here" +``` + +--- + +## ▶ Running the Project + +Start the unified API server and UI: + +```bash +python -m uvicorn api.main:app --host 0.0.0.0 --port 8000 +``` + +Open your browser and navigate to: +**http://localhost:8000** + +--- + +## 💡 Usage Guide + +Once the application is running in your browser: + +1. **Test the Recommendation Engine**: + - Click the **"Seed Catalog"** button in the sidebar to populate the database with sample products. + - Ask the AI: *"I need a new monitor for coding."* The agent will query the database and generate a curated response. + +2. **Test RAG (Document Q&A)**: + - Use the **"Upload a PDF to context"** section to upload a PDF file. (You can download and use the provided [sample_doc.pdf](sample_doc.pdf) for testing). + - Wait for the "Success" confirmation. + - Ask the AI a question about the contents of the document you uploaded, for example: *"What is the secret access code to the server room?"* + +3. **General Chat**: + - Ask the AI any general question like *"What is retrieval augmented generation?"* or *"Hello there!"* + +--- + +## 👨‍💻 Author + +Ajay Kumar +GitHub: [https://github.com/ajaykumarhn](https://github.com/ajaykumarhn) diff --git a/endee-rag-ai-project/__pycache__/app.cpython-313.pyc b/endee-rag-ai-project/__pycache__/app.cpython-313.pyc new file mode 100644 index 000000000..83068885b Binary files /dev/null and b/endee-rag-ai-project/__pycache__/app.cpython-313.pyc differ diff --git a/endee-rag-ai-project/__pycache__/embeddings.cpython-313.pyc b/endee-rag-ai-project/__pycache__/embeddings.cpython-313.pyc new file mode 100644 index 000000000..92ac00adf Binary files /dev/null and b/endee-rag-ai-project/__pycache__/embeddings.cpython-313.pyc differ diff --git a/endee-rag-ai-project/__pycache__/endee_db.cpython-313.pyc b/endee-rag-ai-project/__pycache__/endee_db.cpython-313.pyc new file mode 100644 index 000000000..27c791641 Binary files /dev/null and b/endee-rag-ai-project/__pycache__/endee_db.cpython-313.pyc differ diff --git a/endee-rag-ai-project/__pycache__/pdf_loader.cpython-313.pyc b/endee-rag-ai-project/__pycache__/pdf_loader.cpython-313.pyc new file mode 100644 index 000000000..1a841634a Binary files /dev/null and b/endee-rag-ai-project/__pycache__/pdf_loader.cpython-313.pyc differ diff --git a/endee-rag-ai-project/__pycache__/rag_pipeline.cpython-313.pyc b/endee-rag-ai-project/__pycache__/rag_pipeline.cpython-313.pyc new file mode 100644 index 000000000..ddcf05c53 Binary files /dev/null and b/endee-rag-ai-project/__pycache__/rag_pipeline.cpython-313.pyc differ diff --git a/endee-rag-ai-project/__pycache__/search.cpython-313.pyc b/endee-rag-ai-project/__pycache__/search.cpython-313.pyc new file mode 100644 index 000000000..9e057096d Binary files /dev/null and b/endee-rag-ai-project/__pycache__/search.cpython-313.pyc differ diff --git a/endee-rag-ai-project/api/__init__.py b/endee-rag-ai-project/api/__init__.py new file mode 100644 index 000000000..d7118f11d --- /dev/null +++ b/endee-rag-ai-project/api/__init__.py @@ -0,0 +1 @@ +# Exposes api as a proper python module diff --git a/endee-rag-ai-project/api/agent.py b/endee-rag-ai-project/api/agent.py new file mode 100644 index 000000000..2729ea6f4 --- /dev/null +++ b/endee-rag-ai-project/api/agent.py @@ -0,0 +1,87 @@ +import os +from google import genai +from .db_client import query_collection + +# Configure API Key (we'll set this via env var or dynamically) +client = genai.Client() + +def route_and_execute(user_message: str) -> str: + """ + A simple ReAct/Router agent. + Decides whether the user is asking for: + 1. A search/question about knowledge base (RAG) + 2. A recommendation + 3. General chat + """ + + routing_prompt = f""" + You are an intelligent router. Analyze the user's message and determine the intent. + Respond ONLY with one of the following exact words: + RAG - if the user is asking a factual question that might be in a document/knowledge base. + RECOMMEND - if the user is asking for a suggestion, recommendation, or similar items. + CHAT - if it's a general greeting or conversation. + + User Message: "{user_message}" + """ + + intent_response = client.models.generate_content( + model='gemini-2.5-flash', + contents=routing_prompt + ).text.strip().upper() + + if "RAG" in intent_response: + # 1. Retrieve Context + results = query_collection("knowledge_base", user_message, top_k=3) + context = "" + if results and results.get("documents") and results["documents"][0]: + context = "\n".join(results["documents"][0]) + + # 2. Generate Answer + rag_prompt = f""" + You are an AI Assistant answering questions based on the provided context. + If the answer is not in the context, politely say you don't know based on the documents. + + Context: + {context} + + Question: {user_message} + """ + answer = client.models.generate_content( + model='gemini-2.5-flash', + contents=rag_prompt + ).text + return f"**(RAG Search)**\n\n{answer}" + + elif "RECOMMEND" in intent_response: + # 1. Retrieve recommendations based on semantic similarity + results = query_collection("recommendations", user_message, top_k=3) + context = "" + if results and results.get("documents") and results["documents"][0]: + for doc, meta in zip(results["documents"][0], results["metadatas"][0]): + title = meta.get('title', 'Unknown Item') if meta else 'Unknown Item' + context += f"- **{title}**: {doc}\n" + + rec_prompt = f""" + You are an AI Recommendation Engine. The user asked for a recommendation. + Below are the top matches from our database. Present them nicely to the user. + + Matches: + {context} + + User Request: {user_message} + """ + answer = client.models.generate_content( + model='gemini-2.5-flash', + contents=rec_prompt + ).text + return f"**(Recommendation Engine)**\n\n{answer}" + + else: # CHAT + chat_prompt = f""" + You are a helpful AI Assistant. Respond to the user's message kindly. + User: {user_message} + """ + return client.models.generate_content( + model='gemini-2.5-flash', + contents=chat_prompt + ).text diff --git a/endee-rag-ai-project/api/db_client.py b/endee-rag-ai-project/api/db_client.py new file mode 100644 index 000000000..486e53b30 --- /dev/null +++ b/endee-rag-ai-project/api/db_client.py @@ -0,0 +1,42 @@ +import chromadb +from sentence_transformers import SentenceTransformer + +# We use ChromaDB as our local persistent datastore since Docker/Endee isn't available +client = chromadb.PersistentClient(path="./chroma_data") +model = SentenceTransformer("all-MiniLM-L6-v2") + +def get_or_create_collection(name: str): + return client.get_or_create_collection(name=name) + +def generate_embedding(text: str) -> list[float]: + """Generates embedding for a single string.""" + return model.encode(text).tolist() + +def upsert_document(collection_name: str, doc_id: str, text: str, metadata: dict = None): + """Embeds and upserts a document into the ChromaDB collection.""" + collection = get_or_create_collection(collection_name) + embedding = generate_embedding(text) + + collection.add( + ids=[doc_id], + embeddings=[embedding], + documents=[text], + metadatas=[metadata] if metadata else None + ) + +def query_collection(collection_name: str, query: str, top_k: int = 3): + """Queries the collection using semantic similarity.""" + collection = get_or_create_collection(collection_name) + query_embedding = generate_embedding(query) + + results = collection.query( + query_embeddings=[query_embedding], + n_results=top_k + ) + + return results + +def get_all_documents(collection_name: str): + """Retrieves all documents from a collection.""" + collection = get_or_create_collection(collection_name) + return collection.get() diff --git a/endee-rag-ai-project/api/main.py b/endee-rag-ai-project/api/main.py new file mode 100644 index 000000000..e3e114eb4 --- /dev/null +++ b/endee-rag-ai-project/api/main.py @@ -0,0 +1,83 @@ +from fastapi import FastAPI, UploadFile, File, Form, HTTPException +from fastapi.responses import HTMLResponse, JSONResponse +from fastapi.staticfiles import StaticFiles +from pydantic import BaseModel +import uuid +import os + +from api.db_client import upsert_document +from api.agent import route_and_execute +import PyPDF2 + +app = FastAPI(title="AI Document & Recommendation Assistant") + +# Mount UI static files +os.makedirs("ui", exist_ok=True) +app.mount("/ui", StaticFiles(directory="ui"), name="ui") + +class ChatRequest(BaseModel): + message: str + +@app.get("/", response_class=HTMLResponse) +async def serve_ui(): + """Serve the main UI page.""" + with open("ui/index.html", "r", encoding="utf-8") as f: + return HTMLResponse(content=f.read()) + + +@app.post("/api/chat") +async def chat_endpoint(req: ChatRequest): + """Agentic Chat endpoint.""" + try: + response = route_and_execute(req.message) + return {"response": response} + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + +@app.post("/api/upload") +async def upload_pdf(file: UploadFile = File(...)): + """Ingest a PDF document into the knowledge base.""" + if not file.filename.endswith(".pdf"): + raise HTTPException(status_code=400, detail="Only PDF files are supported.") + + try: + pdf_reader = PyPDF2.PdfReader(file.file) + text = "" + for page in pdf_reader.pages: + text += page.extract_text() + "\n" + + doc_id = str(uuid.uuid4()) + # In a real app we'd chunk this text, but for demo we just store it + upsert_document( + collection_name="knowledge_base", + doc_id=doc_id, + text=text, + metadata={"source": file.filename} + ) + return {"message": "PDF ingested successfully! You can now ask questions about it.", "id": doc_id} + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to process PDF: {str(e)}") + + +@app.post("/api/seed_recommendations") +async def seed_recommendations(): + """Seeds some dummy items for the recommendation functionality.""" + items = [ + {"id": "rec_1", "title": "Ergonomic Office Chair", "desc": "A comfortable mesh chair with lumbar support for long working hours."}, + {"id": "rec_2", "title": "Mechanical Keyboard", "desc": "Wireless mechanical keyboard with tactile brown switches, great for typing."}, + {"id": "rec_3", "title": "Noise Cancelling Headphones", "desc": "Over-ear headphones with active noise cancellation and 30-hour battery life."}, + {"id": "rec_4", "title": "4K Monitor", "desc": "27-inch 4K IPS monitor with vibrant colors, perfect for designers and coders."} + ] + + try: + for item in items: + upsert_document( + collection_name="recommendations", + doc_id=item["id"], + text=item["desc"], + metadata={"title": item["title"]} + ) + return {"message": "Recommendation Engine seeded with sample products!"} + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + diff --git a/endee-rag-ai-project/app.py b/endee-rag-ai-project/app.py new file mode 100644 index 000000000..353c14345 --- /dev/null +++ b/endee-rag-ai-project/app.py @@ -0,0 +1,16 @@ +from fastapi import FastAPI +from pydantic import BaseModel +from rag_pipeline import generate_answer + +app = FastAPI() + +class Question(BaseModel): + question: str + context: str = "" + +@app.post("/ask") +def ask_question(data: Question): + + answer = generate_answer(data.question, data.context) + + return {"answer": answer} \ No newline at end of file diff --git a/endee-rag-ai-project/chat_ui.py b/endee-rag-ai-project/chat_ui.py new file mode 100644 index 000000000..2abc17b94 --- /dev/null +++ b/endee-rag-ai-project/chat_ui.py @@ -0,0 +1,36 @@ +import streamlit as st +import requests +from pdf_loader import load_pdf + +st.title("📄 AI Document Assistant") + +uploaded_file = st.file_uploader("Upload a PDF", type="pdf") + +document_text = "" + +if uploaded_file: + document_text = load_pdf(uploaded_file) + st.success("PDF loaded successfully!") + +question = st.text_input("Ask a question about the document") + +if st.button("Ask AI"): + + if question == "": + st.warning("Please enter a question") + + else: + payload = { + "question": question, + "context": document_text + } + + response = requests.post( + "http://127.0.0.1:8000/ask", + json=payload + ) + + if response.status_code == 200: + st.success(response.json()["answer"]) + else: + st.error("Error from API") \ No newline at end of file diff --git a/endee-rag-ai-project/embeddings.py b/endee-rag-ai-project/embeddings.py new file mode 100644 index 000000000..1f668643b --- /dev/null +++ b/endee-rag-ai-project/embeddings.py @@ -0,0 +1,23 @@ +from sentence_transformers import SentenceTransformer +from endee_db import store_embeddings + +model = SentenceTransformer("paraphrase-MiniLM-L3-v2") + +def load_documents(): + with open("data/documents.txt","r") as f: + docs = f.readlines() + + return [d.strip() for d in docs] + + +def create_embeddings(): + + docs = load_documents() + + vectors = model.encode(docs) + + store_embeddings(vectors, docs) + + +if __name__ == "__main__": + create_embeddings() \ No newline at end of file diff --git a/endee-rag-ai-project/endee_db.py b/endee-rag-ai-project/endee_db.py new file mode 100644 index 000000000..4005990a1 --- /dev/null +++ b/endee-rag-ai-project/endee_db.py @@ -0,0 +1,26 @@ +import json +import os + +DB_FILE = "vector_store.json" + +def store_embeddings(vectors, docs): + + data = [] + + for i in range(len(docs)): + data.append({ + "vector": vectors[i].tolist(), + "text": docs[i] + }) + + with open(DB_FILE, "w") as f: + json.dump(data, f) + + +def load_vectors(): + + if not os.path.exists(DB_FILE): + return [] + + with open(DB_FILE, "r") as f: + return json.load(f) \ No newline at end of file diff --git a/endee-rag-ai-project/images/ai-workspace-ui.png b/endee-rag-ai-project/images/ai-workspace-ui.png new file mode 100644 index 000000000..c7e627586 Binary files /dev/null and b/endee-rag-ai-project/images/ai-workspace-ui.png differ diff --git a/endee-rag-ai-project/images/demo-final.webp b/endee-rag-ai-project/images/demo-final.webp new file mode 100644 index 000000000..f5d2b64da Binary files /dev/null and b/endee-rag-ai-project/images/demo-final.webp differ diff --git a/endee-rag-ai-project/images/rag-demo-final.webp b/endee-rag-ai-project/images/rag-demo-final.webp new file mode 100644 index 000000000..f5d2b64da Binary files /dev/null and b/endee-rag-ai-project/images/rag-demo-final.webp differ diff --git a/endee-rag-ai-project/images/rag-success.png b/endee-rag-ai-project/images/rag-success.png new file mode 100644 index 000000000..d44c34578 Binary files /dev/null and b/endee-rag-ai-project/images/rag-success.png differ diff --git a/endee-rag-ai-project/pdf_loader.py b/endee-rag-ai-project/pdf_loader.py new file mode 100644 index 000000000..7ef58e2af --- /dev/null +++ b/endee-rag-ai-project/pdf_loader.py @@ -0,0 +1,10 @@ +from pypdf import PdfReader + +def load_pdf(file): + reader = PdfReader(file) + text = "" + + for page in reader.pages: + text += page.extract_text() + + return text \ No newline at end of file diff --git a/endee-rag-ai-project/rag_pipeline.py b/endee-rag-ai-project/rag_pipeline.py new file mode 100644 index 000000000..f4d521206 --- /dev/null +++ b/endee-rag-ai-project/rag_pipeline.py @@ -0,0 +1,11 @@ +from search import search + +def generate_answer(question, context=""): + + docs = search(question) + + combined_context = context + " " + " ".join(docs) + + answer = f"Based on the document: {combined_context}" + + return answer \ No newline at end of file diff --git a/endee-rag-ai-project/requirements.txt b/endee-rag-ai-project/requirements.txt new file mode 100644 index 000000000..176a6c0a1 --- /dev/null +++ b/endee-rag-ai-project/requirements.txt @@ -0,0 +1,4 @@ +sentence-transformers +fastapi +uvicorn +numpy \ No newline at end of file diff --git a/endee-rag-ai-project/search.py b/endee-rag-ai-project/search.py new file mode 100644 index 000000000..0da691815 --- /dev/null +++ b/endee-rag-ai-project/search.py @@ -0,0 +1,22 @@ +import numpy as np +from sentence_transformers import SentenceTransformer +from endee_db import load_vectors + +model = SentenceTransformer("paraphrase-MiniLM-L3-v2") + +def search(query, top_k=2): + + query_vector = model.encode(query) + + data = load_vectors() + + vectors = [d["vector"] for d in data] + docs = [d["text"] for d in data] + + vectors = np.array(vectors) + + similarity = np.dot(vectors, query_vector) + + top_indices = similarity.argsort()[-top_k:][::-1] + + return [docs[i] for i in top_indices] \ No newline at end of file diff --git a/endee-rag-ai-project/ui/app.js b/endee-rag-ai-project/ui/app.js new file mode 100644 index 000000000..5f5a2aba4 --- /dev/null +++ b/endee-rag-ai-project/ui/app.js @@ -0,0 +1,161 @@ +document.addEventListener("DOMContentLoaded", () => { + const chatForm = document.getElementById("chat-form"); + const userInput = document.getElementById("user-input"); + const chatBox = document.getElementById("chat-box"); + + const uploadBtn = document.getElementById("upload-btn"); + const pdfUpload = document.getElementById("pdf-upload"); + const uploadStatus = document.getElementById("upload-status"); + + const seedBtn = document.getElementById("seed-btn"); + const seedStatus = document.getElementById("seed-status"); + + marked.setOptions({ breaks: true }); + + function appendMessage(text, isUser = false) { + const msgDiv = document.createElement("div"); + msgDiv.className = `message ${isUser ? 'user-message' : 'ai-message'}`; + + const avatar = document.createElement("div"); + avatar.className = "avatar"; + avatar.textContent = isUser ? "U" : "AI"; + + const content = document.createElement("div"); + content.className = "content"; + + if (isUser) { + content.textContent = text; + } else { + content.innerHTML = marked.parse(text); + } + + msgDiv.appendChild(avatar); + msgDiv.appendChild(content); + chatBox.appendChild(msgDiv); + + // Scroll to bottom + chatBox.scrollTop = chatBox.scrollHeight; + } + + function showTypingIndicator() { + const id = 'typing-' + Date.now(); + const msgDiv = document.createElement("div"); + msgDiv.className = "message ai-message"; + msgDiv.id = id; + + msgDiv.innerHTML = ` +
AI
+
+
+
+
+
+
+
+ `; + chatBox.appendChild(msgDiv); + chatBox.scrollTop = chatBox.scrollHeight; + return id; + } + + function removeTypingIndicator(id) { + const el = document.getElementById(id); + if (el) { + el.remove(); + } + } + + chatForm.addEventListener("submit", async (e) => { + e.preventDefault(); + const text = userInput.value.trim(); + if (!text) return; + + appendMessage(text, true); + userInput.value = ""; + + const typingId = showTypingIndicator(); + + try { + const response = await fetch("/api/chat", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ message: text }) + }); + + removeTypingIndicator(typingId); + + if (!response.ok) throw new Error("API request failed"); + + const data = await response.json(); + appendMessage(data.response); + + } catch (error) { + removeTypingIndicator(typingId); + appendMessage("**Error:** Could not connect to the Agent API."); + console.error(error); + } + }); + + uploadBtn.addEventListener("click", async () => { + const file = pdfUpload.files[0]; + if (!file) { + uploadStatus.textContent = "Please select a file first."; + uploadStatus.className = "error"; + return; + } + + const formData = new FormData(); + formData.append("file", file); + + uploadBtn.textContent = "Uploading..."; + uploadBtn.disabled = true; + + try { + const response = await fetch("/api/upload", { + method: "POST", + body: formData + }); + + const data = await response.json(); + + if (response.ok) { + uploadStatus.textContent = "Success!"; + uploadStatus.className = "success"; + appendMessage(`*System:* Uploaded document **${file.name}** to Knowledge Base. You can now talk to it.`); + } else { + throw new Error(data.detail || "Upload failed"); + } + } catch (error) { + uploadStatus.textContent = error.message; + uploadStatus.className = "error"; + } finally { + uploadBtn.textContent = "Upload Document"; + uploadBtn.disabled = false; + pdfUpload.value = ""; // clear input + } + }); + + seedBtn.addEventListener("click", async () => { + seedBtn.textContent = "Seeding..."; + seedBtn.disabled = true; + + try { + const response = await fetch("/api/seed_recommendations", { method: "POST" }); + const data = await response.json(); + + if (response.ok) { + seedStatus.textContent = "Success!"; + seedStatus.className = "success"; + appendMessage("*System:* Initialized recommendation engine with sample product catalog."); + } else { + throw new Error("Failed to seed"); + } + } catch (error) { + seedStatus.textContent = "Error occurred"; + seedStatus.className = "error"; + } finally { + seedBtn.textContent = "Seed Catalog"; + seedBtn.disabled = false; + } + }); +}); diff --git a/endee-rag-ai-project/ui/index.html b/endee-rag-ai-project/ui/index.html new file mode 100644 index 000000000..5a179f3ad --- /dev/null +++ b/endee-rag-ai-project/ui/index.html @@ -0,0 +1,69 @@ + + + + + + AI Workspace - RAG & Recommendations + + + + +
+ + + + + +
+
+
+

Intelligent Assistant

+

Try asking questions about your uploaded documents, or ask for product recommendations!

+
+
+ +
+ +
+
AI
+
Hello! I am your AI assistant powered by Gemini. Upload a PDF and ask me questions about it (RAG), or ask me for a product recommendation!
+
+
+ +
+
+ + +
+
+
+
+ + + + + + diff --git a/endee-rag-ai-project/ui/style.css b/endee-rag-ai-project/ui/style.css new file mode 100644 index 000000000..f8c23ba71 --- /dev/null +++ b/endee-rag-ai-project/ui/style.css @@ -0,0 +1,317 @@ +:root { + --bg-main: #0b1120; + --bg-panel: rgba(30, 41, 59, 0.7); + --border-color: rgba(255, 255, 255, 0.1); + --text-primary: #f8fafc; + --text-secondary: #94a3b8; + --accent-primary: #3b82f6; + --accent-glow: rgba(59, 130, 246, 0.5); + --gradient-brand: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%); + --radius-sm: 8px; + --radius-md: 12px; + --radius-lg: 16px; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: 'Inter', sans-serif; + background-color: var(--bg-main); + color: var(--text-primary); + min-height: 100vh; + display: flex; + overflow: hidden; +} + +/* Glassmorphism utility */ +.glass-panel { + background: var(--bg-panel); + backdrop-filter: blur(12px); + -webkit-backdrop-filter: blur(12px); + border: 1px solid var(--border-color); + border-radius: var(--radius-md); + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); +} + +.app-container { + display: flex; + width: 100vw; + height: 100vh; +} + +/* Sidebar */ +.sidebar { + width: 300px; + background: rgba(15, 23, 42, 0.9); + border-right: 1px solid var(--border-color); + padding: 1.5rem; + display: flex; + flex-direction: column; +} + +.logo h2 { + font-family: 'Outfit', sans-serif; + font-size: 1.5rem; + font-weight: 700; + letter-spacing: -0.5px; + margin-bottom: 2rem; + background: var(--gradient-brand); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.logo span { + color: var(--text-primary); + -webkit-text-fill-color: initial; + font-weight: 400; +} + +.menu h3 { + font-size: 0.75rem; + text-transform: uppercase; + color: var(--text-secondary); + letter-spacing: 1px; + margin-bottom: 1rem; +} + +.upload-section, .recommend-section { + padding: 1rem; + margin-bottom: 1rem; +} + +.upload-section p, .recommend-section p { + font-size: 0.875rem; + color: var(--text-secondary); + margin-bottom: 0.5rem; +} + +input[type="file"] { + width: 100%; + font-size: 0.8rem; + margin-bottom: 1rem; + color: var(--text-secondary); +} + +/* Buttons */ +.btn { + width: 100%; + padding: 0.6rem 1rem; + border: none; + border-radius: var(--radius-sm); + font-family: 'Inter', sans-serif; + font-size: 0.875rem; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; +} + +.btn.primary { + background: var(--gradient-brand); + color: white; + box-shadow: 0 0 10px rgba(139, 92, 246, 0.3); +} + +.btn.primary:hover { + box-shadow: 0 0 15px rgba(139, 92, 246, 0.6); + transform: translateY(-1px); +} + +.btn.secondary { + background: rgba(255, 255, 255, 0.1); + color: var(--text-primary); + border: 1px solid var(--border-color); +} + +.btn.secondary:hover { + background: rgba(255, 255, 255, 0.15); +} + +/* Chat Area */ +.chat-area { + flex: 1; + display: flex; + flex-direction: column; + position: relative; + background: radial-gradient(circle at top right, rgba(59, 130, 246, 0.1), transparent 40%), + radial-gradient(circle at bottom left, rgba(139, 92, 246, 0.1), transparent 40%); +} + +.chat-header { + padding: 1.5rem 2rem; + border-bottom: 1px solid var(--border-color); + backdrop-filter: blur(10px); + z-index: 10; +} + +.chat-header h1 { + font-family: 'Outfit', sans-serif; + font-size: 1.25rem; + font-weight: 600; +} + +.chat-header p { + font-size: 0.875rem; + color: var(--text-secondary); + margin-top: 0.25rem; +} + +.messages-container { + flex: 1; + overflow-y: auto; + padding: 2rem; + display: flex; + flex-direction: column; + gap: 1.5rem; + scroll-behavior: smooth; +} + +.message { + display: flex; + gap: 1rem; + max-width: 80%; + animation: fadeIn 0.3s ease forwards; +} + +.message.user-message { + align-self: flex-end; + flex-direction: row-reverse; +} + +.avatar { + width: 36px; + height: 36px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-size: 0.75rem; + font-weight: 600; + flex-shrink: 0; +} + +.ai-message .avatar { + background: var(--gradient-brand); + color: white; +} + +.user-message .avatar { + background: var(--bg-panel); + border: 1px solid var(--border-color); +} + +.content { + background: var(--bg-panel); + padding: 1rem 1.25rem; + border-radius: var(--radius-lg); + border: 1px solid var(--border-color); + font-size: 0.95rem; + line-height: 1.5; +} + +.user-message .content { + background: rgba(59, 130, 246, 0.1); + border-color: rgba(59, 130, 246, 0.3); +} + +/* Markdown styling within messages */ +.content ul, .content ol { margin-left: 1.5rem; margin-top: 0.5rem; } +.content p { margin-bottom: 0.5rem; } +.content p:last-child { margin-bottom: 0; } +.content strong { color: var(--accent-primary); } + +.input-area { + padding: 1.5rem 2rem; + background: linear-gradient(to top, var(--bg-main) 50%, transparent); +} + +.chat-form { + display: flex; + padding: 0.5rem; + border-radius: var(--radius-lg); + transition: border-color 0.2s; +} + +.chat-form:focus-within { + border-color: var(--accent-primary); + box-shadow: 0 0 0 1px var(--accent-primary); +} + +#user-input { + flex: 1; + background: transparent; + border: none; + padding: 0.75rem 1rem; + color: var(--text-primary); + font-size: 1rem; + outline: none; + font-family: 'Inter', sans-serif; +} + +#user-input::placeholder { + color: var(--text-secondary); +} + +.send-btn { + width: 44px; + height: 44px; + display: flex; + align-items: center; + justify-content: center; + border-radius: var(--radius-md); + background: var(--text-primary); + color: var(--bg-main); +} + +.send-btn:hover { + background: #e2e8f0; + transform: scale(1.05); +} + +.mt-4 { margin-top: 1rem; } + +/* Status message styling */ +#upload-status, #seed-status { + font-size: 0.75rem; + margin-top: 0.5rem; + text-align: center; +} +.success { color: #10b981; } +.error { color: #ef4444; } + +/* Typing Indicator Animation */ +.typing-indicator { + display: flex; + gap: 4px; + padding: 0.5rem 0; +} + +.dot { + width: 6px; + height: 6px; + background: var(--text-secondary); + border-radius: 50%; + animation: bounce 1.4s infinite ease-in-out; +} + +.dot:nth-child(1) { animation-delay: -0.32s; } +.dot:nth-child(2) { animation-delay: -0.16s; } + +@keyframes bounce { + 0%, 80%, 100% { transform: scale(0); } + 40% { transform: scale(1); } +} + +@keyframes fadeIn { + from { opacity: 0; transform: translateY(10px); } + to { opacity: 1; transform: translateY(0); } +} + +/* Custom Scrollbar */ +::-webkit-scrollbar { width: 6px; } +::-webkit-scrollbar-track { background: transparent; } +::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.1); border-radius: 10px; } +::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.2); } diff --git a/endee-rag-ai-project/vector_store.json b/endee-rag-ai-project/vector_store.json new file mode 100644 index 000000000..cececa1d7 --- /dev/null +++ b/endee-rag-ai-project/vector_store.json @@ -0,0 +1 @@ +[{"vector": [-0.14913879334926605, -0.5016270875930786, -0.2291143238544464, 0.01783885806798935, -0.1277567595243454, 0.04605134204030037, 0.4160287380218506, -0.12702196836471558, -0.022856665775179863, 0.29726266860961914, -0.006386343855410814, -0.22193573415279388, 0.23846274614334106, -0.13005460798740387, 0.013296976685523987, 0.050532493740320206, 0.27827516198158264, 0.2915825843811035, -0.24202173948287964, -0.2823900878429413, 0.28173020482063293, -0.31692633032798767, -0.3469747304916382, 0.12841208279132843, -0.152260884642601, -0.06019756570458412, 0.26967060565948486, -0.08699342608451843, 0.28514766693115234, -0.10807682573795319, -0.12684878706932068, -0.024091342464089394, 0.058813292533159256, 0.05372575670480728, -0.08807405829429626, 0.47467607259750366, 0.02765534073114395, 0.14146797358989716, -0.06962898373603821, -0.1019401103258133, -0.10538260638713837, -0.03523661196231842, -0.15752822160720825, 0.08872122317552567, 0.1848350167274475, -0.34282293915748596, -0.25766661763191223, -0.02813195250928402, 0.24022610485553741, -0.22547408938407898, 0.16044707596302032, 0.09874038398265839, -0.40280747413635254, -0.08506698161363602, -0.03506084159016609, 0.39985212683677673, 0.06496714055538177, -0.07630014419555664, -0.17811714112758636, -0.17395512759685516, 0.21092623472213745, -0.12583857774734497, 0.06341269612312317, 0.2556164264678955, 0.12740501761436462, 0.20392613112926483, 0.19693012535572052, -0.23101308941841125, -0.024700069800019264, -0.29101431369781494, 0.5943127870559692, -0.18559564650058746, -0.1476491093635559, 0.0343339629471302, 0.07389810681343079, 0.27577516436576843, -0.05446309596300125, -0.20817174017429352, -0.16534659266471863, 0.16622763872146606, -0.12087670713663101, 0.2005215436220169, -0.1326930820941925, 0.3578295409679413, -0.1059117391705513, 0.13117289543151855, 0.006750313565135002, 0.09700444340705872, 0.1483585089445114, -0.16160304844379425, 0.021803613752126694, -0.10879692435264587, -0.03518377244472504, -0.08360851556062698, 0.424526572227478, 0.0746208056807518, -0.051026489585638046, -0.251069575548172, 0.10313037782907486, 0.05764645338058472, -0.23765267431735992, -0.12910732626914978, -0.21293748915195465, -0.3319567143917084, -0.02718580700457096, -0.17536121606826782, -0.4040740430355072, -0.20875149965286255, 0.17211437225341797, -0.03462513908743858, 0.11018291115760803, -0.04935269057750702, 0.007571869529783726, -0.05095662176609039, -0.0708828940987587, -0.2142341583967209, -0.2950419783592224, 0.007820291444659233, -0.6510725021362305, -0.13662871718406677, 0.04001174867153168, 0.09904839098453522, 0.1496473252773285, -0.022761650383472443, 0.27276015281677246, -0.13718299567699432, -0.8426840305328369, -0.09604579210281372, 0.07170971482992172, -0.23517921566963196, 0.25101974606513977, -0.06248091161251068, 0.4352817237377167, 0.2876555621623993, 0.34065529704093933, -0.10200699418783188, 0.18381032347679138, 0.1896490603685379, -0.19313748180866241, 0.21477478742599487, -0.11533787846565247, 0.44826778769493103, 0.43636026978492737, -0.04634964466094971, -0.2997172176837921, -0.07701204717159271, 0.30328842997550964, -0.04043804854154587, 0.04285873845219612, -0.18407705426216125, 0.12603223323822021, -0.6193645000457764, 0.24120426177978516, -0.09852898120880127, -0.1525900661945343, -0.03144625574350357, 0.4091038107872009, 0.09594585746526718, -0.2631567716598511, -0.2556036710739136, -0.34417930245399475, -0.01310328021645546, 0.2773940861225128, 0.3308720588684082, 0.16002637147903442, -0.1302545964717865, 0.10910677909851074, 0.012972140684723854, 0.1851922571659088, 0.14091219007968903, 0.20115059614181519, 0.04879111796617508, -0.14065758883953094, -0.27068546414375305, -0.2563205361366272, 0.15413182973861694, 0.016832686960697174, 0.007352882064878941, 0.2580781877040863, -0.28190329670906067, -0.33535945415496826, -0.03851517662405968, 0.242694690823555, 0.04085434973239899, 0.10968324542045593, 0.3559352159500122, 0.09406322985887527, 0.33972233533859253, -0.2708323299884796, -0.12005269527435303, 0.3285239636898041, 0.38288742303848267, 0.12564979493618011, 0.14454153180122375, -0.1351553201675415, 0.08203189820051193, 0.08652099967002869, -0.1383005976676941, -0.04765264689922333, 0.33333227038383484, 0.10022453963756561, 0.21912068128585815, 0.05340862646698952, -0.15851907432079315, -0.11622428894042969, -0.1891128271818161, -0.1488524079322815, -0.5659810304641724, -0.08860666304826736, 0.38870975375175476, -0.20603665709495544, 0.4263128638267517, -0.5397753119468689, 0.25613218545913696, 0.28206437826156616, 0.2096412032842636, -0.12381544709205627, 0.014755934476852417, -0.13664357364177704, 0.07129499316215515, 0.1113225594162941, -0.22145968675613403, -0.423739492893219, -0.12776176631450653, -0.038158707320690155, 0.2388131320476532, 0.3017256557941437, -0.26768818497657776, 0.06841526180505753, -0.07781396061182022, 0.09723712503910065, -0.22737842798233032, 0.08381196111440659, -0.0765770822763443, -0.0695025622844696, 0.20148546993732452, -0.0944390520453453, -0.20010313391685486, 0.17314758896827698, 0.05138764902949333, 0.07048815488815308, -0.02846740372478962, -0.16298510134220123, 0.1399039775133133, -0.312536358833313, -0.026624269783496857, 0.15478169918060303, -0.2887381613254547, 0.0872403085231781, 0.2184152454137802, -0.34109461307525635, 0.2213088572025299, 0.013399025425314903, -0.04360349476337433, -0.15617580711841583, -0.25928446650505066, -0.11746852844953537, 0.1934983730316162, -0.09873855113983154, 0.062262773513793945, 0.1546614170074463, 0.034039273858070374, -0.002511219820007682, 0.35907694697380066, -0.359960675239563, -0.4401441216468811, -0.4640614092350006, 0.26483699679374695, -0.08451656252145767, -0.23442403972148895, 0.42630642652511597, 0.08659688383340836, 0.5444929599761963, 0.0002167688508052379, -0.10131842643022537, 0.09610947221517563, -0.14393717050552368, 0.02258739247918129, -0.09344583749771118, -0.036843523383140564, 0.4030810296535492, 0.18576759099960327, -0.14750507473945618, 0.04675197973847389, 0.48256954550743103, -0.5010473728179932, 0.22231721878051758, 0.013555518351495266, -0.19269195199012756, -0.23204146325588226, -0.008734003640711308, 0.05025872960686684, -0.03109026700258255, -0.007938921451568604, 0.24237698316574097, -0.06714361906051636, 0.15020328760147095, 0.11302975565195084, 0.4627741575241089, 0.06898757815361023, -0.3209172189235687, -0.18658389151096344, 0.24894531071186066, -0.4994649291038513, -0.3305242955684662, 0.026745401322841644, 0.214819997549057, -0.11044071614742279, -0.11624394357204437, 0.20200763642787933, -0.1725955456495285, -0.28051722049713135, -0.019355662167072296, 0.228329598903656, -0.24919673800468445, -0.2671307921409607, -0.09371808171272278, 0.005456253886222839, -0.14547890424728394, -0.09214398264884949, -0.10288450121879578, -0.24856479465961456, 0.27053356170654297, 0.3249574303627014, 0.1728155016899109, -0.3971375524997711, 0.1266510784626007, 0.03558291122317314, 0.07420676201581955, -0.1664225459098816, -0.12264145910739899, 0.13922204077243805, -0.07544109225273132, -0.0722346380352974, 0.23129044473171234, 0.45622390508651733, 0.0992995873093605, -0.02803928405046463, -0.197809636592865, 0.25885093212127686, 0.21524003148078918, 0.01917290687561035, -0.14897100627422333, 0.30170169472694397, 0.19438482820987701, 0.04559086635708809, -0.06689883768558502, 0.13538998365402222, 0.35657453536987305, 0.02321115881204605, 0.347389817237854, -0.10059743374586105, 0.11642622947692871, -0.42238497734069824, 0.1723334789276123, 0.19906610250473022, -0.007504055742174387, 0.20052969455718994, -0.060970623046159744, -0.08763310313224792, -0.09283235669136047, 0.19390851259231567, -0.28130483627319336, 0.136830672621727, -0.20074735581874847, -0.16519297659397125, -0.07643497735261917, -0.298355370759964, -0.2536180317401886, 0.23539797961711884, -0.15583345293998718, -0.0172884538769722, 0.043501369655132294, -0.4083193838596344, 0.11451712995767593, 0.3709557354450226, -0.061834871768951416, -0.13457022607326508, 0.05971519276499748, 0.026605568826198578, -0.3595814108848572, 0.585282564163208, -0.02186184749007225, -0.024039573967456818], "text": "Machine learning is a subset of artificial intelligence that allows systems to learn from data."}, {"vector": [-0.021862491965293884, -0.04509294033050537, 0.3493245542049408, -0.16888874769210815, -0.15776929259300232, -0.3887435793876648, 0.4341474175453186, -0.18613114953041077, -0.2920360267162323, -0.050310228019952774, 0.24895799160003662, -0.08981029689311981, -0.33184948563575745, -0.6254408359527588, 0.209506556391716, 0.007473401725292206, -0.09669432044029236, 0.10888885706663132, 0.1686340719461441, -0.01998836174607277, 0.08063975721597672, 0.2816539406776428, 0.3756260275840759, -0.1809738427400589, 0.15019695460796356, -0.21601185202598572, 0.36125653982162476, -0.22897769510746002, -0.14575934410095215, -1.5490434169769287, 0.09878022223711014, -0.2626439034938812, -0.04524755850434303, -0.20201772451400757, -0.5224189162254333, 0.08146300911903381, -0.1284472942352295, 0.3417295515537262, 0.3373672366142273, 0.4409632086753845, 0.2817184329032898, -0.11476481705904007, 0.15405941009521484, -0.2696308195590973, -0.28058162331581116, -0.2402985692024231, 0.6578661203384399, 0.3088819980621338, -0.16969794034957886, 0.05234093964099884, 0.1124906986951828, -0.43054717779159546, 0.3432953953742981, -0.21013610064983368, 0.4231223464012146, 0.32938212156295776, 0.34108227491378784, 0.13615582883358002, -0.47946056723594666, 0.1729038655757904, -0.12834230065345764, 0.04229973256587982, -0.6440079212188721, 0.507292628288269, 0.17249330878257751, 0.22862392663955688, 0.7001348733901978, 0.042163994163274765, -0.4485917091369629, 0.2033817321062088, 0.011456530541181564, -0.044028639793395996, -0.4610421061515808, 0.47618821263313293, 0.16352006793022156, -0.6868115663528442, 0.4760594367980957, 0.11016117036342621, -0.11041989177465439, -0.493011474609375, -0.057869650423526764, 0.008146382868289948, -0.38575080037117004, -0.06002824008464813, -0.1609613299369812, -0.046964675188064575, 0.1807967871427536, 0.5433857440948486, -0.3148571848869324, -0.05949339270591736, -0.23888729512691498, 0.11008578538894653, 0.6267927289009094, 0.02206704393029213, 0.1363484114408493, 0.3382890224456787, -0.07274094969034195, -0.17319944500923157, -0.041734855622053146, 3.2432360649108887, 0.11000955104827881, -0.20507913827896118, 0.10576256364583969, -0.17520496249198914, 0.3939365744590759, -0.22684934735298157, -0.3317309319972992, -0.24571596086025238, 0.18384620547294617, -0.08421263098716736, 0.06352891772985458, 0.04438634216785431, 0.20022839307785034, -0.07730019092559814, -0.08307507634162903, 0.15370550751686096, -0.6827386617660522, 0.2868257761001587, 0.03682948648929596, 0.03590003401041031, -0.013602469116449356, 0.16625532507896423, 0.11971964687108994, -0.13713812828063965, 0.8928859829902649, -1.4316401481628418, 0.4747755825519562, -0.4797293245792389, 0.14166995882987976, -0.21065470576286316, 0.35929441452026367, 0.09177297353744507, 0.23403635621070862, -0.16317127645015717, -0.22108572721481323, 0.35644906759262085, -0.23362645506858826, 0.02012499049305916, 0.35626012086868286, 0.25615525245666504, 0.11195234209299088, -0.033300820738077164, -0.034625038504600525, -0.09189833700656891, 0.3853289484977722, -0.06824152171611786, -0.4312893748283386, 0.07751473039388657, 0.282594233751297, 0.02590852789580822, 0.12552793323993683, 0.3335632383823395, 0.3637467622756958, -0.6094323396682739, 0.3435189127922058, -0.24731549620628357, -0.17263874411582947, -0.5298709869384766, 0.48351725935935974, -0.28430259227752686, -0.1364523023366928, 0.010639716871082783, 0.04798014089465141, -0.1433534026145935, -0.24491223692893982, -0.013614237308502197, 0.2527027726173401, -0.3246009945869446, 0.06323951482772827, 0.09937329590320587, -0.44116002321243286, 0.3610827624797821, -0.17811238765716553, 0.12119276821613312, 0.14459143579006195, -0.465648889541626, 0.09302771091461182, -0.21605214476585388, -0.6208985447883606, -0.025678543373942375, 0.3213413953781128, -0.4564380645751953, -0.3382325768470764, -0.013634755276143551, 0.0986635684967041, 0.12406168133020401, -0.24707648158073425, -0.15905436873435974, -0.010349750518798828, -0.49534177780151367, -0.29858338832855225, -0.21179601550102234, -0.0034237848594784737, -0.04739004373550415, -0.35687172412872314, -0.08205671608448029, 0.5414026379585266, 0.25064173340797424, -0.34098851680755615, 0.12213392555713654, -0.032573290169239044, 0.3244650959968567, 0.25056925415992737, -0.2815527319908142, 0.34206074476242065, -0.44511324167251587, -0.024758612737059593, -0.44440004229545593, -0.21758830547332764, 0.3855785131454468, 0.091528981924057, 0.1998264193534851, -0.10640738904476166, 0.014864586293697357, 0.12396294623613358, 0.3053368031978607, 0.20490415394306183, 0.41601425409317017, -0.10708128660917282, -0.04221027344465256, 0.2557716369628906, -0.03645665571093559, -0.26614910364151, -1.0088281631469727, 0.050848253071308136, 0.31829139590263367, 0.023717466741800308, -0.0826483890414238, -0.1736774742603302, -0.08092620968818665, -0.0550512969493866, -0.3687739372253418, -0.11179966479539871, -0.13870668411254883, -0.21295097470283508, -0.11417841166257858, 0.3073068857192993, 0.03610251843929291, 0.2708117365837097, -0.3953824043273926, 0.03571511432528496, 0.13774287700653076, -0.1933862566947937, -0.04981640353798866, -0.12849685549736023, 0.30919671058654785, 0.25135111808776855, 0.08719654381275177, -0.25444889068603516, 0.595736563205719, -0.0883602648973465, 0.1806434690952301, -0.2759108543395996, -0.39070379734039307, 0.224406898021698, 0.2192932516336441, -0.24447733163833618, 0.13513705134391785, -0.48172688484191895, 0.21406129002571106, -0.06020664423704147, -0.5444986820220947, 0.06783116608858109, -0.02359822951257229, -0.16552852094173431, 1.49488914757967e-05, -0.405243456363678, 0.3856768012046814, -0.12340870499610901, -0.27189576625823975, -0.15935373306274414, 0.10770630836486816, -0.2312978059053421, -0.06778087466955185, 0.07057526707649231, 0.09620914608240128, 0.6557589769363403, 0.027554403990507126, -0.05926015228033066, 0.08069449663162231, -0.20464889705181122, -0.13992764055728912, 0.2272743284702301, -0.1446085274219513, -0.1342461258172989, -0.28697195649147034, -0.4157615303993225, 0.06249621510505676, -0.07197915017604828, 0.05053504556417465, -0.6340135335922241, 0.07939907908439636, -0.30867278575897217, -0.33745354413986206, -0.21766243875026703, -0.35780471563339233, 0.354398638010025, 0.2685141861438751, 0.13066786527633667, 0.02992166578769684, 0.45550858974456787, 0.0601666122674942, -0.0754445344209671, -0.002321692183613777, 0.2854607105255127, -0.2486979365348816, -0.022780410945415497, 0.030142366886138916, -0.08349993824958801, 0.2713535726070404, -0.601421058177948, -0.20315271615982056, 0.01893290877342224, 0.33322393894195557, 0.5813261270523071, 0.43315815925598145, -0.15748395025730133, -0.047722216695547104, 0.36475491523742676, -0.6974359750747681, -0.4116056263446808, 0.41870713233947754, 0.12044023722410202, -0.27785006165504456, -0.023688260465860367, 0.11555813252925873, 0.2581155002117157, 0.5086054801940918, 0.5836279392242432, 0.289770245552063, -0.30048245191574097, 0.18223080039024353, 0.10557769984006882, 0.018856467679142952, 0.2231369912624359, 0.0811244323849678, -0.43313658237457275, -0.5250324606895447, 0.32621920108795166, -0.24684730172157288, 0.06421350687742233, 0.5441418886184692, 0.09667681157588959, -0.1644243448972702, -0.4182037115097046, -0.2542712390422821, 0.45563197135925293, -0.39620155096054077, -0.029702913016080856, 0.017202476039528847, -0.4201319217681885, -0.2686408758163452, 0.49046164751052856, 0.12805937230587006, 0.005794192664325237, -0.4681876301765442, 0.28627336025238037, -0.10843895375728607, 0.2675591707229614, -0.3850231468677521, 0.027374207973480225, -0.2439250946044922, -0.14950145781040192, 0.16349154710769653, 0.2566799223423004, -0.35681694746017456, 0.22544822096824646, 0.015191733837127686, 0.09814822673797607, 0.33348971605300903, -0.02294551208615303, -0.300523579120636, 0.2879987359046936, 0.26512250304222107, -0.15868154168128967, 0.1349414885044098, 0.16823270916938782, -0.2561686635017395, -0.5263700485229492, -0.08851249516010284, 0.18364782631397247, 0.06663644313812256, 0.40657854080200195, -0.17752346396446228], "text": ""}, {"vector": [-0.18938399851322174, -0.49502748250961304, 0.01658746413886547, 0.2707895338535309, -0.23495852947235107, -0.03313516825437546, -0.056491684168577194, -0.24031174182891846, -0.22353562712669373, 0.17629237473011017, 0.09649622440338135, 0.1089039072394371, 0.17560097575187683, 0.1191670373082161, 0.04194206744432449, 0.09822902828454971, 0.27212557196617126, 0.06408942490816116, 0.06569601595401764, -0.39029353857040405, 0.1232120618224144, -0.028521642088890076, -0.3741002380847931, -0.017848016694188118, 0.016354447230696678, -0.13850116729736328, 0.2028084099292755, -0.02282142825424671, 0.36964747309684753, -0.13514173030853271, 0.2112092673778534, 0.280438095331192, 0.18295513093471527, -0.08347724378108978, -0.10444465279579163, 0.17877596616744995, -0.26357004046440125, 0.2035108506679535, -0.09725749492645264, -0.005101150367408991, 0.02570049837231636, 0.0804247111082077, 0.07009671628475189, 0.08480827510356903, -0.02258376032114029, -0.4362005889415741, -0.27086010575294495, -0.1478436291217804, 0.14498159289360046, -0.3098660409450531, 0.26242250204086304, -0.2532956898212433, -0.18171456456184387, 0.07914270460605621, 0.2234528362751007, 0.33884143829345703, 0.232654869556427, -0.12332095205783844, 0.09791700541973114, -0.31763797998428345, 0.11441508680582047, 0.08937956392765045, -0.19568058848381042, 0.07012815028429031, -0.10988505929708481, 0.3194316029548645, 0.17638848721981049, -0.04466819390654564, 0.09962956607341766, -0.28941458463668823, 0.35479679703712463, -0.15432307124137878, 0.21169701218605042, 0.0651388168334961, 0.4588083326816559, 0.16822990775108337, 0.07262615114450455, -0.08337225764989853, 0.1210925430059433, -0.2652004063129425, 0.0073389895260334015, -0.07450562715530396, 0.039164841175079346, 0.24487295746803284, -0.03760978579521179, 0.4096110463142395, 0.04437677562236786, -0.112592414021492, 0.03326192498207092, -0.03514975681900978, -0.0688629224896431, -0.19863595068454742, -0.3368653655052185, 0.06291468441486359, 0.3560801148414612, 0.30466726422309875, -0.01649216189980507, 0.20494739711284637, 0.07497119158506393, 0.07832004129886627, -0.30420243740081787, 0.0800216943025589, -0.13769374787807465, -0.05858398973941803, -0.2931941747665405, 0.1041593849658966, -0.20324750244617462, -0.0356011763215065, 0.29249536991119385, 0.21611075103282928, 0.26861461997032166, -0.1603112816810608, -0.035752903670072556, 0.17652684450149536, 0.10653731226921082, -0.19517189264297485, -0.2826010286808014, 0.1769172102212906, -0.5436655282974243, 0.2631022036075592, -0.1589266061782837, -0.005430033430457115, 0.024499285966157913, 0.2373182326555252, 0.18246789276599884, -0.22454595565795898, -0.35138824582099915, -0.3348521590232849, -0.09715790301561356, -0.2613603174686432, 0.13683150708675385, 0.0743914395570755, 0.2346220314502716, 0.2354106456041336, 0.25730156898498535, -0.25346067547798157, 0.07369867712259293, 0.24003975093364716, -0.2121773660182953, 0.12692464888095856, -0.41751015186309814, 0.5114732980728149, 0.4954216778278351, 0.07317428290843964, -0.14661124348640442, 0.1569817215204239, 0.1899113655090332, -0.2293650209903717, -0.036999695003032684, -0.06950367987155914, 0.32379230856895447, -0.6267908215522766, 0.048243459314107895, -0.15158286690711975, 0.06747066229581833, 0.10155905038118362, 0.08278167247772217, -0.010866604745388031, -0.3050445318222046, -0.15728724002838135, -0.1731954663991928, -0.010321401059627533, 0.24885950982570648, 0.6353898048400879, 0.35495081543922424, 0.11373081058263779, -0.12466734647750854, -0.014594318345189095, 0.1748974770307541, -0.04090025648474693, 0.3842345178127289, -0.3712632656097412, -0.33302241563796997, 0.21211442351341248, -0.02869601547718048, -0.056890375912189484, 0.003518226556479931, 0.36587920784950256, 0.23760126531124115, -0.22440175712108612, -0.2944548726081848, -0.04883844777941704, 0.2531251013278961, 0.18726691603660583, -0.17889343202114105, -0.09343632310628891, 0.2405075877904892, 0.1465761810541153, 0.07812431454658508, -0.157105952501297, 0.23976977169513702, 0.2717415988445282, 0.2990502715110779, 0.07951828092336655, 0.26821374893188477, 0.12609627842903137, 0.13118799030780792, -0.05808202922344208, -0.07328231632709503, 0.3514581322669983, -0.1367797553539276, 0.16049514710903168, -0.24235248565673828, -0.34665563702583313, -0.31473225355148315, -0.05806821957230568, 0.07001922279596329, -0.5314128398895264, 0.22085608541965485, -0.00159872742369771, -0.35469597578048706, 0.12106490880250931, -0.7750883102416992, 0.4576786160469055, -0.1667919158935547, 0.09314659237861633, -0.31505128741264343, -0.06126648187637329, -0.1925949603319168, -0.037591174244880676, 0.25443512201309204, -0.37922582030296326, -0.47145891189575195, -0.04121381789445877, -0.09924829751253128, 0.3489145338535309, 0.4156688153743744, -0.07537680119276047, -0.04092733561992645, -0.15499550104141235, -0.47614359855651855, -0.3380259871482849, -0.0591263473033905, 0.04606553167104721, 0.4623224139213562, 0.08301936835050583, -0.03501114249229431, 0.22202420234680176, 0.3058793544769287, -0.22763514518737793, -0.16532602906227112, -0.10037410259246826, -0.09758825600147247, 0.3248746693134308, -0.0369488000869751, -0.26888853311538696, -0.0450461283326149, -0.44963353872299194, -0.271480917930603, -0.15312126278877258, -0.3382098972797394, 0.05730627104640007, 0.19589614868164062, -0.12379282712936401, -0.1454014927148819, -0.10050775855779648, -0.2063879519701004, 0.23823028802871704, -0.07558302581310272, 0.23591114580631256, 0.3027511239051819, -0.23627319931983948, 0.09719555079936981, 0.30778855085372925, -0.3982882499694824, -0.3779313564300537, -0.33783677220344543, 0.18260759115219116, -0.06629851460456848, 0.12176015228033066, -0.1601502001285553, 0.041557662189006805, -0.03489357978105545, -0.0715932622551918, -0.17671668529510498, 0.4068325459957123, -0.277322918176651, -0.15232545137405396, -0.03423113003373146, -0.1379041224718094, -0.03984852880239487, 0.449524849653244, -0.0602787546813488, 0.11198187619447708, 0.14817668497562408, -0.5150101780891418, -0.16657142341136932, -0.11805310100317001, 0.3037474453449249, -0.1905338317155838, 0.22157660126686096, -0.4232690930366516, 0.11551754176616669, -0.2026233673095703, 0.06769773364067078, -0.01515231654047966, 0.32109054923057556, 0.04955567792057991, 0.27778729796409607, 0.05681295320391655, -0.11835149675607681, 0.02198963612318039, 0.12133435904979706, -0.04889526963233948, -0.7537230253219604, 0.02874244935810566, -0.08644649386405945, -0.08375273644924164, 0.11169121414422989, 0.08048692345619202, -0.15853948891162872, 0.00121278315782547, -0.1621396541595459, 0.1105535477399826, -0.4496915638446808, -0.13597731292247772, -0.25351399183273315, -0.1919190138578415, 0.05854874849319458, -0.09467144310474396, -0.01213432103395462, -0.4751814901828766, -0.033277954906225204, 0.07728774100542068, 0.0024382658302783966, -0.02245655097067356, -0.03851514309644699, 0.3445071578025818, -0.00923153292387724, 0.09029574692249298, -0.2103375494480133, -0.19287893176078796, -0.20886531472206116, 0.05123280733823776, 0.41159000992774963, 0.23781956732273102, 0.16802871227264404, -0.10459855943918228, 0.1067996472120285, -0.00017204135656356812, 0.0735665038228035, 0.07010061293840408, -0.22307512164115906, 0.29191073775291443, 0.1593097746372223, -0.12638123333454132, -0.18844495713710785, 0.41979920864105225, 0.15405218303203583, -0.14059706032276154, 0.2415701448917389, -0.033540938049554825, 0.25506627559661865, -0.06193961948156357, 0.23563025891780853, 0.45692285895347595, 0.17698262631893158, 0.16136078536510468, -0.2766438126564026, -0.2557874619960785, -0.016741512343287468, -0.03856460750102997, 0.042330194264650345, -0.18225477635860443, -0.07516904175281525, 0.007590632885694504, 0.12883557379245758, 0.33398494124412537, 0.10103678703308105, 0.0024272967129945755, -0.38426473736763, 0.028947826474905014, 0.397116482257843, -0.022271595895290375, -0.11160638183355331, 0.592163622379303, 0.17833009362220764, 0.14800678193569183, 0.03842950239777565, 0.23036013543605804, -0.19343461096286774, 0.3879615068435669, -0.5152732729911804, -0.2596949636936188], "text": "Deep learning uses neural networks with many layers to analyze patterns in data."}, {"vector": [-0.021862491965293884, -0.04509294033050537, 0.3493245542049408, -0.16888874769210815, -0.15776929259300232, -0.3887435793876648, 0.4341474175453186, -0.18613114953041077, -0.2920360267162323, -0.050310228019952774, 0.24895799160003662, -0.08981029689311981, -0.33184948563575745, -0.6254408359527588, 0.209506556391716, 0.007473401725292206, -0.09669432044029236, 0.10888885706663132, 0.1686340719461441, -0.01998836174607277, 0.08063975721597672, 0.2816539406776428, 0.3756260275840759, -0.1809738427400589, 0.15019695460796356, -0.21601185202598572, 0.36125653982162476, -0.22897769510746002, -0.14575934410095215, -1.5490434169769287, 0.09878022223711014, -0.2626439034938812, -0.04524755850434303, -0.20201772451400757, -0.5224189162254333, 0.08146300911903381, -0.1284472942352295, 0.3417295515537262, 0.3373672366142273, 0.4409632086753845, 0.2817184329032898, -0.11476481705904007, 0.15405941009521484, -0.2696308195590973, -0.28058162331581116, -0.2402985692024231, 0.6578661203384399, 0.3088819980621338, -0.16969794034957886, 0.05234093964099884, 0.1124906986951828, -0.43054717779159546, 0.3432953953742981, -0.21013610064983368, 0.4231223464012146, 0.32938212156295776, 0.34108227491378784, 0.13615582883358002, -0.47946056723594666, 0.1729038655757904, -0.12834230065345764, 0.04229973256587982, -0.6440079212188721, 0.507292628288269, 0.17249330878257751, 0.22862392663955688, 0.7001348733901978, 0.042163994163274765, -0.4485917091369629, 0.2033817321062088, 0.011456530541181564, -0.044028639793395996, -0.4610421061515808, 0.47618821263313293, 0.16352006793022156, -0.6868115663528442, 0.4760594367980957, 0.11016117036342621, -0.11041989177465439, -0.493011474609375, -0.057869650423526764, 0.008146382868289948, -0.38575080037117004, -0.06002824008464813, -0.1609613299369812, -0.046964675188064575, 0.1807967871427536, 0.5433857440948486, -0.3148571848869324, -0.05949339270591736, -0.23888729512691498, 0.11008578538894653, 0.6267927289009094, 0.02206704393029213, 0.1363484114408493, 0.3382890224456787, -0.07274094969034195, -0.17319944500923157, -0.041734855622053146, 3.2432360649108887, 0.11000955104827881, -0.20507913827896118, 0.10576256364583969, -0.17520496249198914, 0.3939365744590759, -0.22684934735298157, -0.3317309319972992, -0.24571596086025238, 0.18384620547294617, -0.08421263098716736, 0.06352891772985458, 0.04438634216785431, 0.20022839307785034, -0.07730019092559814, -0.08307507634162903, 0.15370550751686096, -0.6827386617660522, 0.2868257761001587, 0.03682948648929596, 0.03590003401041031, -0.013602469116449356, 0.16625532507896423, 0.11971964687108994, -0.13713812828063965, 0.8928859829902649, -1.4316401481628418, 0.4747755825519562, -0.4797293245792389, 0.14166995882987976, -0.21065470576286316, 0.35929441452026367, 0.09177297353744507, 0.23403635621070862, -0.16317127645015717, -0.22108572721481323, 0.35644906759262085, -0.23362645506858826, 0.02012499049305916, 0.35626012086868286, 0.25615525245666504, 0.11195234209299088, -0.033300820738077164, -0.034625038504600525, -0.09189833700656891, 0.3853289484977722, -0.06824152171611786, -0.4312893748283386, 0.07751473039388657, 0.282594233751297, 0.02590852789580822, 0.12552793323993683, 0.3335632383823395, 0.3637467622756958, -0.6094323396682739, 0.3435189127922058, -0.24731549620628357, -0.17263874411582947, -0.5298709869384766, 0.48351725935935974, -0.28430259227752686, -0.1364523023366928, 0.010639716871082783, 0.04798014089465141, -0.1433534026145935, -0.24491223692893982, -0.013614237308502197, 0.2527027726173401, -0.3246009945869446, 0.06323951482772827, 0.09937329590320587, -0.44116002321243286, 0.3610827624797821, -0.17811238765716553, 0.12119276821613312, 0.14459143579006195, -0.465648889541626, 0.09302771091461182, -0.21605214476585388, -0.6208985447883606, -0.025678543373942375, 0.3213413953781128, -0.4564380645751953, -0.3382325768470764, -0.013634755276143551, 0.0986635684967041, 0.12406168133020401, -0.24707648158073425, -0.15905436873435974, -0.010349750518798828, -0.49534177780151367, -0.29858338832855225, -0.21179601550102234, -0.0034237848594784737, -0.04739004373550415, -0.35687172412872314, -0.08205671608448029, 0.5414026379585266, 0.25064173340797424, -0.34098851680755615, 0.12213392555713654, -0.032573290169239044, 0.3244650959968567, 0.25056925415992737, -0.2815527319908142, 0.34206074476242065, -0.44511324167251587, -0.024758612737059593, -0.44440004229545593, -0.21758830547332764, 0.3855785131454468, 0.091528981924057, 0.1998264193534851, -0.10640738904476166, 0.014864586293697357, 0.12396294623613358, 0.3053368031978607, 0.20490415394306183, 0.41601425409317017, -0.10708128660917282, -0.04221027344465256, 0.2557716369628906, -0.03645665571093559, -0.26614910364151, -1.0088281631469727, 0.050848253071308136, 0.31829139590263367, 0.023717466741800308, -0.0826483890414238, -0.1736774742603302, -0.08092620968818665, -0.0550512969493866, -0.3687739372253418, -0.11179966479539871, -0.13870668411254883, -0.21295097470283508, -0.11417841166257858, 0.3073068857192993, 0.03610251843929291, 0.2708117365837097, -0.3953824043273926, 0.03571511432528496, 0.13774287700653076, -0.1933862566947937, -0.04981640353798866, -0.12849685549736023, 0.30919671058654785, 0.25135111808776855, 0.08719654381275177, -0.25444889068603516, 0.595736563205719, -0.0883602648973465, 0.1806434690952301, -0.2759108543395996, -0.39070379734039307, 0.224406898021698, 0.2192932516336441, -0.24447733163833618, 0.13513705134391785, -0.48172688484191895, 0.21406129002571106, -0.06020664423704147, -0.5444986820220947, 0.06783116608858109, -0.02359822951257229, -0.16552852094173431, 1.49488914757967e-05, -0.405243456363678, 0.3856768012046814, -0.12340870499610901, -0.27189576625823975, -0.15935373306274414, 0.10770630836486816, -0.2312978059053421, -0.06778087466955185, 0.07057526707649231, 0.09620914608240128, 0.6557589769363403, 0.027554403990507126, -0.05926015228033066, 0.08069449663162231, -0.20464889705181122, -0.13992764055728912, 0.2272743284702301, -0.1446085274219513, -0.1342461258172989, -0.28697195649147034, -0.4157615303993225, 0.06249621510505676, -0.07197915017604828, 0.05053504556417465, -0.6340135335922241, 0.07939907908439636, -0.30867278575897217, -0.33745354413986206, -0.21766243875026703, -0.35780471563339233, 0.354398638010025, 0.2685141861438751, 0.13066786527633667, 0.02992166578769684, 0.45550858974456787, 0.0601666122674942, -0.0754445344209671, -0.002321692183613777, 0.2854607105255127, -0.2486979365348816, -0.022780410945415497, 0.030142366886138916, -0.08349993824958801, 0.2713535726070404, -0.601421058177948, -0.20315271615982056, 0.01893290877342224, 0.33322393894195557, 0.5813261270523071, 0.43315815925598145, -0.15748395025730133, -0.047722216695547104, 0.36475491523742676, -0.6974359750747681, -0.4116056263446808, 0.41870713233947754, 0.12044023722410202, -0.27785006165504456, -0.023688260465860367, 0.11555813252925873, 0.2581155002117157, 0.5086054801940918, 0.5836279392242432, 0.289770245552063, -0.30048245191574097, 0.18223080039024353, 0.10557769984006882, 0.018856467679142952, 0.2231369912624359, 0.0811244323849678, -0.43313658237457275, -0.5250324606895447, 0.32621920108795166, -0.24684730172157288, 0.06421350687742233, 0.5441418886184692, 0.09667681157588959, -0.1644243448972702, -0.4182037115097046, -0.2542712390422821, 0.45563197135925293, -0.39620155096054077, -0.029702913016080856, 0.017202476039528847, -0.4201319217681885, -0.2686408758163452, 0.49046164751052856, 0.12805937230587006, 0.005794192664325237, -0.4681876301765442, 0.28627336025238037, -0.10843895375728607, 0.2675591707229614, -0.3850231468677521, 0.027374207973480225, -0.2439250946044922, -0.14950145781040192, 0.16349154710769653, 0.2566799223423004, -0.35681694746017456, 0.22544822096824646, 0.015191733837127686, 0.09814822673797607, 0.33348971605300903, -0.02294551208615303, -0.300523579120636, 0.2879987359046936, 0.26512250304222107, -0.15868154168128967, 0.1349414885044098, 0.16823270916938782, -0.2561686635017395, -0.5263700485229492, -0.08851249516010284, 0.18364782631397247, 0.06663644313812256, 0.40657854080200195, -0.17752346396446228], "text": ""}, {"vector": [-0.28981268405914307, -0.49090951681137085, -0.10645845532417297, 0.330085813999176, -0.4557541012763977, 0.040945522487163544, 0.4048073887825012, -0.16274729371070862, -0.036133114248514175, 0.1598687320947647, 0.16180163621902466, -0.4768798351287842, -0.0012237257324159145, -0.08310183137655258, -0.06568309664726257, 0.05981173366308212, 0.29316282272338867, -0.19811390340328217, -0.1840214729309082, -0.1347731202840805, -0.08039378374814987, -0.11151005327701569, -0.10833582282066345, -0.15910552442073822, 0.011432784609496593, 0.016950182616710663, 0.15148252248764038, 0.021186463534832, 0.15469340980052948, -0.04529888182878494, 0.060115110129117966, 0.3445008099079132, 0.2718876004219055, -0.40051546692848206, -0.25758281350135803, -0.1966785490512848, 0.052646931260824203, 0.021168846637010574, 0.07542154937982559, 0.1578311026096344, -0.07335015386343002, 0.21794027090072632, 0.3290737569332123, -0.06546472758054733, -0.11860130727291107, -0.3219984769821167, -0.2560281753540039, -0.09661813825368881, 0.08130869269371033, -0.3938972055912018, 0.09753471612930298, -0.3332870304584503, -0.3966233432292938, -0.18773336708545685, 0.08557737618684769, 0.040564123541116714, -0.15667741000652313, -0.08908113837242126, -0.21782995760440826, -0.01757628843188286, -0.4303126931190491, -0.20532925426959991, 0.0874834954738617, 0.20538485050201416, 0.031151462346315384, 0.2300734668970108, 0.07308799028396606, -0.35375136137008667, 0.15751178562641144, -0.254459947347641, 0.04210071265697479, 0.046358030289411545, 0.25369101762771606, 0.2408599853515625, 0.24700027704238892, -0.010954735800623894, 0.2907598316669464, -0.1626409888267517, -0.4363616406917572, 0.26548388600349426, -0.1005830243229866, -0.19668486714363098, -0.10174815356731415, -0.046619851142168045, 0.13065430521965027, 0.16297133266925812, 0.17004863917827606, 0.10875006020069122, -0.06867529451847076, -0.16979101300239563, -0.1782410591840744, 0.3066726624965668, -0.054585691541433334, -0.07313824445009232, 0.03956365957856178, 0.29834693670272827, 0.1890733242034912, -0.11704696714878082, -0.311609148979187, 0.2879553437232971, -0.2116110622882843, 0.002528790384531021, -0.31719666719436646, -0.09201673418283463, 0.06493255496025085, -0.19477596879005432, -0.5549912452697754, -0.14373396337032318, -0.1315269023180008, 0.06756973266601562, 0.16158348321914673, 0.16498392820358276, -0.11587157845497131, -0.15479977428913116, 0.019918054342269897, -0.00796346552670002, -0.36603549122810364, 0.11500327289104462, -0.27942413091659546, 0.2068435549736023, 0.27294257283210754, 0.030281683430075645, -0.042963460087776184, 0.05188111960887909, 0.39675217866897583, -0.1500074863433838, -0.20721223950386047, -0.16652897000312805, -0.060489725321531296, 0.17554497718811035, 0.24855667352676392, -0.1078672856092453, 0.31227463483810425, 0.03074679523706436, 0.052608687430620193, 0.11275232583284378, 0.10770375281572342, -0.2950722277164459, 0.10602271556854248, 0.23116737604141235, 0.04809945449233055, 0.49815183877944946, 0.3715229332447052, -0.16260561347007751, -0.09562503546476364, 0.0035797967575490475, -0.01293419860303402, 0.15903186798095703, -0.34675905108451843, 0.3348291218280792, 0.016764558851718903, -0.509174108505249, 0.442814439535141, 0.18566541373729706, 0.05742401257157326, -0.01873602345585823, 0.29802191257476807, -0.024286920204758644, -0.1342766284942627, -0.3193417489528656, 0.12217017263174057, 0.3287633955478668, 0.16943101584911346, 0.1763184368610382, -0.2457323670387268, -0.06316044926643372, 0.2871279716491699, 0.024553827941417694, -0.30430692434310913, 0.4912753701210022, 0.1941232830286026, 0.14648988842964172, -0.16078880429267883, 0.22367675602436066, -0.5341495275497437, 0.13517075777053833, -0.21537865698337555, -0.052010852843523026, 0.03206871077418327, -0.2694551348686218, -0.14568234980106354, 0.21440498530864716, 0.28295743465423584, 0.09090429544448853, 0.10291432589292526, 0.0883483812212944, -0.2043866217136383, 0.4545481503009796, -0.2622543275356293, 0.2172064632177353, -0.0027303695678710938, -0.007454243954271078, 0.2958560287952423, 0.11846145987510681, -0.44808298349380493, 0.0036441246047616005, 0.08287893980741501, 0.23707745969295502, 0.038602009415626526, 0.17331476509571075, -0.3080134391784668, 0.09512454271316528, -0.15841636061668396, -0.2552918493747711, 0.28243279457092285, -0.015022692270576954, 0.23110908269882202, 0.01668982207775116, -0.05250748619437218, 0.5180991888046265, -0.28090429306030273, 0.12195030599832535, -0.15162360668182373, 0.22561702132225037, 0.23292537033557892, -0.18661543726921082, -0.2116883099079132, 0.016217850148677826, -0.13618683815002441, -0.19746986031532288, -0.1115889623761177, -0.34114572405815125, -0.209626704454422, 0.017760563641786575, -0.041153497993946075, -0.04163902997970581, 0.01814480870962143, 0.108289934694767, -0.08066310733556747, -0.1585564762353897, -0.0655045360326767, -0.0954626202583313, 0.2181898057460785, -0.09960921108722687, 0.07834962010383606, 0.13077712059020996, 0.06346029043197632, -0.2516426742076874, 0.21847929060459137, 0.005071973893791437, -0.09774705767631531, -0.21568793058395386, -0.12668317556381226, 0.06108839809894562, -0.004505431279540062, -0.16167408227920532, -0.06601682305335999, -0.470723420381546, 0.4150991439819336, 0.23450851440429688, -0.30977609753608704, -0.0076500484719872475, 0.23116666078567505, 0.009734311141073704, 0.013787255622446537, -0.2343588024377823, -0.6441999673843384, 0.3033543825149536, 0.19110490381717682, 0.2707357406616211, -0.0023285960778594017, -0.2887052893638611, 0.07778113335371017, 0.1914346069097519, 0.11842094361782074, -0.2972828149795532, -0.20928624272346497, 0.20267079770565033, 0.01989554613828659, -0.22471174597740173, -0.34284260869026184, 0.10621766000986099, -0.05786236375570297, -0.08912255614995956, 0.1368062049150467, -0.06932245194911957, -0.05885959044098854, 0.2540356516838074, -0.12042967230081558, -0.05696933716535568, 0.08574579656124115, 0.004970503970980644, -0.2956526279449463, -0.24536851048469543, 0.2732234299182892, -0.45943641662597656, -0.16037291288375854, -0.25604724884033203, 0.013783922418951988, 0.06813039630651474, -0.21564707159996033, -0.18054446578025818, -0.020228955894708633, -0.17054714262485504, 0.13274726271629333, -0.3813365697860718, 0.194945827126503, -0.15148380398750305, 0.06918399035930634, 0.01758459582924843, 0.005220351740717888, 0.09685733169317245, 0.317859023809433, 0.09323708713054657, 0.04645965248346329, 0.1458611786365509, -0.02313942462205887, 0.2668522596359253, 0.45876070857048035, 0.04121910035610199, 0.19987168908119202, -0.22726085782051086, -0.0647454634308815, 0.2785598039627075, 0.12754753232002258, 0.054739274084568024, -0.011531936004757881, 0.15842045843601227, -0.3822007179260254, 0.011569809168577194, 0.12201933562755585, -0.3273528218269348, 0.04694806784391403, 0.1429351270198822, 0.24204352498054504, 0.02704625204205513, 0.006441950798034668, -0.16321676969528198, 0.3662503957748413, -0.25870153307914734, -0.08891332149505615, 0.277291476726532, -0.06285622715950012, -0.07776202261447906, 0.17957715690135956, 0.06888847798109055, 0.24202729761600494, 0.1760576367378235, 0.06945063918828964, 0.12422022223472595, 0.07062505930662155, -0.029915371909737587, -0.004541641101241112, 0.06399219483137131, 0.16790027916431427, 0.15101167559623718, -0.07124082744121552, 0.15993639826774597, 0.22305898368358612, -0.12024857103824615, 0.1536448746919632, -0.30473411083221436, 0.047361038625240326, -0.23334744572639465, -0.23087751865386963, 0.33665791153907776, 0.09364645928144455, 0.15809662640094757, 0.0580601692199707, -0.20902477204799652, 0.029773345217108727, 0.09751324355602264, -0.41808077692985535, 0.11344107240438461, 0.3730503022670746, 0.013391261920332909, -0.06976228952407837, -0.5493058562278748, 0.013618584722280502, 0.13396655023097992, -0.37530747056007385, -0.1932191699743271, -0.1391947716474533, -0.20897243916988373, 0.21362866461277008, 0.14152848720550537, 0.192697674036026, 0.11702500283718109, 0.1162310242652893, -0.027766454964876175, 0.31403249502182007, 0.2722501754760742, 0.5027498602867126, -0.14779222011566162], "text": "Python is one of the most popular programming languages used in artificial intelligence."}, {"vector": [-0.021862491965293884, -0.04509294033050537, 0.3493245542049408, -0.16888874769210815, -0.15776929259300232, -0.3887435793876648, 0.4341474175453186, -0.18613114953041077, -0.2920360267162323, -0.050310228019952774, 0.24895799160003662, -0.08981029689311981, -0.33184948563575745, -0.6254408359527588, 0.209506556391716, 0.007473401725292206, -0.09669432044029236, 0.10888885706663132, 0.1686340719461441, -0.01998836174607277, 0.08063975721597672, 0.2816539406776428, 0.3756260275840759, -0.1809738427400589, 0.15019695460796356, -0.21601185202598572, 0.36125653982162476, -0.22897769510746002, -0.14575934410095215, -1.5490434169769287, 0.09878022223711014, -0.2626439034938812, -0.04524755850434303, -0.20201772451400757, -0.5224189162254333, 0.08146300911903381, -0.1284472942352295, 0.3417295515537262, 0.3373672366142273, 0.4409632086753845, 0.2817184329032898, -0.11476481705904007, 0.15405941009521484, -0.2696308195590973, -0.28058162331581116, -0.2402985692024231, 0.6578661203384399, 0.3088819980621338, -0.16969794034957886, 0.05234093964099884, 0.1124906986951828, -0.43054717779159546, 0.3432953953742981, -0.21013610064983368, 0.4231223464012146, 0.32938212156295776, 0.34108227491378784, 0.13615582883358002, -0.47946056723594666, 0.1729038655757904, -0.12834230065345764, 0.04229973256587982, -0.6440079212188721, 0.507292628288269, 0.17249330878257751, 0.22862392663955688, 0.7001348733901978, 0.042163994163274765, -0.4485917091369629, 0.2033817321062088, 0.011456530541181564, -0.044028639793395996, -0.4610421061515808, 0.47618821263313293, 0.16352006793022156, -0.6868115663528442, 0.4760594367980957, 0.11016117036342621, -0.11041989177465439, -0.493011474609375, -0.057869650423526764, 0.008146382868289948, -0.38575080037117004, -0.06002824008464813, -0.1609613299369812, -0.046964675188064575, 0.1807967871427536, 0.5433857440948486, -0.3148571848869324, -0.05949339270591736, -0.23888729512691498, 0.11008578538894653, 0.6267927289009094, 0.02206704393029213, 0.1363484114408493, 0.3382890224456787, -0.07274094969034195, -0.17319944500923157, -0.041734855622053146, 3.2432360649108887, 0.11000955104827881, -0.20507913827896118, 0.10576256364583969, -0.17520496249198914, 0.3939365744590759, -0.22684934735298157, -0.3317309319972992, -0.24571596086025238, 0.18384620547294617, -0.08421263098716736, 0.06352891772985458, 0.04438634216785431, 0.20022839307785034, -0.07730019092559814, -0.08307507634162903, 0.15370550751686096, -0.6827386617660522, 0.2868257761001587, 0.03682948648929596, 0.03590003401041031, -0.013602469116449356, 0.16625532507896423, 0.11971964687108994, -0.13713812828063965, 0.8928859829902649, -1.4316401481628418, 0.4747755825519562, -0.4797293245792389, 0.14166995882987976, -0.21065470576286316, 0.35929441452026367, 0.09177297353744507, 0.23403635621070862, -0.16317127645015717, -0.22108572721481323, 0.35644906759262085, -0.23362645506858826, 0.02012499049305916, 0.35626012086868286, 0.25615525245666504, 0.11195234209299088, -0.033300820738077164, -0.034625038504600525, -0.09189833700656891, 0.3853289484977722, -0.06824152171611786, -0.4312893748283386, 0.07751473039388657, 0.282594233751297, 0.02590852789580822, 0.12552793323993683, 0.3335632383823395, 0.3637467622756958, -0.6094323396682739, 0.3435189127922058, -0.24731549620628357, -0.17263874411582947, -0.5298709869384766, 0.48351725935935974, -0.28430259227752686, -0.1364523023366928, 0.010639716871082783, 0.04798014089465141, -0.1433534026145935, -0.24491223692893982, -0.013614237308502197, 0.2527027726173401, -0.3246009945869446, 0.06323951482772827, 0.09937329590320587, -0.44116002321243286, 0.3610827624797821, -0.17811238765716553, 0.12119276821613312, 0.14459143579006195, -0.465648889541626, 0.09302771091461182, -0.21605214476585388, -0.6208985447883606, -0.025678543373942375, 0.3213413953781128, -0.4564380645751953, -0.3382325768470764, -0.013634755276143551, 0.0986635684967041, 0.12406168133020401, -0.24707648158073425, -0.15905436873435974, -0.010349750518798828, -0.49534177780151367, -0.29858338832855225, -0.21179601550102234, -0.0034237848594784737, -0.04739004373550415, -0.35687172412872314, -0.08205671608448029, 0.5414026379585266, 0.25064173340797424, -0.34098851680755615, 0.12213392555713654, -0.032573290169239044, 0.3244650959968567, 0.25056925415992737, -0.2815527319908142, 0.34206074476242065, -0.44511324167251587, -0.024758612737059593, -0.44440004229545593, -0.21758830547332764, 0.3855785131454468, 0.091528981924057, 0.1998264193534851, -0.10640738904476166, 0.014864586293697357, 0.12396294623613358, 0.3053368031978607, 0.20490415394306183, 0.41601425409317017, -0.10708128660917282, -0.04221027344465256, 0.2557716369628906, -0.03645665571093559, -0.26614910364151, -1.0088281631469727, 0.050848253071308136, 0.31829139590263367, 0.023717466741800308, -0.0826483890414238, -0.1736774742603302, -0.08092620968818665, -0.0550512969493866, -0.3687739372253418, -0.11179966479539871, -0.13870668411254883, -0.21295097470283508, -0.11417841166257858, 0.3073068857192993, 0.03610251843929291, 0.2708117365837097, -0.3953824043273926, 0.03571511432528496, 0.13774287700653076, -0.1933862566947937, -0.04981640353798866, -0.12849685549736023, 0.30919671058654785, 0.25135111808776855, 0.08719654381275177, -0.25444889068603516, 0.595736563205719, -0.0883602648973465, 0.1806434690952301, -0.2759108543395996, -0.39070379734039307, 0.224406898021698, 0.2192932516336441, -0.24447733163833618, 0.13513705134391785, -0.48172688484191895, 0.21406129002571106, -0.06020664423704147, -0.5444986820220947, 0.06783116608858109, -0.02359822951257229, -0.16552852094173431, 1.49488914757967e-05, -0.405243456363678, 0.3856768012046814, -0.12340870499610901, -0.27189576625823975, -0.15935373306274414, 0.10770630836486816, -0.2312978059053421, -0.06778087466955185, 0.07057526707649231, 0.09620914608240128, 0.6557589769363403, 0.027554403990507126, -0.05926015228033066, 0.08069449663162231, -0.20464889705181122, -0.13992764055728912, 0.2272743284702301, -0.1446085274219513, -0.1342461258172989, -0.28697195649147034, -0.4157615303993225, 0.06249621510505676, -0.07197915017604828, 0.05053504556417465, -0.6340135335922241, 0.07939907908439636, -0.30867278575897217, -0.33745354413986206, -0.21766243875026703, -0.35780471563339233, 0.354398638010025, 0.2685141861438751, 0.13066786527633667, 0.02992166578769684, 0.45550858974456787, 0.0601666122674942, -0.0754445344209671, -0.002321692183613777, 0.2854607105255127, -0.2486979365348816, -0.022780410945415497, 0.030142366886138916, -0.08349993824958801, 0.2713535726070404, -0.601421058177948, -0.20315271615982056, 0.01893290877342224, 0.33322393894195557, 0.5813261270523071, 0.43315815925598145, -0.15748395025730133, -0.047722216695547104, 0.36475491523742676, -0.6974359750747681, -0.4116056263446808, 0.41870713233947754, 0.12044023722410202, -0.27785006165504456, -0.023688260465860367, 0.11555813252925873, 0.2581155002117157, 0.5086054801940918, 0.5836279392242432, 0.289770245552063, -0.30048245191574097, 0.18223080039024353, 0.10557769984006882, 0.018856467679142952, 0.2231369912624359, 0.0811244323849678, -0.43313658237457275, -0.5250324606895447, 0.32621920108795166, -0.24684730172157288, 0.06421350687742233, 0.5441418886184692, 0.09667681157588959, -0.1644243448972702, -0.4182037115097046, -0.2542712390422821, 0.45563197135925293, -0.39620155096054077, -0.029702913016080856, 0.017202476039528847, -0.4201319217681885, -0.2686408758163452, 0.49046164751052856, 0.12805937230587006, 0.005794192664325237, -0.4681876301765442, 0.28627336025238037, -0.10843895375728607, 0.2675591707229614, -0.3850231468677521, 0.027374207973480225, -0.2439250946044922, -0.14950145781040192, 0.16349154710769653, 0.2566799223423004, -0.35681694746017456, 0.22544822096824646, 0.015191733837127686, 0.09814822673797607, 0.33348971605300903, -0.02294551208615303, -0.300523579120636, 0.2879987359046936, 0.26512250304222107, -0.15868154168128967, 0.1349414885044098, 0.16823270916938782, -0.2561686635017395, -0.5263700485229492, -0.08851249516010284, 0.18364782631397247, 0.06663644313812256, 0.40657854080200195, -0.17752346396446228], "text": ""}, {"vector": [-0.2732948660850525, -0.2870910167694092, -0.19072425365447998, -0.04746932163834572, -0.13607411086559296, -0.07386668026447296, 0.06341546773910522, -0.1795884370803833, 0.04158669337630272, -0.04642608016729355, -0.02815082110464573, 0.18231090903282166, 0.10505160689353943, 0.09614432603120804, -0.0009786589071154594, -0.08557701110839844, 0.06563203036785126, 0.3897817134857178, -0.02413877099752426, -0.16280408203601837, -0.3062035143375397, -0.41268372535705566, -0.3469206690788269, 0.042133282870054245, 0.20562703907489777, -0.18859632313251495, 0.16179786622524261, 0.07894255220890045, -0.12378861010074615, 0.13816939294338226, 0.07311969995498657, -0.06410285830497742, 0.16137468814849854, 0.1411285102367401, 0.14692911505699158, -0.2597496211528778, -0.05091790109872818, -0.08575938642024994, 0.6083259582519531, 0.059637974947690964, -0.13325881958007812, 0.08980527520179749, 0.033386897295713425, 0.4179743230342865, 0.31238874793052673, -0.1951012760400772, -0.05230531468987465, 0.12904517352581024, 0.031179117038846016, -0.06506472826004028, -0.013719480484724045, 0.05847587063908577, -0.351187527179718, 0.19930726289749146, -0.04701249673962593, 0.07974498718976974, -0.0625649094581604, 0.04163351282477379, 0.11820945143699646, -0.1900598257780075, 0.13932253420352936, 0.04465851932764053, 0.3887624740600586, 0.06776446104049683, 0.17718154191970825, 0.16467398405075073, -0.06758091598749161, 0.3297067880630493, 0.2314525842666626, 0.1413705050945282, 0.3552309274673462, 0.37327370047569275, -0.18837638199329376, 0.1314171403646469, 0.4718756377696991, -0.009762453846633434, -0.37331122159957886, 0.018159782513976097, -0.2695726454257965, -0.28977862000465393, -0.36592939496040344, -0.06443748623132706, 0.2257576286792755, 0.1019294261932373, 0.03219364956021309, 0.33976441621780396, -0.1265164017677307, -0.21394631266593933, 0.2531617283821106, 0.039568882435560226, 0.18693959712982178, -0.23798255622386932, 0.28510263562202454, -0.21724969148635864, -0.20601920783519745, -0.032534241676330566, -0.23005405068397522, 0.2175188511610031, 0.5140272378921509, -0.013669151812791824, -0.21219004690647125, -0.02989826165139675, -0.018572555854916573, 0.3389489948749542, -0.15373824536800385, 0.022661352530121803, 0.04667467623949051, 0.17853252589702606, 0.14553895592689514, -0.21219155192375183, 0.33910369873046875, -0.20885440707206726, -0.0970316007733345, -0.0994182899594307, -0.1268438845872879, -0.4490440785884857, -0.41314318776130676, 0.17283792793750763, -0.09026038646697998, 0.17018231749534607, -0.18657371401786804, -0.1257137805223465, 0.10595256090164185, -0.0014908360317349434, 0.4819360673427582, -0.07016264647245407, -0.6788089871406555, 0.013421979732811451, -0.05305786058306694, -0.210857093334198, -0.03248465806245804, -0.05002119764685631, 0.556459903717041, 0.5819324851036072, -0.2558632791042328, -0.10208185017108917, -0.28367239236831665, 0.11091218143701553, -0.08394481241703033, 0.4395367503166199, -0.3081206977367401, 0.19160714745521545, 0.2080463320016861, 0.2827303409576416, -0.007048930041491985, 0.09829344600439072, -0.08222570270299911, -0.11308085173368454, -0.2719762325286865, -0.1617075800895691, -0.09171178191900253, -0.08415789157152176, 0.14052434265613556, -0.24178992211818695, 0.330005407333374, -0.06286690384149551, 0.31897953152656555, -0.04079177975654602, 0.004685897380113602, 0.02612140215933323, -0.08388311415910721, 0.032197874039411545, 0.2626928985118866, 0.3574375808238983, -0.06794359534978867, -0.2680370509624481, -0.04494762420654297, -0.139415442943573, -0.32822173833847046, -0.3266403079032898, 0.3542976379394531, -0.24353519082069397, -0.6381381750106812, 0.09688927233219147, -0.06202187016606331, 0.23516248166561127, -0.0065401336178183556, 0.2739291489124298, -0.12197193503379822, -0.21054169535636902, -0.12841276824474335, 0.10814502090215683, -0.012702515348792076, 0.15766067802906036, -0.03765203431248665, -0.1266721487045288, -0.19527308642864227, -0.07503408938646317, -0.010282576084136963, -0.17890918254852295, 0.5716884136199951, -0.245992511510849, 0.3625233471393585, -0.04828479513525963, 0.06038074567914009, 0.06060643121600151, -0.1882571130990982, 0.4275890290737152, 0.11247625201940536, 0.21919341385364532, 0.10971080511808395, -0.1279238909482956, -0.2033042460680008, 0.05079944059252739, -0.18252353370189667, 0.01761847734451294, -0.012594712898135185, -0.0219744760543108, 0.13544799387454987, 0.20395050942897797, -0.1739090085029602, 0.4683131277561188, -0.6725227236747742, 0.2374747395515442, 0.318045973777771, -0.03141620755195618, -0.3406877815723419, 0.14096982777118683, -0.015981756150722504, 0.20144394040107727, -0.12272706627845764, -0.4891270101070404, -0.3508206903934479, -0.03446049615740776, 0.050647102296352386, -0.21727140247821808, 0.13625556230545044, 0.12011309713125229, -0.19523601233959198, -0.11820780485868454, 0.18610763549804688, -0.3732556998729706, -0.16467595100402832, -0.24330802261829376, 0.2740762233734131, 0.11316517740488052, -0.13204868137836456, -0.21393144130706787, -0.042847130447626114, 0.2559072971343994, 0.006322699133306742, 0.37385913729667664, -0.08962154388427734, 0.40560951828956604, -0.15698276460170746, -0.46547940373420715, 0.05527448654174805, -0.2977745234966278, 0.15675026178359985, 0.05170082300901413, -0.234139084815979, -0.3857634365558624, 0.21212485432624817, -0.19888268411159515, -0.09836870431900024, 0.1780892014503479, -0.2559643089771271, 0.32292070984840393, -0.15178188681602478, -0.091090127825737, 0.2941669523715973, 0.27057620882987976, 0.3641636371612549, 0.2320682406425476, 0.07767122983932495, -0.2984301745891571, -0.20308133959770203, 0.04357527568936348, -0.29095694422721863, 0.056768856942653656, -0.29687368869781494, 0.38394901156425476, 0.3177066147327423, -0.3158816397190094, -0.4019618332386017, 0.2953220009803772, -0.06519787013530731, -0.26521167159080505, -0.13291992247104645, 0.061247799545526505, 0.01726832427084446, 0.2716236114501953, -0.26858770847320557, 0.17475439608097076, 0.26688799262046814, 0.025080952793359756, -0.028860017657279968, -0.045666567981243134, 0.040949080139398575, -0.15346486866474152, 0.13151144981384277, -0.5203043818473816, -0.32490020990371704, -0.2543787956237793, -0.03778470680117607, -0.4865836203098297, 0.3710155487060547, 0.271273136138916, -0.24312792718410492, -0.11794529110193253, 0.40352800488471985, 0.06179234758019447, -0.10174370557069778, 0.1428423970937729, -0.3362455368041992, -0.2098897248506546, 0.03973628953099251, -0.04204452782869339, -0.02299606427550316, 0.33835145831108093, -0.007723444607108831, -0.22282835841178894, 0.07842817902565002, -0.0038590494077652693, -0.05063256993889809, -0.14650866389274597, -0.13906759023666382, 0.27429237961769104, -0.1022118404507637, -0.11631660908460617, 0.0556364431977272, 0.22524628043174744, -0.20920991897583008, 0.004922180436551571, -0.05222863331437111, -0.28863900899887085, -0.2500941753387451, 0.5520265698432922, 0.05068577080965042, -0.14537060260772705, -0.23332713544368744, 0.013811636716127396, -0.468152791261673, 0.06869495660066605, 0.005539124831557274, -0.15263819694519043, 0.037568531930446625, 0.03538867086172104, -0.02386106364428997, -0.14734335243701935, -0.26136595010757446, 0.043478090316057205, -0.15459629893302917, -0.09009315818548203, -0.07454710453748703, -0.22021102905273438, -0.0765685886144638, 0.1948051005601883, 0.7283669114112854, -0.27025851607322693, 0.2836124897003174, 0.22969938814640045, 0.014935273677110672, -0.2794260084629059, 0.48697933554649353, 0.5395970344543457, -0.12174626439809799, 0.018977636471390724, -0.02195173315703869, 0.011755261570215225, 0.007354541681706905, 0.06937897950410843, 0.1369742453098297, 0.2552710175514221, 0.0979839488863945, -0.2602829039096832, 0.4105967581272125, 0.1871439814567566, 0.09363100677728653, 0.1779831349849701, -0.1408446729183197, 0.011453013867139816, -0.041555095463991165, -0.2008642703294754, 0.16710670292377472, -0.11095438152551651, 0.42910701036453247, 0.08378784358501434, 0.1408139318227768, 0.0012189008994027972, -0.19624297320842743, 0.005824139341711998, -0.1290501058101654, -0.09774124622344971], "text": "Vector databases store embeddings and allow similarity search across large datasets."}, {"vector": [-0.021862491965293884, -0.04509294033050537, 0.3493245542049408, -0.16888874769210815, -0.15776929259300232, -0.3887435793876648, 0.4341474175453186, -0.18613114953041077, -0.2920360267162323, -0.050310228019952774, 0.24895799160003662, -0.08981029689311981, -0.33184948563575745, -0.6254408359527588, 0.209506556391716, 0.007473401725292206, -0.09669432044029236, 0.10888885706663132, 0.1686340719461441, -0.01998836174607277, 0.08063975721597672, 0.2816539406776428, 0.3756260275840759, -0.1809738427400589, 0.15019695460796356, -0.21601185202598572, 0.36125653982162476, -0.22897769510746002, -0.14575934410095215, -1.5490434169769287, 0.09878022223711014, -0.2626439034938812, -0.04524755850434303, -0.20201772451400757, -0.5224189162254333, 0.08146300911903381, -0.1284472942352295, 0.3417295515537262, 0.3373672366142273, 0.4409632086753845, 0.2817184329032898, -0.11476481705904007, 0.15405941009521484, -0.2696308195590973, -0.28058162331581116, -0.2402985692024231, 0.6578661203384399, 0.3088819980621338, -0.16969794034957886, 0.05234093964099884, 0.1124906986951828, -0.43054717779159546, 0.3432953953742981, -0.21013610064983368, 0.4231223464012146, 0.32938212156295776, 0.34108227491378784, 0.13615582883358002, -0.47946056723594666, 0.1729038655757904, -0.12834230065345764, 0.04229973256587982, -0.6440079212188721, 0.507292628288269, 0.17249330878257751, 0.22862392663955688, 0.7001348733901978, 0.042163994163274765, -0.4485917091369629, 0.2033817321062088, 0.011456530541181564, -0.044028639793395996, -0.4610421061515808, 0.47618821263313293, 0.16352006793022156, -0.6868115663528442, 0.4760594367980957, 0.11016117036342621, -0.11041989177465439, -0.493011474609375, -0.057869650423526764, 0.008146382868289948, -0.38575080037117004, -0.06002824008464813, -0.1609613299369812, -0.046964675188064575, 0.1807967871427536, 0.5433857440948486, -0.3148571848869324, -0.05949339270591736, -0.23888729512691498, 0.11008578538894653, 0.6267927289009094, 0.02206704393029213, 0.1363484114408493, 0.3382890224456787, -0.07274094969034195, -0.17319944500923157, -0.041734855622053146, 3.2432360649108887, 0.11000955104827881, -0.20507913827896118, 0.10576256364583969, -0.17520496249198914, 0.3939365744590759, -0.22684934735298157, -0.3317309319972992, -0.24571596086025238, 0.18384620547294617, -0.08421263098716736, 0.06352891772985458, 0.04438634216785431, 0.20022839307785034, -0.07730019092559814, -0.08307507634162903, 0.15370550751686096, -0.6827386617660522, 0.2868257761001587, 0.03682948648929596, 0.03590003401041031, -0.013602469116449356, 0.16625532507896423, 0.11971964687108994, -0.13713812828063965, 0.8928859829902649, -1.4316401481628418, 0.4747755825519562, -0.4797293245792389, 0.14166995882987976, -0.21065470576286316, 0.35929441452026367, 0.09177297353744507, 0.23403635621070862, -0.16317127645015717, -0.22108572721481323, 0.35644906759262085, -0.23362645506858826, 0.02012499049305916, 0.35626012086868286, 0.25615525245666504, 0.11195234209299088, -0.033300820738077164, -0.034625038504600525, -0.09189833700656891, 0.3853289484977722, -0.06824152171611786, -0.4312893748283386, 0.07751473039388657, 0.282594233751297, 0.02590852789580822, 0.12552793323993683, 0.3335632383823395, 0.3637467622756958, -0.6094323396682739, 0.3435189127922058, -0.24731549620628357, -0.17263874411582947, -0.5298709869384766, 0.48351725935935974, -0.28430259227752686, -0.1364523023366928, 0.010639716871082783, 0.04798014089465141, -0.1433534026145935, -0.24491223692893982, -0.013614237308502197, 0.2527027726173401, -0.3246009945869446, 0.06323951482772827, 0.09937329590320587, -0.44116002321243286, 0.3610827624797821, -0.17811238765716553, 0.12119276821613312, 0.14459143579006195, -0.465648889541626, 0.09302771091461182, -0.21605214476585388, -0.6208985447883606, -0.025678543373942375, 0.3213413953781128, -0.4564380645751953, -0.3382325768470764, -0.013634755276143551, 0.0986635684967041, 0.12406168133020401, -0.24707648158073425, -0.15905436873435974, -0.010349750518798828, -0.49534177780151367, -0.29858338832855225, -0.21179601550102234, -0.0034237848594784737, -0.04739004373550415, -0.35687172412872314, -0.08205671608448029, 0.5414026379585266, 0.25064173340797424, -0.34098851680755615, 0.12213392555713654, -0.032573290169239044, 0.3244650959968567, 0.25056925415992737, -0.2815527319908142, 0.34206074476242065, -0.44511324167251587, -0.024758612737059593, -0.44440004229545593, -0.21758830547332764, 0.3855785131454468, 0.091528981924057, 0.1998264193534851, -0.10640738904476166, 0.014864586293697357, 0.12396294623613358, 0.3053368031978607, 0.20490415394306183, 0.41601425409317017, -0.10708128660917282, -0.04221027344465256, 0.2557716369628906, -0.03645665571093559, -0.26614910364151, -1.0088281631469727, 0.050848253071308136, 0.31829139590263367, 0.023717466741800308, -0.0826483890414238, -0.1736774742603302, -0.08092620968818665, -0.0550512969493866, -0.3687739372253418, -0.11179966479539871, -0.13870668411254883, -0.21295097470283508, -0.11417841166257858, 0.3073068857192993, 0.03610251843929291, 0.2708117365837097, -0.3953824043273926, 0.03571511432528496, 0.13774287700653076, -0.1933862566947937, -0.04981640353798866, -0.12849685549736023, 0.30919671058654785, 0.25135111808776855, 0.08719654381275177, -0.25444889068603516, 0.595736563205719, -0.0883602648973465, 0.1806434690952301, -0.2759108543395996, -0.39070379734039307, 0.224406898021698, 0.2192932516336441, -0.24447733163833618, 0.13513705134391785, -0.48172688484191895, 0.21406129002571106, -0.06020664423704147, -0.5444986820220947, 0.06783116608858109, -0.02359822951257229, -0.16552852094173431, 1.49488914757967e-05, -0.405243456363678, 0.3856768012046814, -0.12340870499610901, -0.27189576625823975, -0.15935373306274414, 0.10770630836486816, -0.2312978059053421, -0.06778087466955185, 0.07057526707649231, 0.09620914608240128, 0.6557589769363403, 0.027554403990507126, -0.05926015228033066, 0.08069449663162231, -0.20464889705181122, -0.13992764055728912, 0.2272743284702301, -0.1446085274219513, -0.1342461258172989, -0.28697195649147034, -0.4157615303993225, 0.06249621510505676, -0.07197915017604828, 0.05053504556417465, -0.6340135335922241, 0.07939907908439636, -0.30867278575897217, -0.33745354413986206, -0.21766243875026703, -0.35780471563339233, 0.354398638010025, 0.2685141861438751, 0.13066786527633667, 0.02992166578769684, 0.45550858974456787, 0.0601666122674942, -0.0754445344209671, -0.002321692183613777, 0.2854607105255127, -0.2486979365348816, -0.022780410945415497, 0.030142366886138916, -0.08349993824958801, 0.2713535726070404, -0.601421058177948, -0.20315271615982056, 0.01893290877342224, 0.33322393894195557, 0.5813261270523071, 0.43315815925598145, -0.15748395025730133, -0.047722216695547104, 0.36475491523742676, -0.6974359750747681, -0.4116056263446808, 0.41870713233947754, 0.12044023722410202, -0.27785006165504456, -0.023688260465860367, 0.11555813252925873, 0.2581155002117157, 0.5086054801940918, 0.5836279392242432, 0.289770245552063, -0.30048245191574097, 0.18223080039024353, 0.10557769984006882, 0.018856467679142952, 0.2231369912624359, 0.0811244323849678, -0.43313658237457275, -0.5250324606895447, 0.32621920108795166, -0.24684730172157288, 0.06421350687742233, 0.5441418886184692, 0.09667681157588959, -0.1644243448972702, -0.4182037115097046, -0.2542712390422821, 0.45563197135925293, -0.39620155096054077, -0.029702913016080856, 0.017202476039528847, -0.4201319217681885, -0.2686408758163452, 0.49046164751052856, 0.12805937230587006, 0.005794192664325237, -0.4681876301765442, 0.28627336025238037, -0.10843895375728607, 0.2675591707229614, -0.3850231468677521, 0.027374207973480225, -0.2439250946044922, -0.14950145781040192, 0.16349154710769653, 0.2566799223423004, -0.35681694746017456, 0.22544822096824646, 0.015191733837127686, 0.09814822673797607, 0.33348971605300903, -0.02294551208615303, -0.300523579120636, 0.2879987359046936, 0.26512250304222107, -0.15868154168128967, 0.1349414885044098, 0.16823270916938782, -0.2561686635017395, -0.5263700485229492, -0.08851249516010284, 0.18364782631397247, 0.06663644313812256, 0.40657854080200195, -0.17752346396446228], "text": ""}, {"vector": [-0.3443962633609772, -0.3746654987335205, -0.34079065918922424, 0.37260702252388, -0.5013810396194458, 0.034388620406389236, 0.26054027676582336, -0.25253260135650635, 0.41913294792175293, 0.14108648896217346, 0.36997365951538086, 0.052151381969451904, 0.258165568113327, -0.14992307126522064, 0.1975373774766922, 0.37883830070495605, -0.06570839136838913, 0.34642818570137024, -0.21678471565246582, -0.2696506083011627, 0.10986974090337753, -0.3247116208076477, 0.04393990337848663, -0.409645676612854, 0.669562578201294, 0.2296069860458374, 0.3894912302494049, 0.08872395753860474, -0.05989108607172966, 0.13073140382766724, 0.176258847117424, -0.07317142933607101, -0.3135319650173187, -0.14386774599552155, 0.42622971534729004, 0.10331189632415771, 0.024603359401226044, -0.28824591636657715, 0.2565520405769348, 0.22325921058654785, -0.21484188735485077, 0.15438316762447357, 0.22995316982269287, 0.17091698944568634, 0.2097359448671341, -0.4746260941028595, -0.15067905187606812, -0.0071151903830468655, 0.07840679585933685, -0.09611179679632187, -0.044240910559892654, -0.04118393361568451, -0.5017544627189636, 0.0419270284473896, 0.06962715089321136, 0.2363610863685608, -0.19859091937541962, 0.1739673614501953, 0.0864877924323082, -0.04257016256451607, -0.49966809153556824, 0.16085460782051086, -0.07469181716442108, 0.2511846423149109, -0.47713080048561096, 0.2026612013578415, -0.1259290724992752, -0.16027627885341644, -0.09971802681684494, -0.2142428159713745, 0.0065969969145953655, 0.18816085159778595, 0.05549544095993042, 0.0879034623503685, 0.30198004841804504, 0.09514115005731583, 0.04376455023884773, -0.1983768790960312, -0.6525295376777649, 0.03370709717273712, 0.14972735941410065, -0.04337374493479729, 0.0014890792081132531, -0.16183461248874664, 0.0028942276258021593, 0.3414175510406494, 0.09835980087518692, 0.002601516665890813, -0.0025334234815090895, 0.0019226111471652985, -0.02539517916738987, 0.12602485716342926, 0.25817692279815674, -0.41355499625205994, -0.006659043487161398, -0.025704002007842064, 0.17579825222492218, 0.15183214843273163, 0.19336242973804474, 0.4375249445438385, -0.5647220611572266, -0.22323445975780487, 0.46521687507629395, -0.10591024160385132, 0.0900408923625946, -0.08709314465522766, -0.1773713380098343, 0.3847809135913849, 0.11916553974151611, -0.08629793673753738, 0.28975972533226013, -0.2411481887102127, -0.1676279455423355, -0.3561140298843384, -0.3443206548690796, -0.13861696422100067, -0.6124403476715088, -0.11706385761499405, 0.19285349547863007, 0.4694153070449829, 0.4616025686264038, -0.4088028371334076, 0.25663474202156067, 0.36438360810279846, 0.028000740334391594, -0.10760033875703812, 0.1730145663022995, -0.05750684067606926, -0.08840631693601608, -0.2404266595840454, -0.022915052250027657, 0.005882213357836008, 0.39719536900520325, 0.028128644451498985, 0.2098558098077774, -0.1057533547282219, -0.0036515891551971436, -0.47680458426475525, -0.19866330921649933, 0.47817274928092957, -0.22606205940246582, 0.6976615786552429, -0.10807093232870102, 0.09495703130960464, -0.12421959638595581, 0.09444350749254227, 0.05966823175549507, -0.10728204250335693, -0.1690794974565506, -0.06467444449663162, -0.05633251741528511, -0.07901230454444885, 0.28122207522392273, 0.14295147359371185, 0.018935998901724815, 0.3281491696834564, 0.3010680377483368, 0.16899125277996063, -0.05362531170248985, -0.19569282233715057, -0.28740444779396057, 0.19505132734775543, 0.01611196994781494, 0.32964619994163513, -0.30075159668922424, -0.39558830857276917, 0.24974744021892548, -0.3713139593601227, -0.48153257369995117, 0.15071329474449158, 0.06277597695589066, 0.05354481562972069, -0.704399585723877, -0.23721559345722198, -0.3091531991958618, 0.16331040859222412, 0.09361664205789566, 0.1070840060710907, 0.05562390014529228, 0.10942038148641586, -0.2247719168663025, -0.17762242257595062, -0.29206404089927673, -0.10157807916402817, -0.2576255798339844, -0.08745276927947998, -0.1563708335161209, 0.22356538474559784, -0.24580419063568115, 0.3609284460544586, 0.17348207533359528, 0.19956140220165253, 0.26592817902565, -0.08440884947776794, -0.2708955705165863, -0.12397503852844238, 0.08845796436071396, 0.11997073888778687, -0.3400900363922119, 0.13054823875427246, -0.05390405282378197, -0.1590975970029831, -0.08232530206441879, 0.012026439420878887, -0.2627478539943695, -0.17007552087306976, 0.06035931780934334, 0.028426406905055046, -0.09447041898965836, 0.31452929973602295, 0.18829284608364105, 0.22300003468990326, 0.22082704305648804, 0.469181090593338, 0.2057141810655594, -0.08365441113710403, 0.10739630460739136, -0.08570583909749985, -0.5863717198371887, -0.044754546135663986, -0.14688082039356232, -0.3148132860660553, 0.6041494011878967, -0.11000653356313705, 0.019770054146647453, -0.23476243019104004, 0.3055577576160431, -0.08878640085458755, -0.302295982837677, 0.02654246799647808, 0.08079969882965088, -0.08436951786279678, -0.1144266203045845, -0.1526682823896408, 0.23741531372070312, 0.2521093487739563, -0.2015952318906784, -0.09032147377729416, 0.15663085877895355, 0.1736360341310501, -0.14005108177661896, 0.39568111300468445, -0.0925086960196495, 0.35167089104652405, -0.14671260118484497, -0.5588217377662659, -0.14971280097961426, -0.07097258418798447, -0.044600505381822586, 0.1120421290397644, 0.1152620017528534, -0.6932187080383301, 0.5114389061927795, 0.13263444602489471, -0.17992420494556427, -0.16713939607143402, -0.1254565715789795, 0.43162861466407776, -0.10542935878038406, -0.03842645883560181, 0.3730746805667877, 0.500789225101471, 0.39171433448791504, 0.06741897016763687, -0.11746516078710556, -0.132090762257576, -0.439585417509079, 0.08023249357938766, -0.2943451702594757, 0.1151784360408783, -0.49432823061943054, 0.5931181907653809, 0.019003888592123985, 0.02889811061322689, 0.6256051659584045, -0.03718772903084755, -0.11602563410997391, -0.3034364879131317, 0.12989069521427155, -0.023623652756214142, 0.10925593972206116, 0.0987708643078804, -0.26895779371261597, -0.13328798115253448, 0.1005912646651268, -0.33256950974464417, -0.08532118052244186, -0.2777350842952728, 0.3309100270271301, -0.18710239231586456, -0.3823145627975464, -0.38885533809661865, -0.39539554715156555, 0.2317364364862442, 0.07479541748762131, -0.19356580078601837, 0.346433162689209, 0.04419197514653206, 0.41633936762809753, -0.2173100858926773, -0.20707495510578156, -0.22588689625263214, 0.0011983352014794946, 0.07746272534132004, -0.3361509144306183, 0.10775366425514221, 0.03716709837317467, -0.11737177520990372, -0.04320431873202324, 0.14877398312091827, -0.24928660690784454, -0.20389871299266815, 0.008485940285027027, 0.5131248235702515, 0.07160261273384094, 0.39231622219085693, 0.0712023600935936, 0.13162581622600555, -0.6131077408790588, -0.42788979411125183, -0.18065907061100006, 0.06861136853694916, 0.18214558064937592, -0.25762084126472473, -0.07974610477685928, -0.000616690143942833, -0.07904037833213806, 0.2915641665458679, 0.06174415349960327, -0.3751034438610077, -0.2893455922603607, -0.11874979734420776, -0.21030084788799286, 0.07260162383317947, -0.46585312485694885, 0.20048010349273682, -0.08993065357208252, -0.1047741174697876, -0.08791423588991165, -0.1421363800764084, -0.19362615048885345, -0.25206100940704346, 0.14500391483306885, -0.12489499896764755, 0.006909530609846115, -0.011158783920109272, -0.12858927249908447, 0.5202271938323975, 0.47912928462028503, -0.549166738986969, 0.17805737257003784, 0.3408104479312897, 0.36090075969696045, -0.17597395181655884, 0.10274404287338257, -0.1681554913520813, 0.42064425349235535, -0.0009640355710871518, -0.0979418158531189, -0.2839926779270172, 0.3135310411453247, 0.34545984864234924, -0.128525972366333, 0.21919892728328705, 0.24793316423892975, 0.09106013178825378, 0.2612796723842621, -0.2830142676830292, -0.2581486105918884, 0.1530100256204605, -0.29330718517303467, -0.07333963364362717, 0.06284376233816147, -0.3231019973754883, 0.3219347894191742, -0.13675883412361145, 0.11159113794565201, 0.04031027480959892, 0.1411704272031784, 0.15225981175899506, 0.5131902098655701, 0.10074257850646973, -0.0563281774520874, 0.12888406217098236], "text": "Retrieval Augmented Generation combines document retrieval with language models."}] \ No newline at end of file