diff --git a/.github/workflows/examples-test.yml b/.github/workflows/examples-test.yml
index b437aea6..31bb01e2 100644
--- a/.github/workflows/examples-test.yml
+++ b/.github/workflows/examples-test.yml
@@ -46,7 +46,7 @@ jobs:
run: |
for folder in *; do
echo "$folder";
- if [[ $folder == multimodal_clip ]]; then
+ if [[ $folder == multimodal_clip_diffusiondb ]]; then
continue
fi
if [ ! -f "$folder"/test.py ]; then
@@ -59,7 +59,7 @@ jobs:
echo "$file";
python -m pip install -r "$file";
pip uninstall lancedb -y
- pip install "lancedb @ git+https://github.com/lancedb/lancedb.git#egg=subdir&subdirectory=python"
+ pip install lancedb
fi
done
for file in *; do
@@ -129,6 +129,7 @@ jobs:
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
+ npm install @lancedb/vectordb-linux-x64-gnu
for d in *; do
if [[ $d == *.js ]]; then
echo "$d";
diff --git a/README.md b/README.md
index 092cb1ae..ec240e4e 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,8 @@ This repository contains examples, applications, starter code, & tutorials to he
- It **integrates into python data ecosystem** so you can simply start using these in your existing data pipelines in pandas, arrow, pydantic etc.
- LanceDB has **native Typescript SDK** using which you can **run vector search** in serverless functions!
-
+
+
Join our community for support - Discord •
Twitter
@@ -31,34 +32,39 @@ If you're looking for in-depth tutorial-like examples, checkout the [tutorials](
| Example | Notebook & Scripts | Read The Blog! |
|-------- | ------------- | ------------- |
| | | |
-| [Youtube transcript search bot](/examples/Youtube-Search-QA-Bot/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/Youtube-Search-QA-Bot/main.py) [![JS](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E)](./examples/Youtube-Search-QA-Bot/index.js) [![LLM](https://img.shields.io/badge/openai-api-white)](#)||
-| [Langchain: Code Docs QA bot](/examples/Code-Documentation-QA-Bot/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/Code-Documentation-QA-Bot/main.py) [![JS](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E)](./examples/Code-Documentation-QA-Bot/index.js)[![LLM](https://img.shields.io/badge/openai-api-white)](#)||
-| [AI Agents: Reducing Hallucination](/examples/reducing_hallucinations_ai_agents/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/reducing_hallucinations_ai_agents/main.py) [![JS](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E)](./examples/reducing_hallucinations_ai_agents/index.js)[![LLM](https://img.shields.io/badge/openai-api-white)](#)| [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/how-to-reduce-hallucinations-from-llm-powered-agents-using-long-term-memory-72f262c3cc1f)|
-| [Multimodal CLIP: DiffusionDB](/examples/multimodal_clip_diffusiondb/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/multimodal_clip_diffusiondb/main.py) [![LLM](https://img.shields.io/badge/local-llm-green)](#)| [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://medium.com/etoai/multi-modal-ai-made-easy-with-lancedb-clip-5aaf8801c939)|
-| [Multimodal CLIP: Youtube videos](/examples/multimodal_video_search/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/multimodal_video_search/main.py) [![LLM](https://img.shields.io/badge/local-llm-green)](#) |[![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://medium.com/etoai/multi-modal-ai-made-easy-with-lancedb-clip-5aaf8801c939)|
-| [Multimodal Image + Text Search](/examples/multimodal_search/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/multimodal_search/main.py) [![LLM](https://img.shields.io/badge/local-llm-green)](#)| [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://medium.com/etoai/multi-modal-ai-made-easy-with-lancedb-clip-5aaf8801c939) |
-| [TransformersJS Embedding example](./examples/js-transformers/) |[![JS](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E)](./examples/js-transformers/index.js) [![LLM](https://img.shields.io/badge/local-llm-green)](#) | |
-| [Movie Recommender](/examples/movie-recommender/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/movie-recommender/main.py)| |
-| [Product Recommender](./examples/product-recommender/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/product-recommender/main.py) | |
-| [Audio Search](./examples/audio_search/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/audio_search/main.py) [![LLM](https://img.shields.io/badge/local-llm-green)](#) | |
-| [Arxiv paper recommender](/examples/arxiv-recommender) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/arxiv-recommender/main.py) [![LLM](https://img.shields.io/badge/local-llm-green)](#) | |
-| [Multi-lingual search](/examples/multi-lingual-wiki-qa) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](.examples/multi-lingual-wiki-qa/main.py) [![LLM](https://img.shields.io/badge/cohere-api-pink)](#) | |
-| [Instruct-Multitask](./examples/instruct-multitask) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](.examples/instruct-multitask/main.py) [![LLM](https://img.shields.io/badge/local-llm-green)](#) | [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/multitask-embedding-with-lancedb-be18ec397543)|
-| [Improve RAG with Re-ranking](/examples/RAG_re_ranking/) | [![LLM](https://img.shields.io/badge/local-llm-green)](#) |[![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/simplest-method-to-improve-rag-pipeline-re-ranking-cf6eaec6d544)|
-| [Improve RAG with FLARE](/examples/Advanced-RAG-with-FLARE) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](.examples/instruct-multitask/main.py) [![LLM](https://img.shields.io/badge/openai-api-white)](#) | [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/better-rag-with-active-retrieval-augmented-generation-flare-3b66646e2a9f)|
-| [Improve RAG with HyDE](/examples/Advance-RAG-with-HyDE/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#)|[![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/advanced-rag-precise-zero-shot-dense-retrieval-with-hyde-0946c54dfdcb)|
-| [Improve RAG with LOTR ](/examples/Advance_RAG_LOTR/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#) |[![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/better-rag-with-lotr-lord-of-retriever-23c8336b9a35)|
-| [Advanced RAG: Parent Document Retriever](/examples/parent_document_retriever/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#)|[![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/modified-rag-parent-document-bigger-chunk-retriever-62b3d1e79bc6)|
-| [RAG Fusion](/examples/RAG_Fusion/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#)|
-| [Hybrid search BM25 & lancedb ](./examples/Hybrid_search_bm25_lancedb/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#)|[![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/hybrid-search-combining-bm25-and-semantic-search-for-better-results-with-lan-1358038fe7e6)|
-| [Evaluating Prompts with Prompttools](/examples/prompttools-eval-prompts/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![local LLM](https://img.shields.io/badge/local-llm-green)](#)| |
-| [NER powered with Semantic Search](/tutorials/NER-powered-Semantic-Search/) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/NER-powered-Semantic-Search/NER_powered_Semantic_Search_with_LanceDB.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) | [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/ner-powered-semantic-search-using-lancedb-51051dc3e493)|
-[Sentiment Analysis : Analysing Hotel Reviews](/examples/Sentiment-Analysis-Analyse-Hotel-Reviews/) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/examples/Sentiment-Analysis-Analyse-Hotel-Reviews/Sentiment_Analysis_using_LanceDB.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) | [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/sentiment-analysis-using-lancedb-2da3cb1e3fa6)|
-| [Facial Recognition](./examples/facial_recognition) | |
-| [Accelerate Vector Search Applications Using OpenVINO](/tutorials/Accelerate-Vector-Search-Applications-Using-OpenVINO/) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/Accelerate-Vector-Search-Applications-Using-OpenVINO/clip_text_image_search.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#)| [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/accelerate-vector-search-applications-using-openvino-51366eabf866)|
-| [Search Within Images](/examples/Contextual-Compression-with-RAG/) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/examples/search-within-images-with-sam-and-clip/main.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) |[![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/search-within-an-image-331b54e4285e)|
-| [Contextual-Compression-with-RAG](/examples/Contextual-Compression-with-RAG/) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/examples/Contextual-Compression-with-RAG/main.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) |[![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://medium.com/etoai/enhance-rag-integrate-contextual-compression-and-filtering-for-precision-a29d4a810301) |
-| [Imagebind demo app](/examples/imagebind_demo/) | |
+| [Youtube transcript search bot](/examples/Youtube-Search-QA-Bot/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/Youtube-Search-QA-Bot/main.py) [![JS](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E)](./examples/Youtube-Search-QA-Bot/index.js) [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)||
+| [Langchain: Code Docs QA bot](/examples/Code-Documentation-QA-Bot/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/Code-Documentation-QA-Bot/main.py) [![JS](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E)](./examples/Code-Documentation-QA-Bot/index.js) [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)||
+| [Databricks DBRX Website Bot](./examples/databricks_DBRX_website_bot/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/databricks_DBRX_website_bot/main.py) [![Databricks LLM](https://img.shields.io/badge/databricks-api-red)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)|
+| [CLI-based SDK Manual Chatbot with Phidata](/examples/CLI-SDK-Manual-Chatbot-Locally/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/CLI-SDK-Manual-Chatbot-Locally/assistant.py) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)|
+| [TransformersJS Embedding example](./examples/js-transformers/) |[![JS](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E)](./examples/js-transformers/index.js) [![LLM](https://img.shields.io/badge/local-llm-green)](#) [![advanced](https://img.shields.io/badge/advanced-FF3333)](#)| |
+| [Inbuilt Hybrid Search](/examples/Inbuilt-Hybrid-Search) | [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)||
+| [Audio Search](./examples/audio_search/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/audio_search/main.py) [![LLM](https://img.shields.io/badge/local-llm-green)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)| |
+| [Multi-lingual search](/examples/multi-lingual-wiki-qa) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/multi-lingual-wiki-qa/main.py) [![LLM](https://img.shields.io/badge/cohere-api-pink)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)| |
+| [Hybrid search BM25 & lancedb ](./examples/Hybrid_search_bm25_lancedb/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)|[![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/hybrid-search-combining-bm25-and-semantic-search-for-better-results-with-lan-1358038fe7e6)|
+| [Search Within Images](/examples/search-within-images-with-sam-and-clip/) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/examples/search-within-images-with-sam-and-clip/main.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/search-within-an-image-331b54e4285e)|
+| [Accelerate Vector Search Applications Using OpenVINO](/examples/Accelerate-Vector-Search-Applications-Using-OpenVINO/) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/examples/Accelerate-Vector-Search-Applications-Using-OpenVINO/clip_text_image_search.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) [![advanced](https://img.shields.io/badge/advanced-FF3333)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/accelerate-vector-search-applications-using-openvino-lancedb/)|
+| [Multimodal CLIP: DiffusionDB](/examples/multimodal_clip_diffusiondb/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/multimodal_clip_diffusiondb/main.py) [![LLM](https://img.shields.io/badge/local-llm-green)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/multi-modal-ai-made-easy-with-lancedb-clip-5aaf8801c939/)|
+| [Multimodal CLIP: Youtube videos](/examples/multimodal_video_search/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/multimodal_video_search/main.py) [![LLM](https://img.shields.io/badge/local-llm-green)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)|[![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/multi-modal-ai-made-easy-with-lancedb-clip-5aaf8801c939/)|
+| [Multimodal Image + Text Search](/examples/multimodal_search/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/multimodal_search/main.py) [![LLM](https://img.shields.io/badge/local-llm-green)](#) [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/multi-modal-ai-made-easy-with-lancedb-clip-5aaf8801c939/)|
+| [Movie Recommender](/examples/movie-recommender/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/movie-recommender/main.py) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)| |
+| [Product Recommender](./examples/product-recommender/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/product-recommender/main.py)[![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)| |
+| [Arxiv paper recommender](/examples/arxiv-recommender) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/arxiv-recommender/main.py) [![LLM](https://img.shields.io/badge/local-llm-green)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)| |
+| [Improve RAG with Re-ranking](/examples/RAG_Reranking/) | [![LLM](https://img.shields.io/badge/local-llm-green)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)|[![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/simplest-method-to-improve-rag-pipeline-re-ranking-cf6eaec6d544)|
+| [Improve RAG with FLARE](/examples/Advanced-RAG-with-FLARE) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/Advanced-RAG-with-FLARE/app.py) [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/better-rag-with-active-retrieval-augmented-generation-flare-3b66646e2a9f)|
+| [Improve RAG with HyDE](/examples/Advance-RAG-with-HyDE/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)|[![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/advanced-rag-precise-zero-shot-dense-retrieval-with-hyde-0946c54dfdcb)|
+| [Improve RAG with LOTR ](/examples/Advance_RAG_LOTR/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)|[![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/better-rag-with-lotr-lord-of-retriever-23c8336b9a35)|
+| [Advanced RAG: Parent Document Retriever](/examples/parent_document_retriever/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)|[![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/modified-rag-parent-document-bigger-chunk-retriever-62b3d1e79bc6)|
+| [Query Expansion and Reranker ](/examples/QueryExpansion&Reranker/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![advanced](https://img.shields.io/badge/advanced-FF3333)](#)|[![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/improving-rag-with-query-expansion-reranking-models/)|
+| [RAG Fusion](/examples/RAG_Fusion/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![advanced](https://img.shields.io/badge/advanced-FF3333)](#)|
+| [Contextual-Compression-with-RAG](/examples/Contextual-Compression-with-RAG/) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/examples/Contextual-Compression-with-RAG/main.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)|[![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/enhance-rag-integrate-contextual-compression-and-filtering-for-precision-a29d4a810301/) |
+| [Instruct-Multitask](./examples/instruct-multitask) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/instruct-multitask/main.py) [![LLM](https://img.shields.io/badge/local-llm-green)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)|[![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/multitask-embedding-with-lancedb-be18ec397543)|
+| [Evaluating Prompts with Prompttools](/examples/prompttools-eval-prompts/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) [![advanced](https://img.shields.io/badge/advanced-FF3333)](#)| |
+| [AI Agents: Reducing Hallucination](/examples/reducing_hallucinations_ai_agents/) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./examples/reducing_hallucinations_ai_agents/main.py) [![JS](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E)](./examples/reducing_hallucinations_ai_agents/index.js) [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![advanced](https://img.shields.io/badge/advanced-FF3333)](#) |[![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/how-to-reduce-hallucinations-from-llm-powered-agents-using-long-term-memory-72f262c3cc1f/)|
+| [AI Trends Searcher with CrewAI](./examples/AI-Trends-with-CrewAI/) | [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)|[![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/track-ai-trends-crewai-agents-rag/)|
+| [SuperAgent Autogen](/examples/SuperAgent_Autogen) | [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)||
+[Sentiment Analysis : Analysing Hotel Reviews](/examples/Sentiment-Analysis-Analyse-Hotel-Reviews/) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/examples/Sentiment-Analysis-Analyse-Hotel-Reviews/Sentiment_Analysis_using_LanceDB.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/sentiment-analysis-using-lancedb-2da3cb1e3fa6)|
+| [Facial Recognition](./examples/facial_recognition) | [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)|
+| [Imagebind demo app](/examples/imagebind_demo/) | [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)|
@@ -69,32 +75,40 @@ These are ready to use applications built using LanceDB serverless vector databa
|-----------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|-------------------------------------------|
| [YOLOExplorer](https://github.com/lancedb/yoloexplorer) | Iterate on your YOLO / CV datasets using SQL, Vector semantic search, and more within seconds | ![YOLOExplorer](https://github.com/lancedb/vectordb-recipes/assets/15766192/ae513a29-8f15-4e0b-99a1-ccd8272b6131) |
| [Website Chatbot (Deployable Vercel Template)](https://github.com/lancedb/lancedb-vercel-chatbot) | Create a chatbot from the sitemap of any website/docs of your choice. Built using vectorDB serverless native javascript package. | ![Chatbot](assets/vercel-template.gif) |
-| [Multi-Modal Search Engine](https://github.com/lancedb/vectordb-recipes/tree/rf/applications/multimodal-search) | Create a Multi-modal search engine app, to search images using both images or text | ![Search](https://github.com/lancedb/vectordb-recipes/assets/15766192/9805fec8-da72-44c0-be12-ddbe1c2d6afc)|
| [ Chat with multiple URL/website ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/chat_with_anywebsite/) | Conversational AI for Any Website with Mistral,Bge Embedding & LanceDB |![webui_aa](https://github.com/akashAD98/vectordb-recipes/assets/62583018/47a9af87-2d94-4fd8-afa1-373db03bd728) |
-| [ Hr chatbot ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/HR_chatbot/) | Hr chatbot - ask your personal query using zero-shot React agent & tools |![image](https://github.com/akashAD98/vectordb-recipes/assets/62583018/0ea78428-44be-4bff-874b-79b1fcc3b7d6)|
| [ Talk with Youtube Video using GPT4 Vision API ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/talk-with-youtube-gpt4-vision-api/) | Talk with Youtube Video using GPT4 Vision API and Langchain |![demo](./assets/talk-using-gpt4v.gif) |
| [ Talk with Podcast ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/talk-with-podcast) | Talk with Youtube Podcast using Ollama and insanely-fast-whisper | ![demo](./assets/talk-with-podcast.gif)|
| [ Talk with Wikipedia ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/talk-with-wikipedia) | Talk with Wikipedia Pages | ![demo](./assets/talk-with-wikipedia.gif)|
| [ Talk with Github ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/talk-with-github) | Talk with Github Codespaces using Qwen1.5 | ![demo](./assets/talk-with-github.gif)|
-| [ Document Chat with Langroid ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/docchat-with-langroid) | Talk with your Documents using Langroid | ![demo](./assets/document-chat-langroid.png)|
-| [ Fastapi RAG template ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/Chatbot_RAG_with_FASTAPI) | FastAPI based RAG template with Websocket support | ![image](./assets/chatbot_fastapi.png)|
-| [ GTE MLX RAG ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/GTE_mlx_RAG/CLI_example.ipynb) | mlx based RAG model using lancedb api support | ![image](./assets/apple_mlx.png)|
+| [ Document Chat with Langroid ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/docchat-with-langroid) | Talk with your Documents using Langroid | ![demo](https://github.com/lancedb/vectordb-recipes/assets/5846846/e55c45a3-b5b0-478b-bf77-290c0d69daae)|
+| [ Hr chatbot ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/HR_chatbot/) | Hr chatbot - ask your personal query using zero-shot React agent & tools |![image](https://github.com/akashAD98/vectordb-recipes/assets/62583018/0ea78428-44be-4bff-874b-79b1fcc3b7d6)|
+| [Advanced Chatbot with Parler TTS ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/Chatbot_with_Parler_TTS) | This Chatbot app uses Lancedb Hybrid search, FTS & reranker method with Parlers TTS library.|![image](./assets/chatbot_tts.png)|
+| [Multi-Modal Search Engine](https://github.com/lancedb/vectordb-recipes/tree/rf/applications/multimodal-search) | Create a Multi-modal search engine app, to search images using both images or text | ![Search](https://github.com/lancedb/vectordb-recipes/assets/15766192/9805fec8-da72-44c0-be12-ddbe1c2d6afc)|
+| [Multimodal Myntra Fashion Search Engine](https://github.com/ishandutta0098/lancedb-multimodal-myntra-fashion-search-engine) | This app uses OpenAI's CLIP to make a search engine that can understand and deal with both written words and pictures.|![image](./assets/myntra-search-engine.png)|
| [Multilingual-RAG](https://github.com/lancedb/vectordb-recipes/tree/main/applications/Multilingual_RAG/) | Multilingual RAG with cohere embedding & support 100+ languages|![image](https://github.com/akashAD98/vectordb-recipes/assets/62583018/be65eb39-25c4-4441-98fc-6ded09689819)|
+| [ Fastapi RAG template ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/Chatbot_RAG_with_FASTAPI) | FastAPI based RAG template with Websocket support | ![image](./assets/chatbot_fastapi.png)|
+| [ GTE MLX RAG ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/GTE_mlx_RAG) | mlx based RAG model using lancedb api support | ![image](./assets/rag-mlx.png)|
+| [ Healthcare Chatbot ](https://github.com/lancedb/vectordb-recipes/tree/main/applications/Healthcare_chatbot/) | Healthcare chatbot using domain specific LLM & Embedding model | ![image](./assets/chatbot_medical.png)|
+
+
## Tutorials
Looking to get started with LLMs, vectorDBs, and the world of Generative AI? These in-depth tutorials and courses cover these concepts with practical follow along colabs where possible.
| Tutorial | Interactive Environment | Blog Link |
| --------- | -------------------------- | ----------- |
| | | |
-| [Corrective RAG with Langgraph](./tutorials/Corrective-RAG-with_Langgraph/) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/Corrective-RAG-with_Langgraph/CRAG_with_Langgraph.ipynb) [![LLM](https://img.shields.io/badge/openai-api-white)](#) | |
-| [Product Quantization: Compress High Dimensional Vectors](https://blog.lancedb.com/product-quantization-compress-high-dimensional-vectors-dfcba98fab47) | | [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/product-quantization-compress-high-dimensional-vectors-dfcba98fab47) |
-| [LLMs, RAG, & the missing storage layer for AI](https://medium.com/etoai/llms-rag-the-missing-storage-layer-for-ai-28ded35fa984) | | [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://medium.com/etoai/llms-rag-the-missing-storage-layer-for-ai-28ded35fa984) |
-| [Fine-Tuning LLM using PEFT & QLoRA](./tutorials/fine-tuning_LLM_with_PEFT_QLoRA) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/fine-tuning_LLM_with_PEFT_QLoRA/main.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#)| [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/optimizing-llms-a-step-by-step-guide-to-fine-tuning-with-peft-and-qlora-22eddd13d25b) |
-| [Context-Aware Chatbot using Llama 2 & LanceDB](./tutorials/chatbot_using_Llama2_&_lanceDB) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/chatbot_using_Llama2_&_lanceDB/main.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#)| [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/context-aware-chatbot-using-llama-2-lancedb-as-vector-database-4d771d95c755) |
-| [A Primer on Text Chunking and its Types](./tutorials/different-types-text-chunking-in-RAG) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/different-types-text-chunking-in-RAG/Text_Chunking_on_RAG_application_with_LanceDB.ipynb) | [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/a-primer-on-text-chunking-and-its-types-a420efc96a13) |
-| [NER powered Semantic Search](./tutorials/NER-powered-Semantic-Search) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/NER-powered-Semantic-Search/NER_powered_Semantic_Search_with_LanceDB.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#)| [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://medium.com/etoai/ner-powered-semantic-search-using-lancedb-51051dc3e493) |
-| [Better RAG with FLARE](./tutorials/better-rag-FLAIR) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/better-rag-FLAIR/main.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) [![LLM](https://img.shields.io/badge/openai-api-white)](#)|[![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://medium.com/@aksdesai1998/better-rag-enhancing-ai-with-active-retrieval-augmented-generation-flare-3b66646e2a9f) |
-| [Accelerate Vector Search Applications Using OpenVINO](./tutorials/Sentiment-Analysis-using-LanceDB) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/Accelerate-Vector-Search-Applications-Using-OpenVINO/clip_text_image_search.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#)| [![Medium](https://img.shields.io/badge/Medium-12100E?style=for-the-badge&logo=medium&logoColor=white)](https://blog.lancedb.com/accelerate-vector-search-applications-using-openvino-51366eabf866)|
+| [Build RAG from Scratch](./tutorials/RAG-from-Scratch) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/RAG-from-Scratch/RAG_from_Scratch.ipynb) [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)| |
+| [Local RAG from Scratch with Llama3](./tutorials/Local-RAG-from-Scratch) | [![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](./tutorials/Local-RAG-from-Scratch/rag.py) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)| |
+| [A Primer on Text Chunking and its Types](./tutorials/different-types-text-chunking-in-RAG) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/different-types-text-chunking-in-RAG/Text_Chunking_on_RAG_application_with_LanceDB.ipynb) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/a-primer-on-text-chunking-and-its-types-a420efc96a13) |
+| [Langchain LlamaIndex Chunking](./tutorials/Langchain-LlamaIndex-Chunking) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/Langchain-LlamaIndex-Chunking/Langchain_Llamaindex_chunking.ipynb) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/chunking-techniques-with-langchain-and-llamaindex/) |
+| [Comparing Cohere Rerankers with LanceDB](./tutorials/cohere-reranker) | [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/benchmarking-cohere-reranker-with-lancedb/) |
+| [NER powered Semantic Search](./tutorials/NER-powered-Semantic-Search) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/NER-powered-Semantic-Search/NER_powered_Semantic_Search_with_LanceDB.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) [![beginner](https://img.shields.io/badge/beginner-B5FF33)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/ner-powered-semantic-search-using-lancedb-51051dc3e493) |
+| [Product Quantization: Compress High Dimensional Vectors](https://blog.lancedb.com/benchmarking-lancedb-92b01032874a-2/) |[![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#) | [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/benchmarking-lancedb-92b01032874a-2/) |
+| [Corrective RAG with Langgraph](./tutorials/Corrective-RAG-with_Langgraph/) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/Corrective-RAG-with_Langgraph/CRAG_with_Langgraph.ipynb) [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/implementing-corrective-rag-in-the-easiest-way-2/)|
+| [LLMs, RAG, & the missing storage layer for AI](https://blog.lancedb.com/llms-rag-the-missing-storage-layer-for-ai-28ded35fa984) | [![intermediate](https://img.shields.io/badge/intermediate-FFDA33)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/llms-rag-the-missing-storage-layer-for-ai-28ded35fa984/) |
+| [Fine-Tuning LLM using PEFT & QLoRA](./tutorials/fine-tuning_LLM_with_PEFT_QLoRA) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/fine-tuning_LLM_with_PEFT_QLoRA/main.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) [![advanced](https://img.shields.io/badge/advanced-FF3333)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/optimizing-llms-a-step-by-step-guide-to-fine-tuning-with-peft-and-qlora-22eddd13d25b) |
+| [Context-Aware Chatbot using Llama 2 & LanceDB](./tutorials/chatbot_using_Llama2_&_lanceDB) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/chatbot_using_Llama2_&_lanceDB/main.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) [![advanced](https://img.shields.io/badge/advanced-FF3333)](#)| [![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/context-aware-chatbot-using-llama-2-lancedb-as-vector-database-4d771d95c755) |
+| [Better RAG with FLARE](./tutorials/better-rag-FLAIR) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/tutorials/better-rag-FLAIR/main.ipynb) [![local LLM](https://img.shields.io/badge/local-llm-green)](#) [![LLM](https://img.shields.io/badge/openai-api-white)](#) [![advanced](https://img.shields.io/badge/advanced-FF3333)](#)|[![Ghost](https://img.shields.io/badge/ghost-000?style=for-the-badge&logo=ghost&logoColor=%23F7DF1E)](https://blog.lancedb.com/better-rag-with-active-retrieval-augmented-generation-flare-3b66646e2a9f/) |
diff --git a/applications/Chatbot_with_Parler_TTS/.env-example b/applications/Chatbot_with_Parler_TTS/.env-example
new file mode 100644
index 00000000..a6f7e3f7
--- /dev/null
+++ b/applications/Chatbot_with_Parler_TTS/.env-example
@@ -0,0 +1 @@
+OPENAI_API_KEY = 'sk-youekey'
diff --git a/applications/Chatbot_with_Parler_TTS/README.md b/applications/Chatbot_with_Parler_TTS/README.md
new file mode 100644
index 00000000..e80719b4
--- /dev/null
+++ b/applications/Chatbot_with_Parler_TTS/README.md
@@ -0,0 +1,39 @@
+# Chat with PDF using LanceDB and Paler TTS
+This application integrates a PDF chat functionality using LanceDB with advanced RAG (Retrieval-Augmented Generation) methods and
+leverages the Paler Text-to-Speech (TTS) model for audio output.
+
+It is designed to enable high-quality text and speech interaction with PDF documents.
+![image](../../assets/chatbot_tts.png)
+
+## Features
+
+Hybrid Search: Combines vector-based and keyword searches to improve result relevance.
+
+Full-Text Search (FTS): Utilizes Tavity for enhanced text search capabilities within documents.
+
+Colbert Reranker: Improves the accuracy of search results by reranking them based on relevance.
+
+Langchain Prompts: Controls LLM (Large Language Model) outputs using customized prompts for more tailored interactions.
+
+Paler Text-to-Speech (TTS): A lightweight, high-quality TTS model that mimics various speech styles and attributes.
+
+## Installation
+Clone the repository and install the required packages:
+```
+pip install -r requirements.txt
+```
+
+## Running the Application
+Start the application by running the main script. This will launch a Gradio interface accessible via a web browser:
+
+create ```.env ``` file & pass the openai_api_key. or simply rename the ```.env-example ``` file to ```.env```
+
+```
+python3 main.py # Gradio app will run
+```
+## Outputs
+The application provides two types of outputs from the processed PDF documents:
+
+Text: Extracted and processed text displayed in a user-friendly format.
+Audio: Natural sounding speech generated from the text, customizable by speaker characteristics such as gender and pitch.
+
diff --git a/applications/Chatbot_with_Parler_TTS/constants.py b/applications/Chatbot_with_Parler_TTS/constants.py
new file mode 100644
index 00000000..d73cadfc
--- /dev/null
+++ b/applications/Chatbot_with_Parler_TTS/constants.py
@@ -0,0 +1,5 @@
+input_pdf = "https://d18rn0p25nwr6d.cloudfront.net/CIK-0001559720/8a9ebed0-815a-469a-87eb-1767d21d8cec.pdf"
+
+parler_tts_description = """ Utilize a male voice with an Indian English
+accent for the chatbot. The speech should be clear, ensuring each word is
+distinctly articulated in a crisp and confined audio environment. """
diff --git a/applications/Chatbot_with_Parler_TTS/main.py b/applications/Chatbot_with_Parler_TTS/main.py
new file mode 100644
index 00000000..54dca71d
--- /dev/null
+++ b/applications/Chatbot_with_Parler_TTS/main.py
@@ -0,0 +1,38 @@
+import gradio as gr
+from rag_lance import get_rag_output
+from tts_module import text_to_speech
+
+
+def process_question(question, include_audio):
+ generated_text = get_rag_output(question)
+ if include_audio:
+ audio_file_path = text_to_speech(generated_text)
+ return generated_text, audio_file_path
+ else:
+ return generated_text, None # Return None for the audio part
+
+
+iface = gr.Interface(
+ fn=process_question,
+ inputs=[
+ gr.Textbox(lines=2, placeholder="Enter a question..."),
+ gr.Checkbox(
+ label="Include audio", value=True
+ ), # Default to True, can be unchecked by user
+ ],
+ outputs=[
+ gr.Textbox(label="Generated Text"),
+ gr.Audio(label="Generated Audio", type="filepath"), # No optional keyword
+ ],
+ title="Advance RAG chatbot with TTS support",
+ description="Ask a question and get a text response along with its audio representation. Optionally, include the audio response.",
+ examples=[
+ ["What is net profit of Airbnb ?"],
+ [
+ "What are the specific factors contributing to Airbnb's increased operational expenses in the last fiscal year"
+ ],
+ ],
+)
+
+if __name__ == "__main__":
+ iface.launch(debug=True, share=True)
diff --git a/applications/Chatbot_with_Parler_TTS/prompt.py b/applications/Chatbot_with_Parler_TTS/prompt.py
new file mode 100644
index 00000000..6723f64b
--- /dev/null
+++ b/applications/Chatbot_with_Parler_TTS/prompt.py
@@ -0,0 +1,19 @@
+rag_prompt = """
+As an AI Assistant, your role is to provide authentic and accurate responses. Analyze the question and its context thoroughly to determine the most appropriate answer.
+
+**Instructions:**
+- Understand the context and nuances of the question to identify relevant and precise information.
+- if its general greeting then answer should be hellow how can i help you,please ask related quetions so i can help
+- If an answer cannot be conclusively determined from the provided information, inform the user rather than making up an answer.
+- When multiple interpretations of a question exist, briefly present these viewpoints, then provide the most plausible answer based on the context.
+- Focus on providing concise and factual responses, excluding irrelevant details.
+- For sensitive or potentially harmful topics, advise users to seek professional advice or consult authoritative sources.
+- Keep your answer clear and within 500 words.
+
+**Context:**
+{context}
+
+**Question:**
+{question}
+
+"""
diff --git a/applications/Chatbot_with_Parler_TTS/rag_lance.py b/applications/Chatbot_with_Parler_TTS/rag_lance.py
new file mode 100644
index 00000000..cd4794d0
--- /dev/null
+++ b/applications/Chatbot_with_Parler_TTS/rag_lance.py
@@ -0,0 +1,113 @@
+import os
+import torch
+import lancedb
+from dotenv import load_dotenv
+from constants import input_pdf
+from prompts import rag_prompt
+from langchain_community.vectorstores import LanceDB
+from langchain.prompts import PromptTemplate
+from langchain_core.output_parsers import StrOutputParser
+from langchain_core.runnables import RunnablePassthrough
+from langchain_openai import ChatOpenAI, OpenAIEmbeddings
+from langchain_core.prompts import ChatPromptTemplate
+from langchain.document_loaders import PyPDFLoader
+from langchain_core.messages import HumanMessage, SystemMessage
+from langchain.text_splitter import RecursiveCharacterTextSplitter
+from lancedb.embeddings import get_registry
+from lancedb.pydantic import Vector, LanceModel
+from lancedb.rerankers import ColbertReranker
+
+
+load_dotenv()
+
+
+class Document:
+ def __init__(self, page_content, metadata=None):
+ self.page_content = page_content
+ self.metadata = metadata if metadata is not None else {}
+
+ def __repr__(self):
+ return f"Document(page_content='{self.page_content}', metadata={self.metadata})"
+
+
+def get_rag_output(question):
+ input_pdf_file = input_pdf
+
+ # Create your PDF loader
+ loader = PyPDFLoader(input_pdf_file)
+
+ # Load the PDF document
+ documents = loader.load()
+
+ # Chunk the financial report
+ text_splitter = RecursiveCharacterTextSplitter(chunk_size=1024, chunk_overlap=0)
+ docs = text_splitter.split_documents(documents)
+
+ openai = get_registry().get("openai").create()
+
+ class Schema(LanceModel):
+ text: str = openai.SourceField()
+ vector: Vector(openai.ndims()) = openai.VectorField()
+
+ embedding_function = OpenAIEmbeddings()
+
+ db = lancedb.connect("~/langchain")
+ table = db.create_table(
+ "airbnb",
+ schema=Schema,
+ mode="overwrite",
+ )
+
+ # Load the document into LanceDB
+ db = LanceDB.from_documents(docs, embedding_function, connection=table)
+ table.create_fts_index("text", replace=True)
+
+ reranker = ColbertReranker()
+ docs_n = (
+ table.search(question, query_type="hybrid")
+ .limit(5)
+ .rerank(reranker=reranker)
+ .to_pandas()["text"]
+ .to_list()
+ )
+
+ metadata = {"source": input_pdf_file}
+ docs_with_metadata = [
+ Document(page_content=text, metadata=metadata) for text in docs_n
+ ]
+
+ vectorstore = LanceDB.from_documents(
+ documents=docs_with_metadata,
+ embedding=OpenAIEmbeddings(openai_api_key=os.environ["OPENAI_API_KEY"]),
+ )
+
+ retriever = vectorstore.as_retriever()
+
+ rag_prompt_template = rag_prompt
+
+ prompt = PromptTemplate(
+ template=rag_prompt_template,
+ input_variables=[
+ "context",
+ "question",
+ ],
+ )
+
+ def format_docs(docs):
+ return "\n\n".join(doc.page_content for doc in docs)
+
+ llm = ChatOpenAI(
+ model="gpt-3.5-turbo",
+ temperature=0,
+ openai_api_key=os.environ["OPENAI_API_KEY"],
+ )
+
+ rag_chain = (
+ {"context": retriever | format_docs, "question": RunnablePassthrough()}
+ | prompt
+ | llm
+ | StrOutputParser()
+ )
+
+ output = rag_chain.invoke(question)
+ return output
diff --git a/applications/Chatbot_with_Parler_TTS/requirements.txt b/applications/Chatbot_with_Parler_TTS/requirements.txt
new file mode 100644
index 00000000..f5673ae3
--- /dev/null
+++ b/applications/Chatbot_with_Parler_TTS/requirements.txt
@@ -0,0 +1,10 @@
+pip install langchain
+langchain-community
+langchain-openai
+lancedb
+bs4
+tantivy==0.20.1
+pypdf
+gradio
+torch
+git+https://github.com/huggingface/parler-tts.git
diff --git a/applications/Chatbot_with_Parler_TTS/tts_module.py b/applications/Chatbot_with_Parler_TTS/tts_module.py
new file mode 100644
index 00000000..94d49be4
--- /dev/null
+++ b/applications/Chatbot_with_Parler_TTS/tts_module.py
@@ -0,0 +1,23 @@
+import torch
+import soundfile as sf
+from transformers import AutoTokenizer
+from parler_tts import ParlerTTSForConditionalGeneration
+
+
+def text_to_speech(text, filename="output_audio.wav"):
+ device = "cuda:0" if torch.cuda.is_available() else "cpu"
+ model = ParlerTTSForConditionalGeneration.from_pretrained(
+ "parler-tts/parler_tts_mini_v0.1"
+ ).to(device)
+ tokenizer = AutoTokenizer.from_pretrained("parler-tts/parler_tts_mini_v0.1")
+
+ # description = "A clear and articulate Indian English male voice with a medium pitch and neutral accent with a friendly and engaging tone. The audio quality is high, ensuring that each word is easily understandable without any background noise."
+ description = "Utilize a male voice with a low pitch and an Indian English accent for the chatbot. The speech should be fast yet clear, ensuring each word is distinctly articulated in a crisp and confined audio environment."
+ input_ids = tokenizer(description, return_tensors="pt").input_ids.to(device)
+ prompt_input_ids = tokenizer(text, return_tensors="pt").input_ids.to(device)
+
+ generation = model.generate(input_ids=input_ids, prompt_input_ids=prompt_input_ids)
+ audio_arr = generation.cpu().numpy().squeeze()
+ sf.write(filename, audio_arr, model.config.sampling_rate)
+
+ return filename
diff --git a/applications/Healthcare_chatbot/README.md b/applications/Healthcare_chatbot/README.md
new file mode 100644
index 00000000..a1b60132
--- /dev/null
+++ b/applications/Healthcare_chatbot/README.md
@@ -0,0 +1,47 @@
+## Overview
+This project introduces a healthcare-related Retrieval-Augmented Generation (RAG) chatbot, designed to deliver quick responses to medical inquiries. Utilizing OpenBioLLM-Llama3 / openai llm and the NeuML's PubMedBERT for embedding,
+this chatbot is adept at processing and responding to medical data queries.
+
+![image](../../assets/chatbot_medical.png)
+
+## Key Features
+### Language Model:
+
+To utilize OpenBioLLM-Llama3 .download model in the local system & pass the path of it
+link for downloading gguf version model https://huggingface.co/PrunaAI/OpenBioLLM-Llama3-8B-GGUF-smashed
+change this model based on requirements & performance
+
+### Embeddings:
+Uses NeuML's PubMedBERT (https://huggingface.co/NeuML/pubmedbert-base-embeddings), which is fine-tuned on PubMed data with the BERT architecture to ensure high relevance and contextual accuracy in responses.
+
+### Database and Framework:
+Incorporates the LanceDB vector database and Cohere reranker within the LangChain framework to enhance efficient query processing and response generation.
+
+## Installation
+Follow these steps to set up the chatbot on your local machine:
+
+Clone the repository & install
+
+```pip install -r requirements.txt```
+
+## Start the application:
+```
+uvicorn main:app --reload
+```
+
+
+After launching the server, open the ```index.html ```
+file in any web browser to start interacting with the chatbot.
+
+
+## Usage
+
+Use the chatbot via the provided web interface. Enter your medical-related questions into the chat input box, and receive responses generated from the integrated language models and databases.
+
+
+
+## Note
+Please be advised that while the chatbot provides information based on learned data, it can occasionally deliver incorrect information or miss critical nuances. Always consult with a healthcare professional before making any medical decisions based on advice received from the chatbot.
+
+## Disclaimer
+This chatbot is intended for informational purposes only and should not be used as a substitute for professional medical advice, diagnosis, or treatment. Always seek the advice of your physician or other qualified health provider with any questions you may have regarding a medical condition
diff --git a/applications/Healthcare_chatbot/data/DIABETES.pdf b/applications/Healthcare_chatbot/data/DIABETES.pdf
new file mode 100644
index 00000000..d77cdf97
Binary files /dev/null and b/applications/Healthcare_chatbot/data/DIABETES.pdf differ
diff --git a/applications/Healthcare_chatbot/data/HBP_Guide_English_2018.pdf b/applications/Healthcare_chatbot/data/HBP_Guide_English_2018.pdf
new file mode 100644
index 00000000..d7007e1f
Binary files /dev/null and b/applications/Healthcare_chatbot/data/HBP_Guide_English_2018.pdf differ
diff --git a/applications/Healthcare_chatbot/data/cancer.pdf b/applications/Healthcare_chatbot/data/cancer.pdf
new file mode 100644
index 00000000..c1bbea51
Binary files /dev/null and b/applications/Healthcare_chatbot/data/cancer.pdf differ
diff --git a/applications/Healthcare_chatbot/data/data.txt b/applications/Healthcare_chatbot/data/data.txt
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/applications/Healthcare_chatbot/data/data.txt
@@ -0,0 +1 @@
+
diff --git a/applications/Healthcare_chatbot/index.html b/applications/Healthcare_chatbot/index.html
new file mode 100644
index 00000000..60139efd
--- /dev/null
+++ b/applications/Healthcare_chatbot/index.html
@@ -0,0 +1,181 @@
+
+
+
+
+
+ Medical Chatbot
+
+
+
+
+
+
Healthcare AI Chatbot
+
+
+
+
+
+
+
+
+
diff --git a/applications/Healthcare_chatbot/main.py b/applications/Healthcare_chatbot/main.py
new file mode 100644
index 00000000..2413a93e
--- /dev/null
+++ b/applications/Healthcare_chatbot/main.py
@@ -0,0 +1,99 @@
+import os
+import uvicorn
+from fastapi import FastAPI
+from pydantic import BaseModel
+from langchain import hub
+import logging
+from langchain_text_splitters import RecursiveCharacterTextSplitter
+from langchain_community.llms import LlamaCpp
+from langchain_community.vectorstores import LanceDB
+from langchain.document_loaders import PyPDFLoader
+from langchain_community.embeddings import SentenceTransformerEmbeddings
+from langchain_openai import ChatOpenAI
+from langchain.chains import RetrievalQA
+from langchain_cohere import CohereRerank
+from langchain.retrievers.contextual_compression import ContextualCompressionRetriever
+from langchain_cohere import CohereRerank
+from fastapi.middleware.cors import CORSMiddleware
+from langchain_community.document_loaders import PyPDFLoader, DirectoryLoader
+from langchain_community.llms import LlamaCpp
+
+
+# Environment variables for sensitive information
+OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "")
+COHERE_API_KEY = os.getenv("COHERE_API_KEY", "")
+
+app = FastAPI(title="Medical Information Retrieval API")
+
+
+app.add_middleware(
+ CORSMiddleware,
+ allow_origins=["*"],
+ allow_credentials=True,
+ allow_methods=["*"],
+ allow_headers=["*"],
+)
+
+
+# Load the document
+DATA_PATH = "data/"
+
+
+loader = DirectoryLoader(DATA_PATH, glob="*.pdf", loader_cls=PyPDFLoader)
+
+docs = loader.load()
+logging.info("Document loader done.")
+
+# Set up the text processing and model chain
+# llm = ChatOpenAI(model="gpt-4", temperature=0, openai_api_key=OPENAI_API_KEY)
+
+# download weights from https://huggingface.co/PrunaAI/OpenBioLLM-Llama3-8B-GGUF-smashed/tree/main
+llm = LlamaCpp(
+ model_path="/content/OpenBioLLM-Llama3-8B.Q4_K_S.gguf", # path of gguf weight
+ temperature=0.75,
+ n_ctx=2048,
+ verbose=False, # Verbose is required to pass to the callback manager
+)
+
+embeddings_med = SentenceTransformerEmbeddings(
+ model_name="NeuML/pubmedbert-base-embeddings"
+)
+text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
+
+logging.info("Embedding and LLM setup done.")
+
+splits = text_splitter.split_documents(docs)
+vectorstore = LanceDB.from_documents(documents=splits, embedding=embeddings_med)
+retriever = vectorstore.as_retriever()
+logging.info("Retriever setup done.")
+
+compressor = CohereRerank(cohere_api_key=COHERE_API_KEY)
+compression_retriever = ContextualCompressionRetriever(
+ base_compressor=compressor, base_retriever=retriever
+)
+logging.info("Cohere compression retriever setup done.")
+
+chain = RetrievalQA.from_chain_type(llm=llm, retriever=compression_retriever)
+logging.info("Chain ready for query processing.")
+
+chain = RetrievalQA.from_chain_type(llm=llm, retriever=compression_retriever)
+
+
+class QueryRequest(BaseModel):
+ query: str
+
+
+@app.post("/query/", response_model=dict)
+async def handle_query(request: QueryRequest):
+ try:
+ compressed_docs = compression_retriever.invoke(request.query)
+ # Assuming pretty_print_docs function returns a string
+ response = chain({"query": request.query})
+ print("response", response["result"])
+ return {"answer": response["result"]}
+ except Exception as e:
+ raise HTTPException(status_code=500, detail=str(e))
+
+
+if __name__ == "__main__":
+ uvicorn.run(app, host="0.0.0.0", port=8000)
diff --git a/applications/Healthcare_chatbot/requirements.txt b/applications/Healthcare_chatbot/requirements.txt
new file mode 100644
index 00000000..dbf333ba
--- /dev/null
+++ b/applications/Healthcare_chatbot/requirements.txt
@@ -0,0 +1,11 @@
+langchain
+langchain-community
+langchainhub
+langchain-openai
+lancedb
+PyPDF2
+llama-cpp-python # for using openbiollm
+huggingface-hub
+sentence-transformers
+ctransformers
+langchain-cohere
diff --git a/applications/multimodal-search/package.json b/applications/multimodal-search/package.json
index d598fcee..8001d3ff 100644
--- a/applications/multimodal-search/package.json
+++ b/applications/multimodal-search/package.json
@@ -23,7 +23,7 @@
"eslint": "8.45.0",
"eslint-config-next": "13.4.12",
"jimp": "^0.22.10",
- "next": "13.4.12",
+ "next": "14.1.1",
"openai": "^3.3.0",
"openai-edge": "^1.2.2",
"postcss": "8.4.27",
diff --git a/assets/RAG-flow.png b/assets/RAG-flow.png
new file mode 100644
index 00000000..e6680465
Binary files /dev/null and b/assets/RAG-flow.png differ
diff --git a/assets/RAG-locally.png b/assets/RAG-locally.png
new file mode 100644
index 00000000..468a42e7
Binary files /dev/null and b/assets/RAG-locally.png differ
diff --git a/assets/apple_mlx.png b/assets/apple_mlx.png
deleted file mode 100644
index 7aae75ad..00000000
Binary files a/assets/apple_mlx.png and /dev/null differ
diff --git a/assets/chatbot_medical.png b/assets/chatbot_medical.png
new file mode 100644
index 00000000..3ce315c2
Binary files /dev/null and b/assets/chatbot_medical.png differ
diff --git a/assets/chatbot_tts.png b/assets/chatbot_tts.png
new file mode 100644
index 00000000..e0aaf6a6
Binary files /dev/null and b/assets/chatbot_tts.png differ
diff --git a/assets/chunking.png b/assets/chunking.png
new file mode 100644
index 00000000..5acd5823
Binary files /dev/null and b/assets/chunking.png differ
diff --git a/assets/crewai.png b/assets/crewai.png
new file mode 100644
index 00000000..94cfa86c
Binary files /dev/null and b/assets/crewai.png differ
diff --git a/assets/critique-based-contexting.png b/assets/critique-based-contexting.png
new file mode 100644
index 00000000..5dc3326a
Binary files /dev/null and b/assets/critique-based-contexting.png differ
diff --git a/assets/myntra-search-engine.png b/assets/myntra-search-engine.png
new file mode 100644
index 00000000..ec355360
Binary files /dev/null and b/assets/myntra-search-engine.png differ
diff --git a/assets/query-expansion.png b/assets/query-expansion.png
new file mode 100644
index 00000000..8906f04a
Binary files /dev/null and b/assets/query-expansion.png differ
diff --git a/assets/rag-mlx.png b/assets/rag-mlx.png
new file mode 100644
index 00000000..84ed337d
Binary files /dev/null and b/assets/rag-mlx.png differ
diff --git a/assets/reranker.webp b/assets/reranker.webp
new file mode 100644
index 00000000..fa5bd671
Binary files /dev/null and b/assets/reranker.webp differ
diff --git a/assets/sdk-manual-cli-chatbot.png b/assets/sdk-manual-cli-chatbot.png
new file mode 100644
index 00000000..4ca1a292
Binary files /dev/null and b/assets/sdk-manual-cli-chatbot.png differ
diff --git a/assets/search-within-image-flow.png b/assets/search-within-image-flow.png
new file mode 100644
index 00000000..42cf525f
Binary files /dev/null and b/assets/search-within-image-flow.png differ
diff --git a/assets/search-within-image.png b/assets/search-within-image.png
new file mode 100644
index 00000000..50dc51f3
Binary files /dev/null and b/assets/search-within-image.png differ
diff --git a/assets/superagent-autogen.png b/assets/superagent-autogen.png
new file mode 100644
index 00000000..d41d2484
Binary files /dev/null and b/assets/superagent-autogen.png differ
diff --git a/assets/vercel-template.gif b/assets/vercel-template.gif
index 6c16d7de..5e684974 100644
Binary files a/assets/vercel-template.gif and b/assets/vercel-template.gif differ
diff --git a/compile_testing.js b/compile_testing.js
index c385a1a3..37fdc619 100644
--- a/compile_testing.js
+++ b/compile_testing.js
@@ -3,7 +3,7 @@ var dir = './testing-folder';
const excluded_folders = [
"Code-Documentation-QA-Bot",
- "youtube_bot",
+ "Youtube-Search-QA-Bot",
"reducing_hallucinations_ai_agents",
"product-recommender"
];
diff --git a/examples/AI-Trends-with-CrewAI/CrewAI_AI_Trends.ipynb b/examples/AI-Trends-with-CrewAI/CrewAI_AI_Trends.ipynb
new file mode 100644
index 00000000..e0ef4104
--- /dev/null
+++ b/examples/AI-Trends-with-CrewAI/CrewAI_AI_Trends.ipynb
@@ -0,0 +1,605 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "provenance": []
+ },
+ "kernelspec": {
+ "name": "python3",
+ "display_name": "Python 3"
+ },
+ "language_info": {
+ "name": "python"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## AI Trends Searcher using CrewAI RAG"
+ ],
+ "metadata": {
+ "id": "L6CYH07ysGHi"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Using Crew AI to create sophisticated AI news search and writer agents. Using CrewAI RAG create AI Assistants to Run News Agency for AI trends with summarized reports.\n",
+ "\n",
+ "This innovative approach combines Retrieving and Generating information, revolutionising how we search for AI news articles, analyse them, and deliver in-depth reports.\n",
+ "\n",
+ "![Screenshot from 2024-03-22 16-23-32.png](data:image/png;base64,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)"
+ ],
+ "metadata": {
+ "id": "sSLA0KQ8qrcX"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "Get Free News API Key at [link](https://newsapi.org/)"
+ ],
+ "metadata": {
+ "id": "Q_wvRRAXxPSR"
+ }
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Install required packages\n"
+ ],
+ "metadata": {
+ "id": "HV1DyBd2RHrN"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "!pip install crewai langchain-community langchain-openai langchain-google-genai requests duckduckgo-search lancedb -q"
+ ],
+ "metadata": {
+ "id": "xOj-BuKARJrH",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "ff6cfb82-0400-4c09-f797-c57adf95a0ed"
+ },
+ "execution_count": 5,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "\u001b[?25l \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m0.0/62.5 kB\u001b[0m \u001b[31m?\u001b[0m eta \u001b[36m-:--:--\u001b[0m\r\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m62.5/62.5 kB\u001b[0m \u001b[31m1.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.9/1.9 MB\u001b[0m \u001b[31m29.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m22.0/22.0 MB\u001b[0m \u001b[31m34.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m191.4/191.4 kB\u001b[0m \u001b[31m21.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m812.8/812.8 kB\u001b[0m \u001b[31m51.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m267.1/267.1 kB\u001b[0m \u001b[31m22.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m60.1/60.1 kB\u001b[0m \u001b[31m6.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m106.1/106.1 kB\u001b[0m \u001b[31m11.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m276.8/276.8 kB\u001b[0m \u001b[31m25.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m87.5/87.5 kB\u001b[0m \u001b[31m9.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.8/1.8 MB\u001b[0m \u001b[31m49.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m137.4/137.4 kB\u001b[0m \u001b[31m11.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5.7/5.7 MB\u001b[0m \u001b[31m49.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m144.8/144.8 kB\u001b[0m \u001b[31m13.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m22.1/22.1 MB\u001b[0m \u001b[31m37.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m49.4/49.4 kB\u001b[0m \u001b[31m5.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m233.4/233.4 kB\u001b[0m \u001b[31m21.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m525.5/525.5 kB\u001b[0m \u001b[31m44.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m131.5/131.5 kB\u001b[0m \u001b[31m13.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m41.3/41.3 kB\u001b[0m \u001b[31m4.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m278.2/278.2 kB\u001b[0m \u001b[31m27.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m71.1/71.1 kB\u001b[0m \u001b[31m7.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.0/2.0 MB\u001b[0m \u001b[31m72.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m53.0/53.0 kB\u001b[0m \u001b[31m6.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.6/75.6 kB\u001b[0m \u001b[31m9.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m50.8/50.8 kB\u001b[0m \u001b[31m5.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m98.7/98.7 kB\u001b[0m \u001b[31m11.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m78.7/78.7 kB\u001b[0m \u001b[31m8.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.4/2.4 MB\u001b[0m \u001b[31m59.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m91.9/91.9 kB\u001b[0m \u001b[31m8.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m60.8/60.8 kB\u001b[0m \u001b[31m6.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m5.4/5.4 MB\u001b[0m \u001b[31m64.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m6.8/6.8 MB\u001b[0m \u001b[31m65.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m67.3/67.3 kB\u001b[0m \u001b[31m8.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25h Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",
+ " Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",
+ " Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m698.9/698.9 kB\u001b[0m \u001b[31m51.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m69.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m67.6/67.6 kB\u001b[0m \u001b[31m8.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m77.9/77.9 kB\u001b[0m \u001b[31m9.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 kB\u001b[0m \u001b[31m6.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m71.9/71.9 kB\u001b[0m \u001b[31m8.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m46.0/46.0 kB\u001b[0m \u001b[31m5.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m341.4/341.4 kB\u001b[0m \u001b[31m32.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.4/3.4 MB\u001b[0m \u001b[31m86.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m54.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m130.2/130.2 kB\u001b[0m \u001b[31m14.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m86.8/86.8 kB\u001b[0m \u001b[31m8.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25h Building wheel for pypika (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Importing modules"
+ ],
+ "metadata": {
+ "id": "HNnorUJjbVPH"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from crewai import Agent, Task, Crew, Process\n",
+ "from langchain_openai import ChatOpenAI\n",
+ "from langchain_google_genai import ChatGoogleGenerativeAI\n",
+ "from langchain_core.retrievers import BaseRetriever\n",
+ "from langchain_openai import OpenAIEmbeddings\n",
+ "from langchain_community.embeddings import LlamafileEmbeddings\n",
+ "from langchain.tools import tool\n",
+ "from langchain_community.document_loaders import WebBaseLoader\n",
+ "import requests, os\n",
+ "from langchain.text_splitter import RecursiveCharacterTextSplitter\n",
+ "from langchain_community.vectorstores import LanceDB\n",
+ "from langchain_community.tools import DuckDuckGoSearchRun"
+ ],
+ "metadata": {
+ "id": "sk-GEhxCbUDU"
+ },
+ "execution_count": 6,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Set API keys as environment variable"
+ ],
+ "metadata": {
+ "id": "nRv8-Ja1R8S6"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "os.environ[\"NEWSAPI_KEY\"] = \"*********\""
+ ],
+ "metadata": {
+ "id": "J9U8qs3aRLfh"
+ },
+ "execution_count": 7,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Using OpenAI embedding function and LLM"
+ ],
+ "metadata": {
+ "id": "s6cLIDz9fzB5"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# @title LLM Config\n",
+ "\n",
+ "LLM = \"OPENAI_GPT4\" # @param [\"OPENAI_GPT4\", \"GEMINI_PRO\"]\n",
+ "API_KEY = \"Enter your API Key\" # @param {type:\"string\"}"
+ ],
+ "metadata": {
+ "id": "6tNMJXRSVy7e"
+ },
+ "execution_count": 20,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "if LLM == \"OPENAI_GPT4\":\n",
+ " os.environ[\"OPENAI_API_KEY\"] = API_KEY\n",
+ " embedding_function = OpenAIEmbeddings()\n",
+ " llm = ChatOpenAI(model=\"gpt-4-turbo-preview\")\n",
+ "elif LLM == \"GEMINI_PRO\":\n",
+ " os.environ[\"GOOGLE_API_KEY\"] = API_KEY\n",
+ " embeddding_function = LlamafileEmbeddings()\n",
+ " llm = ChatGoogleGenerativeAI(model=\"gemini-pro\")"
+ ],
+ "metadata": {
+ "id": "ljQ1FLt2fx_F"
+ },
+ "execution_count": 9,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Set up the LanceDB vectorDB"
+ ],
+ "metadata": {
+ "id": "251A9PjVT6s3"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import lancedb\n",
+ "\n",
+ "\n",
+ "# creating lancedb table with dummy data\n",
+ "def lanceDBConnection(dataset):\n",
+ " db = lancedb.connect(\"/tmp/lancedb\")\n",
+ " table = db.create_table(\"tb\", data=dataset, mode=\"overwrite\")\n",
+ " return table\n",
+ "\n",
+ "\n",
+ "embedding = OpenAIEmbeddings()\n",
+ "emb = embedding.embed_query(\"hello_world\")\n",
+ "dataset = [{\"vector\": emb, \"text\": \"dummy_text\"}]\n",
+ "\n",
+ "# LanceDB as vector store\n",
+ "table = lanceDBConnection(dataset)"
+ ],
+ "metadata": {
+ "id": "-jAOVSSISABN"
+ },
+ "execution_count": 10,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Save latest AI News in vectorDB"
+ ],
+ "metadata": {
+ "id": "0AJygbxmb_gd"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Save the news articles in a database\n",
+ "class SearchNewsDB:\n",
+ " @tool(\"News DB Tool\")\n",
+ " def news(query: str):\n",
+ " \"\"\"Fetch news articles and process their contents.\"\"\"\n",
+ " API_KEY = os.getenv(\"NEWSAPI_KEY\") # Fetch API key from environment variable\n",
+ " base_url = f\"https://newsapi.org/v2/top-headlines?sources=techcrunch\"\n",
+ "\n",
+ " params = {\n",
+ " \"sortBy\": \"publishedAt\",\n",
+ " \"apiKey\": API_KEY,\n",
+ " \"language\": \"en\",\n",
+ " \"pageSize\": 15,\n",
+ " }\n",
+ "\n",
+ " response = requests.get(base_url, params=params)\n",
+ " if response.status_code != 200:\n",
+ " return \"Failed to retrieve news.\"\n",
+ "\n",
+ " articles = response.json().get(\"articles\", [])\n",
+ " all_splits = []\n",
+ " for article in articles:\n",
+ " # Assuming WebBaseLoader can handle a list of URLs\n",
+ " loader = WebBaseLoader(article[\"url\"])\n",
+ " docs = loader.load()\n",
+ "\n",
+ " text_splitter = RecursiveCharacterTextSplitter(\n",
+ " chunk_size=1000, chunk_overlap=200\n",
+ " )\n",
+ " splits = text_splitter.split_documents(docs)\n",
+ " all_splits.extend(splits) # Accumulate splits from all articles\n",
+ "\n",
+ " # Index the accumulated content splits if there are any\n",
+ " if all_splits:\n",
+ " vectorstore = LanceDB.from_documents(\n",
+ " all_splits, embedding=embedding_function, connection=table\n",
+ " )\n",
+ " retriever = vectorstore.similarity_search(query)\n",
+ " return retriever\n",
+ " else:\n",
+ " return \"No content available for processing.\""
+ ],
+ "metadata": {
+ "id": "NQE3rljxb4SI"
+ },
+ "execution_count": 11,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Building RAG to get news from vectorDB"
+ ],
+ "metadata": {
+ "id": "tKrbDvCdcRoK"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Get the news articles from the database\n",
+ "class GetNews:\n",
+ " @tool(\"Get News Tool\")\n",
+ " def news(query: str) -> str:\n",
+ " \"\"\"Search LanceDB for relevant news information based on a query.\"\"\"\n",
+ " vectorstore = LanceDB(embedding=embedding_function, connection=table)\n",
+ " retriever = vectorstore.similarity_search(query)\n",
+ " return retriever"
+ ],
+ "metadata": {
+ "id": "xGtyZZaQcPmr"
+ },
+ "execution_count": 12,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setup search tool for News articles on the web"
+ ],
+ "metadata": {
+ "id": "BSumWCcRUUDl"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Make sure to Install duckduckgo-search for this example\n",
+ "# !pip install -U duckduckgo-search\n",
+ "\n",
+ "search_tool = DuckDuckGoSearchRun()"
+ ],
+ "metadata": {
+ "id": "DiaqNKjsT4jc"
+ },
+ "execution_count": 13,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Setting up Agents"
+ ],
+ "metadata": {
+ "id": "-a9pqtdqUgtJ"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Defining Search and Writer agents with roles and goals\n",
+ "news_search_agent = Agent(\n",
+ " role=\"AI News Searcher\",\n",
+ " goal=\"Generate key points for each news article from the latest news\",\n",
+ " backstory=\"\"\"You work at a leading tech think tank.\n",
+ " Your expertise lies in identifying emerging trends in field of AI.\n",
+ " You have a knack for dissecting complex data and presenting\n",
+ " actionable insights.\"\"\",\n",
+ " tools=[SearchNewsDB().news],\n",
+ " allow_delegation=True,\n",
+ " verbose=True,\n",
+ " llm=llm,\n",
+ ")\n",
+ "\n",
+ "writer_agent = Agent(\n",
+ " role=\"Writer\",\n",
+ " goal=\"Identify all the topics received. Use the Get News Tool to verify the each topic to search. Use the Search tool for detailed exploration of each topic. Summarise the retrieved information in depth for every topic.\",\n",
+ " backstory=\"\"\"You are a renowned Content Strategist, known for\n",
+ " your insightful and engaging articles.\n",
+ " You transform complex concepts into compelling narratives.\"\"\",\n",
+ " tools=[GetNews().news, search_tool],\n",
+ " allow_delegation=True,\n",
+ " verbose=True,\n",
+ " llm=llm,\n",
+ ")"
+ ],
+ "metadata": {
+ "id": "SLDSHOuCUXna"
+ },
+ "execution_count": 14,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Tasks to perform"
+ ],
+ "metadata": {
+ "id": "dmdxvELxV6J1"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Creating search and writer tasks for agents\n",
+ "news_search_task = Task(\n",
+ " description=\"\"\"Conduct a comprehensive analysis of the latest advancements in AI in 2024.\n",
+ " Identify key trends, breakthrough technologies, and potential industry impacts.\n",
+ " Your final answer MUST be a full analysis report\"\"\",\n",
+ " expected_output=\"Create key points list for each news\",\n",
+ " agent=news_search_agent,\n",
+ " tools=[SearchNewsDB().news],\n",
+ ")\n",
+ "\n",
+ "writer_task = Task(\n",
+ " description=\"\"\"Using the insights provided, summaries each post of them\n",
+ " highlights the most significant AI advancements.\n",
+ " Your post should be informative yet accessible, catering to a tech-savvy audience.\n",
+ " Make it sound cool, avoid complex words so it doesn't sound like AI.\n",
+ " Your final answer MUST not be the more than 50 words.\"\"\",\n",
+ " expected_output=\"Write a short summary under 50 words for each news Headline seperately\",\n",
+ " agent=writer_agent,\n",
+ " context=[news_search_task],\n",
+ " tools=[GetNews().news, search_tool],\n",
+ ")"
+ ],
+ "metadata": {
+ "id": "9ZG9GxqWV0md"
+ },
+ "execution_count": 15,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Create a Crew"
+ ],
+ "metadata": {
+ "id": "yvjya2FzWR5m"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Instantiate Crew with Agents and their tasks\n",
+ "news_crew = Crew(\n",
+ " agents=[news_search_agent, writer_agent],\n",
+ " tasks=[news_search_task, writer_task],\n",
+ " process=Process.sequential,\n",
+ " manager_llm=llm,\n",
+ ")"
+ ],
+ "metadata": {
+ "id": "yYykbGq2WRSP"
+ },
+ "execution_count": 16,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "news_crew"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "xSBr8D6tWloT",
+ "outputId": "2d2114b3-ecf5-47c4-84f8-95cb5fe3280a"
+ },
+ "execution_count": 17,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "Crew(id=25414146-d590-489a-87db-cbcfe14ddda9, process=sequential, number_of_agents=2, number_of_tasks=2)"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 17
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "### Kickoff the crew - let the magic happen"
+ ],
+ "metadata": {
+ "id": "-tjmzH9cXOaB"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Execute the crew to see RAG in action\n",
+ "result = news_crew.kickoff()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "VU3LdZmIWqQH",
+ "outputId": "3e462e46-a359-41bb-aedd-409b9a85e596"
+ },
+ "execution_count": 18,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "\u001b[1m> Entering new CrewAgentExecutor chain...\u001b[0m\n",
+ "\u001b[32;1m\u001b[1;3mI need to gather the latest information on advancements in AI from 2024 to identify key trends, breakthrough technologies, and potential industry impacts. To do this effectively, I will first use the News DB Tool to fetch recent news articles related to AI advancements in 2024. This will provide a foundation for a comprehensive analysis.\n",
+ "\n",
+ "Action: News DB Tool\n",
+ "\n",
+ "Action Input: {\"query\": \"AI advancements 2024\"}\n",
+ "\u001b[0m\u001b[93m \n",
+ "\n",
+ "[Document(page_content='This is likely a big part of the reason it might view home robots as “the next big thing” (to quote Bloomberg quoting its sources). Apple has no doubt pumped a tremendous amount of resources into driving technologies. If those could be repurposed for a different project, maybe it won’t all be for naught.\\nWhile the reports note that Apple “hasn’t committed” to either the robotic smart screen or mobile robot that are said to exist somewhere inside the company’s skunkworks, it has already put Apple Home execs Matt Costello and Brian Lynch on the hardware side of things, while SVP of Machine Learning and AI Strategy John Giannandrea is said to be involved on the AI side of things.\\nImage Credits: Brian Heater', metadata={'vector': [0.004069294314831495, -0.020910432562232018, 0.008496551774442196, -0.0071997810155153275, 0.012758336029946804, 5.0971713790204376e-05, -0.012109951116144657, 0.025989454239606857, -0.0032014036551117897, -0.026070501655340195, 0.01812777854502201, 0.01337970606982708, -0.015101980417966843, -0.00028641248354688287, -0.006784409284591675, 0.01982979103922844, 0.02367958053946495, 0.02078886143863201, 0.0065885428339242935, -0.004569091834127903, -0.027772514149546623, 0.025395100936293602, 0.005805076565593481, -0.0077603645622730255, -0.0045758457854390144, -0.0027759005315601826, 0.017290281131863594, -0.027164652943611145, 0.0013111233711242676, -0.001923206029459834, 0.019424550235271454, -0.022761033847928047, -0.01996487006545067, -0.0017678637523204088, -0.03141967952251434, -0.021221118047833443, 0.012704304419457912, -0.010360660031437874, 0.024314457550644875, -0.024800747632980347, 0.022855589166283607, 0.03193298727273941, -0.0012503372272476554, -0.02145075425505638, -0.03790353611111641, 0.019478581845760345, -0.004947316832840443, 0.0032469932921230793, -0.004677155986428261, 0.007557744160294533, 0.021032005548477173, 0.028258802369236946, -0.040740225464105606, -0.015966493636369705, -0.021883010864257812, -0.003437794279307127, -0.012906924821436405, 0.016831006854772568, 0.015277584083378315, 0.0032740093301981688, 0.016831006854772568, -0.0032672551460564137, -0.010448462329804897, 0.0035998905077576637, -0.018154794350266457, -0.0019384026527404785, -0.019275961443781853, -0.00587261701002717, 0.017047135159373283, 0.0011431172024458647, 0.03566120192408562, 0.013183839619159698, 0.025611229240894318, -0.008530321530997753, 0.02477372996509075, 8.844858712109271e-06, -0.0034749412443488836, -0.008489797823131084, -0.012447651475667953, 0.009185461327433586, -0.004889907315373421, -0.001275664777494967, -0.021126560866832733, 0.025638245046138763, 0.025746308267116547, 0.012785352766513824, -0.0062744808383286, 0.016209637746214867, 0.006081991363316774, 0.024706190451979637, 0.0018421579152345657, 0.0152100445702672, -0.009874370880424976, 0.02059974893927574, -0.005602456163614988, 0.025165462866425514, -0.00328076328150928, 0.01375793106853962, -0.02139672264456749, -0.03471564128994942, -0.005075642839074135, -0.008537075482308865, -0.031527746468782425, -0.006396053358912468, -0.018249351531267166, 0.024273933842778206, 0.006703360937535763, -0.003101781941950321, 0.018478987738490105, 0.007172765210270882, -0.00671349186450243, 0.012150474824011326, 0.002937996992841363, -0.020045919343829155, -0.0005297681200318038, -0.040686190128326416, 0.006916112266480923, -0.0069768987596035, -0.017925158143043518, -0.01873563975095749, 0.018627576529979706, 0.020059427246451378, 0.028015658259391785, -0.00741590978577733, 0.02476022206246853, 0.0042820461094379425, -0.026367679238319397, -0.005285017658025026, 0.007962984964251518, -0.020275555551052094, 0.02082938514649868, -0.02324732206761837, 0.007510466035455465, 0.015412664972245693, -0.013156822882592678, 0.012677287682890892, -0.013670128770172596, 0.010137777775526047, -0.018370922654867172, -0.006916112266480923, 0.016668910160660744, 0.0038531662430614233, -0.019154388457536697, 0.012947448529303074, -0.01873563975095749, -0.0017104545840993524, 0.018587050959467888, -0.00033727867412380874, 0.007084962911903858, 0.020275555551052094, -0.025800341740250587, -0.024206392467021942, -0.01048223301768303, 0.04060514271259308, 0.020748337730765343, 0.006176547612994909, 0.006416315212845802, -0.0032469932921230793, -0.018627576529979706, 0.0014968587784096599, -0.010441708378493786, -0.006622312590479851, 0.004363093990832567, 0.021180594339966774, 0.011488581076264381, 0.007652300409972668, 0.015966493636369705, 0.022558413445949554, -0.004744695965200663, -0.01722273975610733, -0.02766444906592369, 0.0032047806307673454, -0.048142626881599426, 0.009550178423523903, 0.005730782635509968, 0.006720245815813541, -0.002470281207934022, -0.014926375821232796, 0.00047193688806146383, -0.02666485495865345, 0.026219090446829796, -0.013014988973736763, -0.009685258381068707, 0.009077397175133228, 0.01433202251791954, -0.01607455685734749, 0.004336078185588121, -0.0017864372348412871, 0.011238682083785534, -0.027826545760035515, 0.013832224532961845, 0.04003780707716942, -0.01483181957155466, -0.007929214276373386, -0.6341210603713989, -0.018965275958180428, 0.014953391626477242, -0.00479197409003973, 0.020478175953030586, 0.00778062641620636, 0.02670537866652012, -0.00859110802412033, 0.004427257459610701, 0.0197757575660944, -0.00820612907409668, 0.00844251923263073, 0.010232334025204182, -0.01769552193582058, -0.014250974170863628, -0.007220043335109949, 0.011576383374631405, -0.033986207097768784, 0.005349180661141872, 0.019154388457536697, -0.018289875239133835, 0.01869511604309082, -0.01926245354115963, -0.017817093059420586, -0.007220043335109949, -0.013035250827670097, 0.01337970606982708, 0.004309061914682388, -0.02049168385565281, 0.010347152128815651, -0.013913272880017757, 0.021991075947880745, 0.0031237322837114334, 0.013521539978682995, 0.05011479929089546, 0.004609616007655859, -0.03201403468847275, 0.04279344528913498, 0.0022423332557082176, 0.01607455685734749, -0.02300417795777321, -0.013818716630339622, 0.001274820533581078, -0.007260567042976618, -0.0025141823571175337, -0.0006998848984949291, 0.01312305312603712, 0.010110761970281601, -0.026029977947473526, -0.030906377360224724, -0.0022794802207499743, 0.009023365564644337, -0.0029970945324748755, 0.00882074423134327, 0.020343095064163208, 0.01784410886466503, 0.020410636439919472, -0.019816283136606216, 0.008624877780675888, -0.007935968227684498, -0.007908952422440052, -0.0013862617779523134, -0.02045116014778614, -0.023166274651885033, -0.008300685323774815, 0.018668100237846375, -0.01949208974838257, -0.023882200941443443, -0.024327965453267097, -0.019910838454961777, 0.015237060375511646, 0.01722273975610733, -0.016628386452794075, -0.005794945638626814, 0.0041604735888540745, 0.027164652943611145, 0.02642171084880829, -0.00047404749784618616, -0.02215317264199257, 0.00608536833897233, -0.001891124527901411, -0.0078008887358009815, 0.0058928788639605045, -0.010988784022629261, 0.021855995059013367, -0.007382139563560486, -0.009570440277457237, -0.001745913177728653, -0.004244898911565542, -0.021518295630812645, 0.0025884765200316906, 0.010326890274882317, -0.0006669590948149562, -0.02766444906592369, -0.007523973938077688, 0.016952579841017723, -0.0031862070318311453, 0.008239898830652237, -0.0024804123677313328, -0.033283788710832596, -0.00677427789196372, -0.001549202366732061, 0.03571523725986481, 0.017992697656154633, 0.024787237867712975, 0.002016073791310191, 0.015952985733747482, 0.008239898830652237, 0.015128996223211288, -0.03725515305995941, -0.017438868060708046, -0.0051195439882576466, -0.014021337032318115, 0.028907189145684242, -0.0053356727585196495, -0.02453058585524559, 0.002311561955139041, -0.01160339917987585, 0.006521002389490604, -0.027313241735100746, 0.03468862548470497, -0.02798864245414734, -0.0035357275046408176, -0.0045758457854390144, -0.004653516691178083, -0.012278800830245018, 0.005430229008197784, -0.04184788092970848, -0.005808453541249037, 0.008260161615908146, -0.022612445056438446, -0.028069689869880676, 0.0025158708449453115, 0.005187084432691336, 0.013028496876358986, 0.026394695043563843, 0.026678362861275673, -0.023882200941443443, -0.011562875472009182, -0.025354575365781784, -0.01646628975868225, 0.001026610378175974, 0.019951362162828445, -0.0004398552991915494, -0.019951362162828445, -0.026340661570429802, -0.009617718867957592, -0.00980007741600275, 0.012798860669136047, -0.01926245354115963, -0.003687692806124687, -0.010921243578195572, 0.004977709613740444, 0.023976756259799004, 0.016479797661304474, 0.007442925591021776, -0.018533019348978996, -0.009854109026491642, 0.0064264461398124695, -0.01907334104180336, 0.001044339733198285, 0.03341887146234512, -0.0018134532729163766, -0.012650271877646446, 0.007665808312594891, -0.005686881486326456, 0.006662836764007807, 0.015237060375511646, -0.010049975477159023, -0.027529370039701462, 0.02001890353858471, -0.014656214974820614, 0.00011703443306032568, 0.010664591565728188, -0.00652437936514616, 0.024463046342134476, -0.020140474662184715, 0.0027674580924212933, 0.021329183131456375, -0.021153578534722328, -0.006956636440008879, -0.005720651708543301, 0.0006597829051315784, -0.01656084693968296, 0.03760635852813721, -0.012630010023713112, 0.06165065988898277, 0.025246512144804, -0.006726999767124653, 0.005052004009485245, -0.028880173340439796, 0.017911650240421295, 0.012082934379577637, 0.013899764977395535, -0.015237060375511646, 0.011164388619363308, -0.013913272880017757, 0.0022642838302999735, -0.008050786331295967, 0.006011074408888817, 0.021194102242588997, 0.025354575365781784, -0.01048898696899414, -0.022220712155103683, 0.002883964916691184, -0.0232067983597517, -0.004258406814187765, -0.007267321459949017, -0.010570035316050053, -0.013562064617872238, 0.005990812089294195, -0.03098742663860321, 0.009151691570878029, -0.003940968308597803, 0.001441982458345592, -0.0009455622639507055, -0.0005534071824513376, 0.013670128770172596, -0.003667430719360709, 0.019100356847047806, 0.01674995943903923, 0.0027742120437324047, 0.019681202247738838, -0.01148182712495327, -0.009867616929113865, 0.002571591641753912, 0.007078208960592747, 0.020856400951743126, -0.00473118806257844, -0.02675941213965416, -0.015385648235678673, 0.02575981616973877, 0.002345331944525242, 0.01722273975610733, 0.010083746165037155, 0.013156822882592678, 0.004221259616315365, -0.0008488954044878483, 0.026394695043563843, 0.006659459788352251, -0.007611776236444712, -0.0065480186603963375, 0.010644328780472279, -0.0007602489204145968, 0.02419288456439972, 0.0038531662430614233, 0.05678776651620865, -0.0058118305169045925, -0.01765499636530876, 0.022477364167571068, -0.008131834678351879, -0.009280017577111721, -0.03004186414182186, 0.02666485495865345, 0.01098203007131815, -0.024179376661777496, 0.016587862744927406, -0.008185867220163345, 0.021693898364901543, 0.034607578068971634, -0.005166822113096714, 0.02163986675441265, 0.007584759965538979, -0.0031828300561755896, -0.007253813091665506, 0.005930026061832905, -0.004444142337888479, 0.012218015268445015, 0.0005559399141930044, -0.009131429716944695, -0.0045623378828167915, 0.003667430719360709, 0.025557195767760277, -0.01603403314948082, 0.02575981616973877, 0.0049439393915236, 0.006767523940652609, -0.010684853419661522, 0.00650074053555727, 0.01897878386080265, -0.028150739148259163, -0.03728216886520386, -0.007138994988054037, 0.005761175416409969, -0.00877346657216549, -0.0012427389156073332, -0.009232739917933941, 0.005545047111809254, -0.017682014033198357, 0.01860055886209011, -0.004471158608794212, 0.012109951116144657, -0.014169925823807716, 0.018492495641112328, 0.007449679542332888, 0.0015804397407919168, 0.01152910478413105, -0.012332833372056484, 0.0019096980104222894, -0.02505739964544773, 0.0021714160684496164, 0.01656084693968296, -0.009671750478446484, -0.01646628975868225, 0.04122651368379593, -0.007618530187755823, -0.005484261084347963, -0.016115082427859306, -0.013291903771460056, -0.024233410134911537, -0.0065885428339242935, -0.01375793106853962, 0.002917734906077385, 0.012798860669136047, -0.008699172176420689, 0.0037383479066193104, 0.01769552193582058, 0.011724972166121006, 0.01978926733136177, 0.025921912863850594, -7.445247319992632e-05, -0.016993103548884392, -0.01414291001856327, 0.030393071472644806, 0.12978516519069672, 0.03274346888065338, -0.014777787029743195, 0.032905563712120056, -0.0056463573127985, 0.014818311668932438, -0.017763061448931694, -0.029690654948353767, 0.03571523725986481, -0.002845129230991006, -0.0034783182200044394, -0.00813858862966299, 0.01319059357047081, -0.022045107558369637, 0.015871936455368996, -0.0051330518908798695, 0.015264076180756092, -0.025300543755292892, -0.002544575370848179, -0.013291903771460056, -0.0006682254606857896, -0.010597051121294498, 0.0034006470814347267, 0.007449679542332888, 0.03182492032647133, -0.02538159303367138, 0.031716857105493546, 0.043198686093091965, -0.013784946873784065, -0.006142777390778065, 0.011542613618075848, 0.003711331868544221, -0.009442114271223545, 0.004173981957137585, -0.03023097664117813, -0.006389298941940069, -0.017803585156798363, 0.032338228076696396, 0.0008704237989149988, 0.0026526397559791803, 0.007935968227684498, 0.022166680544614792, 0.0008535388042218983, -0.01783060096204281, -0.0016564223915338516, -0.01483181957155466, 0.00011450167949078605, 0.027056587859988213, -0.018343906849622726, -0.011927592568099499, 0.013453999534249306, -0.02766444906592369, -0.016966087743639946, 0.01580439694225788, -0.008415503427386284, 0.010799671523272991, 0.005818584933876991, -0.017209231853485107, 0.010894227772951126, -0.011238682083785534, -0.010684853419661522, -0.01430500578135252, -0.006757393013685942, 0.006970144342631102, 0.027245700359344482, -0.023733612149953842, -0.004589353688061237, -0.023476960137486458, -0.010887473821640015, 0.002740442054346204, 0.030285008251667023, -0.024895302951335907, -0.016682418063282967, 0.007044438738375902, 0.025165462866425514, 0.016020525246858597, -0.003397270105779171, -0.0048021054826676846, -0.009752798825502396, 0.021653374657034874, -0.0010722000151872635, -0.01079291757196188, -0.01375793106853962, -0.015223552472889423, -0.007550990208983421, -0.011893821880221367, -0.025705784559249878, -0.012521945871412754, 0.02092394046485424, 0.021180594339966774, 0.024084821343421936, 0.004724434111267328, 0.023355387151241302, 0.012346341274678707, 0.01098203007131815, -0.007355123292654753, 0.0050182337872684, 0.0040828026831150055, 0.0004900882486253977, -0.02149127796292305, 0.015601777471601963, -0.007132241036742926, -0.011711463332176208, -0.008145342580974102, 0.011461565271019936, -0.0056092101149261, 0.003866674145683646, 0.0006213694578036666, -0.009597456082701683, -0.002752261469140649, 0.021288657560944557, -0.01148182712495327, 0.005187084432691336, -0.023125750944018364, 0.0013102791272103786, -0.014575166627764702, -0.004569091834127903, -0.009719029068946838, 0.006490609608590603, -0.007078208960592747, 0.005271509289741516, -0.041631754487752914, 0.018141286447644234, 0.0169390719383955, 0.011265698820352554, 0.02575981616973877, 0.03201403468847275, -0.013663374818861485, -0.032284196466207504, 0.015912460163235664, -0.026354171335697174, 0.0025074284058064222, 0.013683636672794819, -0.013717406429350376, -0.030014848336577415, -0.023855185136198997, -0.01048223301768303, 0.00543360598385334, -0.013399967923760414, -0.005440359935164452, -0.004288800060749054, 0.011880313977599144, 0.031284600496292114, 0.008739696815609932, 0.028258802369236946, -0.03231121227145195, 0.01950559765100479, 0.015034439973533154, 0.01300148107111454, 0.027056587859988213, -0.013339181430637836, 0.011225174181163311, -0.02001890353858471, -0.010624066926538944, -0.016142098233103752, -0.013535047881305218, 0.0019367141649127007, -0.01361609622836113, 0.05030390992760658, 0.039875708520412445, 0.033986207097768784, 0.0004989529261365533, 0.03098742663860321, -0.009840601123869419, 0.005153314210474491, -0.01418343372642994, 0.009165199473500252, -0.0018472233787178993, -0.015007424168288708, 0.016803991049528122, 0.006423069164156914, 0.0008940628613345325, 0.006848572287708521, 0.016331210732460022, -0.007807642687112093, 0.01316357683390379, -0.0021190724801272154, -0.00033157996949739754, -0.028393883258104324, -0.031068474054336548, -0.03282451629638672, 0.0071862731128931046, -0.015628792345523834, 0.010549772530794144, -0.010002697817981243, -0.0031372404191643, 0.013589080423116684, 0.024395504966378212, 0.006362283136695623, 0.005697012413293123, 0.03630958870053291, -0.0031726991292089224, -0.0018978784792125225, 0.013069020584225655, 0.003751856042072177, -0.039362404495477676, -0.006287988740950823, -0.03295959532260895, 0.003586382605135441, 0.022936638444662094, 0.009894633665680885, 0.0029059152584522963, 0.005085773766040802, -0.004906792659312487, 0.01697959564626217, 0.017614472657442093, -0.028204770758748055, -0.004305684939026833, -0.005379573907703161, -0.026799935847520828, -0.006105630658566952, -0.02377413585782051, -0.02124813385307789, -0.02615155093371868, -0.03379709646105766, 0.009577194228768349, -0.016479797661304474, 0.0057341596111655235, 0.0029633245430886745, -0.03690394386649132, 0.01418343372642994, 0.027745498344302177, 0.03490475192666054, 0.0037991339340806007, 0.020761845633387566, 0.028258802369236946, 0.010921243578195572, -0.019627170637249947, -0.019721725955605507, -0.0024398881942033768, 0.01941104233264923, 0.025165462866425514, 0.0035526123829185963, -0.0031423058826476336, -0.002186612691730261, 0.008813990280032158, 0.0009168576798401773, -0.03382411226630211, -0.040118854492902756, 0.017290281131863594, 0.00671349186450243, 0.007132241036742926, -0.012089688330888748, -0.014048353768885136, -0.0031743876170367002, 0.021572327241301537, -0.0008370758732780814, 0.009165199473500252, -0.00585910864174366, -0.0200729351490736, -0.002363905543461442, -0.0008501617703586817, -0.023233814164996147, -0.003555989358574152, 0.00238416763022542, -0.015723347663879395, -0.00010342086898162961, -0.0010088811395689845, 0.014467102475464344, -0.004710926208645105, -0.015331616625189781, -0.003301025368273258, 0.0030663232319056988, 0.018465479835867882, 0.003971361089497805, 0.01337970606982708, -0.015331616625189781, -0.023895708844065666, 0.015628792345523834, 0.031068474054336548, -0.04360392689704895, -0.008408749476075172, 0.007503712084144354, -0.018438464030623436, 0.025070907548069954, -0.05195189267396927, 4.107813583686948e-05, 0.00653788773342967, -0.01745237596333027, 0.0035289733204990625, 0.03306766226887703, 0.019573137164115906, -0.009617718867957592, 0.009090905077755451, 0.0017011677846312523, -0.006315005011856556, 0.019248945638537407, 0.00414021173492074, -0.015358632430434227, -0.00025813005049712956, -0.007746856659650803, -0.002792785642668605, 0.017290281131863594, 0.0026104270946234465, 0.005480884108692408, -0.021937044337391853, -0.017438868060708046, 0.013487770222127438, -0.023922724649310112, -0.0015356943476945162, -0.01269079651683569, 0.00441374909132719, -0.003562743542715907, 0.014602182433009148, -0.007848165929317474, -0.019573137164115906, 0.007659054361283779, -0.03433741629123688, -0.009982435032725334, -0.004937185440212488, -0.012677287682890892, 0.012447651475667953, -0.00523098511621356, 0.016479797661304474, -0.0011540924897417426, 0.012562469579279423, -0.03177088871598244, -0.016817498952150345, -0.01670943573117256, 0.014034844934940338, 0.011252190917730331, 0.0020565977320075035, 0.017438868060708046, -0.005443736910820007, 0.0077198403887450695, -0.029204364866018295, -0.004170604515820742, -0.013393213972449303, -0.0329325795173645, -0.022409824654459953, 0.001026610378175974, 0.0150614557787776, -0.00044703143066726625, -0.0063082510605454445, -0.02519248053431511, 0.020694304257631302, -0.03079831413924694, -0.00942185241729021, -0.004298930987715721, 0.0018742394167929888, 0.00022752591758035123, -0.009286771528422832, 0.018276367336511612, -0.008834253065288067, -0.002897472819313407, -0.013602588325738907, -0.0175604410469532, -0.03409427031874657, -0.03809265047311783, -0.01737132854759693, -0.01354180183261633, 0.04754827171564102, 0.004423880483955145, -0.015777381137013435, -0.0024652157444506884, -0.002490543294698, -0.02386869303882122, -0.03060920163989067, 0.020059427246451378, 0.01888422854244709, 0.01774955354630947, 0.0007036840543150902, 0.005507899913936853, 0.01399432122707367, 0.014534642919898033, 0.016115082427859306, 0.019924346357584, -0.011569629423320293, 0.023544499650597572, -0.007382139563560486, -0.0007450524135492742, -0.0017898142104968429, -0.015358632430434227, -0.025989454239606857, 0.016858022660017014, 0.016452781856060028, 0.00715250289067626, 0.030285008251667023, 0.006835064385086298, 0.0037754951044917107, -0.0025091168936342, 0.01399432122707367, -0.008854514919221401, 0.009894633665680885, 0.014034844934940338, -0.01622314564883709, -0.008678910322487354, 0.009043627418577671, 0.0037923799827694893, -0.023598531261086464, 0.012157228775322437, 0.019816283136606216, 0.014980407431721687, 0.0023368895053863525, 0.015763873234391212, -0.01502093207091093, 0.016520323231816292, -0.01143454946577549, 0.04092933610081673, 0.005376196466386318, 0.004309061914682388, 0.012515191920101643, 0.018141286447644234, -0.024787237867712975, -0.02594892866909504, 0.003471564268693328, -0.009023365564644337, -0.03274346888065338, 0.008192621171474457, -0.033905159682035446, -0.005541670136153698, -0.005990812089294195, 0.024463046342134476, -0.019275961443781853, 9.01239036465995e-05, -0.0138052087277174, 0.003724839771166444, -0.015453188680112362, 0.0152100445702672, -0.014372546225786209, 0.002162973629310727, -0.0069768987596035, -0.01136025507003069, 0.013636358082294464, -0.04090232029557228, -0.01342698372900486, 0.002455084817484021, -0.010164793580770493, -0.009732536971569061, -0.0030916507821530104, -0.018289875239133835, -0.046467628329992294, 0.012785352766513824, 0.007868428714573383, -0.02311224304139614, -0.004464404657483101, 0.2290962189435959, -0.017141692340373993, -0.010657836683094501, 0.018668100237846375, -0.00965148862451315, -0.01337970606982708, 0.02879912406206131, 0.0003336906083859503, -0.00782790407538414, -0.009327296167612076, -0.0011321419151499867, 0.02001890353858471, -0.014399562031030655, -0.004346209112554789, 0.021342691034078598, -0.02534106746315956, -0.03401322290301323, -0.016209637746214867, -0.000816391664557159, 0.019478581845760345, 0.0050790198147296906, -0.003944345284253359, -0.014737263321876526, -0.032473307102918625, 0.0276104174554348, 0.005092528183013201, -0.01779007725417614, 0.00520734628662467, 0.004694040864706039, 0.015763873234391212, -0.025611229240894318, -0.011272452771663666, 0.01102930773049593, 0.021464262157678604, 0.015277584083378315, -0.011157634668052197, -0.01850600354373455, 0.009212477132678032, 0.021612850949168205, 0.0071457489393651485, 0.014426578767597675, 0.012981219217181206, -0.00011808975250460207, 0.00794947613030672, 0.003314533270895481, -0.011448057368397713, -0.016574354842305183, 0.008807236328721046, 0.006257595960050821, -0.00480548245832324, -0.022571921348571777, -0.0010063482914119959, 0.04211804270744324, 0.0304200891405344, 0.0034057125449180603, 0.005889501888304949, -0.0008421413949690759, 0.025016875937581062, 0.010887473821640015, 0.02415236085653305, -0.0138052087277174, 0.012940694577991962, 0.0004461871867533773, 0.026165058836340904, -0.02917734906077385, -0.004123326390981674, -0.01565580815076828, 0.03757934272289276, 0.008253407664597034, -0.022950146347284317, -0.0019603529945015907, -0.015318108722567558, -0.02186950296163559, -0.018478987738490105, -0.014764279127120972, -0.018803179264068604, 0.018343906849622726, 0.014899359084665775, 0.020896924659609795, 0.005886124912649393, 0.007584759965538979, 0.007564498111605644, -0.016668910160660744, -0.023895708844065666, 0.002252464182674885, -0.020289063453674316, 0.031149521470069885, -0.022450348362326622, 0.0022541526705026627, -0.006446708459407091, 0.002951504895463586, -0.014534642919898033, -0.013062266632914543, -0.02581384964287281, -0.001234296360053122, 0.0029126694425940514, 0.011083340272307396, -4.463982259039767e-05, -0.012893416918814182, -0.0032942714169621468, -0.02400377206504345, 0.01764148846268654, 0.03676886111497879, -0.0006268571014516056, -0.016007017344236374, -0.0009396524983458221, 0.00998918991535902, 0.028907189145684242, 0.01518302783370018, 0.001432695658877492, -0.005058757960796356, -0.02020801603794098, 0.023517483845353127, 0.010347152128815651, 0.022166680544614792, 0.015534237027168274, -0.0271376371383667, -0.034796688705682755, 0.02039712853729725, -0.007848165929317474, -0.002196743618696928, 0.007476695813238621, -0.013332427479326725, 0.006811425089836121, -0.01046197023242712, -0.023855185136198997, -0.015858428552746773, -0.004096310585737228, 0.0028924073558300734, -0.025489656254649162, 0.009003102779388428, -0.010556526482105255, 0.005190461408346891, -0.004690663889050484, -0.00675063906237483, -0.01071862317621708, 0.04341481253504753, -0.01399432122707367, 0.010076991282403469, 0.013555309735238552, -0.009327296167612076, 0.01845197193324566, 0.030717264860868454, -0.003971361089497805, 0.021801963448524475, 0.0007028398104012012, 0.010819933377206326, 0.037498295307159424, -0.00019618305668700486, -0.019856806844472885, -0.030636217445135117, 0.008368225768208504, 5.735637023462914e-05, -0.02272051014006138, 0.0068283104337751865, 0.00539645878598094, -0.025975946336984634, 0.005237739533185959, 0.010131023824214935, 0.008651894517242908, -0.06602726131677628, 0.020140474662184715, 0.021369706839323044, 0.011130617931485176, -0.03633660450577736, -0.018560035154223442, -0.17214636504650116, 0.00980007741600275, 0.014737263321876526, -0.03287854790687561, 0.023220306262373924, 0.01117114257067442, -0.0037991339340806007, 0.009975681081414223, -0.007895444519817829, -0.007267321459949017, 0.01793866604566574, -0.012413881719112396, -0.021883010864257812, -0.0313926637172699, 0.009178707376122475, -0.005406589712947607, -0.02139672264456749, 0.03814668208360672, 0.030339039862155914, -0.01369039062410593, 0.011339993216097355, -0.03268943727016449, 0.013210855424404144, -0.002436511218547821, 0.016641894355416298, 0.00716601125895977, 0.0076387920416891575, 0.02438199706375599, 0.010509248822927475, -0.026529774069786072, -0.009253001771867275, -0.026975540444254875, 0.04371199011802673, 0.009198969230055809, 0.02030257135629654, -0.017736045643687248, 0.00606172950938344, -0.008935563266277313, -0.022261235862970352, 0.02107252925634384, 0.027461828663945198, 0.040362000465393066, 0.014048353768885136, 0.014899359084665775, -0.01760096475481987, 0.005605833139270544, 0.027880577370524406, -0.02338240295648575, 0.0167904831469059, -0.023760627955198288, 0.013102791272103786, -0.043766021728515625, 0.0007467409013770521, -0.0016370046650990844, 0.021342691034078598, 0.0008092155330814421, -0.003897067392244935, -0.0031220437958836555, 0.0034546791575849056, -0.002333512529730797, -0.004342832136899233, -0.011130617931485176, 0.002885653404518962, -0.03079831413924694, -0.015169519931077957, -0.025746308267116547, 0.004450896289199591, 0.01224503107368946, -0.020842893049120903, 0.012879908084869385, -0.016196129843592644, 0.013595834374427795, 0.004771712236106396, 0.008550584316253662, 0.010934751480817795, 0.0020650404039770365, -0.004268537741154432, -0.005058757960796356, -8.875199273461476e-05, 0.02030257135629654, 0.02505739964544773, -0.005642980337142944, -0.02842089906334877, -0.012332833372056484, -0.004379979334771633, 0.0033702540677040815, 0.008746450766921043, 0.00328076328150928, -0.027124129235744476, -0.020086443051695824, 0.023639054968953133, -0.023328371345996857, -3.9970054785953835e-05, -0.023260831832885742, -0.0019265831215307117, 0.0200729351490736, 0.015223552472889423, -0.011380516923964024, -0.011333238333463669, -0.028528964146971703, -0.005376196466386318, 0.010279612615704536, -0.0001424675137968734, 0.007652300409972668, 0.01931648515164852, 0.023287847638130188, -0.019667694345116615, 0.02477372996509075, 0.013386460021138191, -0.0376603938639164, -0.039119258522987366, -0.011711463332176208, 0.031068474054336548, 0.02049168385565281, -0.016574354842305183, 0.03160879388451576, -0.0026188697665929794, -0.007706332486122847, 0.025233004242181778, 0.0013423606287688017, 0.045197874307632446, -0.013676882721483707, -0.006098876241594553, 0.011319730430841446, -0.0271376371383667, -0.03574225306510925, -0.10892876982688904, -0.039848692715168, 0.009779814630746841, 0.009090905077755451, -0.025989454239606857, 0.024827763438224792, -0.02590840496122837, 0.023071719333529472, -0.015480204485356808, 0.021977568045258522, 0.0014571789652109146, -0.029528558254241943, -0.010374168865382671, 0.004062540363520384, 0.020815877243876457, -0.00927326362580061, -0.0036809388548135757, -0.007138994988054037, -0.019762249663472176, 0.01727677322924137, -0.013636358082294464, -0.013791700825095177, 0.007814396172761917, -0.0034783182200044394, 0.0005635381676256657, -0.0038430350832641125, -0.037552326917648315, 0.016574354842305183, 0.011927592568099499, 0.012177490629255772, 0.042955540120601654, -0.0014605559408664703, 0.023666072636842728, -0.03614749386906624, 0.0075307278893888, -0.019762249663472176, -0.012873154133558273, -0.010218826122581959, 0.016115082427859306, -0.03312169387936592, 0.00407942570745945, 0.010326890274882317, 0.00942185241729021, -0.02974468655884266, -0.026786427944898605, -0.016952579841017723, -0.004596107639372349, 0.026056993752717972, -0.017020119354128838, -0.0051330518908798695, -0.028582995757460594, -0.020329587161540985, -0.012211261317133904, -0.006949882488697767, 0.009563686326146126, -0.013487770222127438, 0.021815471351146698, 0.009955419227480888, -0.009746044874191284, -0.009253001771867275, -0.023422926664352417, -0.006639197934418917, -0.007510466035455465, 0.005477507133036852, 0.013244625180959702, -0.010664591565728188, -0.007821150124073029, -0.015115488320589066, 0.007024176884442568, -0.03436443209648132, -0.012211261317133904, 0.006443331483751535, -0.007044438738375902, 0.013622850179672241, -0.04943939670920372, -0.015507221221923828, 0.004457650240510702, 0.0007100159418769181, 0.024557601660490036, 0.004467781633138657, -0.031960003077983856, -0.018722131848335266, 0.029717670753598213, -0.01622314564883709, 0.013913272880017757, 0.0008168137865141034, -0.01892475225031376, 0.012373357079923153, 0.015169519931077957, -0.033526934683322906, -0.004795351065695286, 0.026300137862563133, -0.00796973891556263, -0.00972578302025795, 0.0016150540905073285, -0.015318108722567558, -0.006672967690974474, 0.003159190993756056, 0.01860055886209011, 0.0013246313901618123, -0.01845197193324566, -0.005737536586821079, -0.050168830901384354, 0.029474526643753052, -0.00834796391427517, -0.0028468177188187838, -0.0004694041272159666, -0.027488844469189644, 0.027448320761322975, -0.03952449932694435, -0.006970144342631102, 0.005710520315915346, -0.021720916032791138, 0.027259208261966705, 0.004194243811070919, -0.005312033463269472, -0.026637839153409004, -0.009090905077755451, 0.019289469346404076, -0.023612039163708687, 0.00934755802154541, 0.002919423393905163, 0.020559225231409073, 0.016263669356703758, 0.04314465448260307, 0.0007585604325868189, -0.008192621171474457, 0.02145075425505638, -0.036552734673023224, 0.015412664972245693, -0.002529378980398178, -0.026921508833765984, 0.01273807417601347, -0.0005884436541236937, -0.020572733134031296, -0.0014774409355595708, -0.009300279431045055, -0.01922192983329296, -0.005794945638626814, 0.01888422854244709, 0.015534237027168274, 0.017006611451506615, -0.022382808849215508, -0.03301363065838814, 0.001569464453496039, -0.02438199706375599, -0.030068879947066307, 0.0024213145952671766, -0.0024230030830949545, -0.011549367569386959, 0.011833036318421364, 0.013339181430637836, 0.012440897524356842, 0.01731729693710804, -0.04806157946586609, -0.016452781856060028, -0.00900985673069954, -0.01250168401747942, 0.018370922654867172, -0.015547744929790497, -0.00908415112644434, 0.021288657560944557, 0.009604210965335369, 0.017006611451506615, 0.021653374657034874, 0.002083613770082593, 0.007476695813238621, 0.021761439740657806, -0.010657836683094501, 0.004660271108150482, 0.014386054128408432, 0.00043774466030299664, 0.005950287915766239, -0.010455216281116009, 0.022382808849215508, -0.008293931372463703, 0.013210855424404144, -0.00908415112644434, -0.014926375821232796, 0.015277584083378315, -0.012792106717824936, 0.02476022206246853, -0.0010722000151872635, -0.0044407653622329235, -0.0034057125449180603, 0.006480478215962648, 0.030690249055624008, 0.008212883025407791, -0.012792106717824936, 0.0029734554700553417, 0.013453999534249306, 0.013008235022425652, -0.003924082964658737, 0.024422522634267807, -0.010900981724262238, -0.006558149587363005, 0.013845732435584068, -0.0009970616083592176, -0.016263669356703758, 0.019465073943138123, -0.0058287158608436584, 0.040362000465393066, 0.01330541167408228, -0.000742097501643002, -0.014980407431721687, -0.026799935847520828, -0.039848692715168, 0.011258944869041443, -0.005024987738579512, 0.0007551833987236023, 0.0063082510605454445, 0.018870720639824867, 0.018208825960755348, 0.01212345901876688, 0.04055111110210419, 0.007767118513584137, -0.05189785733819008, 0.024638650938868523, -0.01797918975353241, -0.02771848253905773, -0.024638650938868523, 0.026084009557962418, 0.04757528752088547, 0.010326890274882317, 0.015723347663879395, 0.005112790036946535, 0.03060920163989067, 0.025205988436937332, 0.015426172874867916, -0.021423738449811935, 0.01958664506673813, -0.015601777471601963, 0.01826285943388939, 0.004585976712405682, -0.010117515921592712, -0.002617181045934558, -0.027583401650190353, -0.009948665276169777, -0.0019299600971862674, 0.016925564035773277, -0.008854514919221401, 0.043333765119314194, 0.026799935847520828, 0.0030460611451417208, -0.007990000769495964, -0.010968522168695927, 0.0138052087277174, -0.004511682782322168, 0.03558015450835228, -0.026111025363206863, -0.005599079187959433, 0.01850600354373455, -0.0069026043638587, 0.009246247820556164, -0.016250161454081535, -0.00873294286429882, 0.014885851182043552, 0.01480480283498764, 0.015871936455368996, -0.0032892057206481695, 0.00012779864482581615, 0.0003818129771389067, 0.010894227772951126, 0.01735782064497471, 0.005599079187959433, -0.026772920042276382, 0.00024040075368247926, 0.01580439694225788, 0.0018860589480027556, -0.004619746934622526, -0.021653374657034874, 0.014926375821232796, -0.008307439275085926, -0.04346884787082672, -0.0030494381207972765, 0.03652571886777878, 0.012103196233510971, -0.01399432122707367, 0.005163445137441158, 0.005281640216708183, -0.008219636976718903, -0.004288800060749054, 0.021693898364901543, -0.005325541365891695, -0.00432932423427701, 0.014710246585309505, 0.0005120388232171535, -0.019465073943138123, -0.0232067983597517, 0.011002291925251484], '_distance': 0.3801322281360626}), Document(page_content='Community Notes now active on India! https://t.co/cLcpcTIlcT\\n— Elon Musk (@elonmusk) April 4, 2024', metadata={'vector': [0.0038508006837219, -0.022761764004826546, -0.001525186118669808, -0.015214866027235985, 0.006487505976110697, -0.010647716000676155, -0.044124457985162735, -0.014098302461206913, -0.011629754677414894, -0.002419782569631934, 0.01530903484672308, 0.0002923833962995559, 0.0038104429841041565, -0.01646595634520054, -0.002722465666010976, 1.421454089722829e-05, 0.016062378883361816, -0.030349018052220345, 0.030564257875084877, 0.01025086548179388, -0.006329438183456659, 0.0297032929956913, 0.007318202871829271, -0.0062386333011090755, -0.005693804007023573, 0.005327221471816301, 0.02078423462808132, -0.036510299891233444, 0.013963776640594006, -0.008138810284435749, -0.005986397620290518, -0.006611942313611507, 0.0063126226887106895, -0.023111529648303986, -0.00645387452095747, -0.016721555963158607, 0.003028511768206954, -0.014111755415797234, 0.021631747484207153, 0.008394409902393818, 0.0013687999453395605, 0.01467676367610693, 0.0012519306037575006, -0.016264168545603752, 0.0034085470251739025, 0.005529009737074375, 0.004916917532682419, -0.0038676164112985134, -0.004089584108442068, 0.023071173578500748, 0.013082632794976234, 0.028896139934659004, -0.026151813566684723, 0.0015697478083893657, -0.004987543914467096, -0.008085000328719616, -0.028384940698742867, 0.04210657253861427, 0.002455095760524273, 0.01412520743906498, 0.0077285063453018665, -0.00941680558025837, -0.03812460973858833, 0.02607109770178795, -0.025694426149129868, -0.008670187555253506, -0.012800129130482674, 0.008596197701990604, 0.028707802295684814, 0.029299715533852577, 0.030591163784265518, -0.0017067958833649755, -0.0005725754308514297, -0.02625943347811699, 0.009806930087506771, -0.01559153851121664, -0.02581549808382988, 0.0037028223741799593, 0.005596272647380829, -0.0010955444304272532, 0.008475124835968018, -0.023703444749116898, -0.0010711615905165672, 0.034895990043878555, 0.012376372702419758, 0.0026215713005512953, 0.014179018326103687, 0.00886524934321642, -0.026555391028523445, -0.003662464441731572, 0.005276774056255817, 0.022788668051362038, 0.0054785627871751785, 0.019788743928074837, -0.037236738950014114, 0.018147530034184456, -0.008589471690356731, 0.005498741753399372, 0.005327221471816301, -0.010849504731595516, 0.00864328257739544, 0.014501879923045635, -0.014313544146716595, -0.009215016849339008, -0.011797911487519741, 0.00828006211668253, 0.03077949956059456, 0.006729652639478445, 0.015712613239884377, 0.015995116904377937, 0.013667820021510124, 0.01344585232436657, -0.012880844064056873, -0.041756805032491684, 0.011663385666906834, -0.017932288348674774, -0.007398918271064758, -0.014461521990597248, 0.01105801947414875, -0.015039983205497265, 0.03446550667285919, -0.002221357077360153, -0.003985326737165451, 0.00932263769209385, -0.0005179243162274361, 0.013909966684877872, -0.0012763134436681867, -0.008804713375866413, -0.0028805334586650133, 0.0049539124593138695, -0.008347325026988983, 0.0014932362828403711, -0.02825041487812996, 0.01740763708949089, -0.01614309474825859, 0.02638050727546215, 0.005330584477633238, 0.026111455634236336, -0.03659101575613022, -0.021443411707878113, -0.02527739480137825, 0.026393959298729897, -0.0036221067421138287, -0.0028973491862416267, -0.029864724725484848, 0.030887121334671974, 0.009362994693219662, 0.018174434080719948, 0.017421090975403786, 0.010479559190571308, 0.008535661734640598, 0.002150731161236763, 0.004873196594417095, 0.00016500428318977356, 0.003958421293646097, -0.005192695651203394, 0.029757104814052582, 0.02736254595220089, 0.0208514966070652, -0.017851572483778, 0.0026232528034597635, 0.0017454720800742507, -0.019788743928074837, -0.0004401515470817685, 0.03642958402633667, 0.020797686651349068, 0.02300390973687172, -0.012894297018647194, 5.9485621022759005e-05, 0.00901995413005352, 0.011071472428739071, 0.031801898032426834, -0.023864874616265297, 0.01972148008644581, -0.015335939824581146, 0.012786676175892353, 0.018968136981129646, -0.0007764660404063761, -0.025855856016278267, -0.0022247203160077333, -0.014071397483348846, 0.028008269146084785, 0.0407613143324852, 0.018349317833781242, -0.012504171580076218, -0.028546372428536415, 0.04789118096232414, -0.012389824725687504, 0.017743952572345734, -0.011582670733332634, 0.02467202953994274, 0.014797836542129517, -0.005037990864366293, -0.010950399562716484, -0.6310873627662659, -0.0295418631285429, 0.01037866435945034, -0.0006036845152266324, -0.008333873003721237, -0.0051725166849792, 0.003709548618644476, 0.0031327693723142147, -0.022142944857478142, 0.017488352954387665, -0.01801300421357155, 0.002323932945728302, -0.007237487472593784, -0.007224034983664751, -0.009255374781787395, -0.01857801154255867, 0.03166737034916878, -0.017542162910103798, 0.016721555963158607, 0.0026518397498875856, 0.002830086275935173, -0.003378278808668256, -0.01614309474825859, -0.008885428309440613, -0.007937021553516388, 0.0002682108024600893, 0.013284421525895596, -0.0062958067283034325, -0.03567624092102051, 0.02811588905751705, -0.028008269146084785, -0.0023424304090440273, 0.016802271828055382, -0.0034842179156839848, 0.03303953632712364, -0.013714903965592384, -0.0019708028994500637, 0.02035375125706196, 0.003240389982238412, 0.04111108183860779, -0.011192545294761658, 0.006094017997384071, 0.01579332910478115, 0.0037633588071912527, -0.0019943448714911938, -0.010277770459651947, 0.00159749377053231, -0.0052935900166630745, -0.015228318981826305, -0.0353802852332592, 0.009396626614034176, 0.016923345625400543, -0.027053136378526688, 0.029084475710988045, -0.00819934718310833, -0.006706110667437315, 0.01602202281355858, 0.021214717999100685, 0.011589396744966507, 0.006258812267333269, -0.015712613239884377, -0.0026013925671577454, -0.02059589885175228, -0.0142193753272295, -0.02565406821668148, 0.01068134792149067, 0.002899030689150095, 0.0014671719400212169, 0.017071323469281197, 0.00843476690351963, -0.023999400436878204, 0.016479410231113434, -0.01822824403643608, -0.00650768494233489, 0.002865399233996868, 0.009800204075872898, 0.021026380360126495, -0.018725989386439323, 0.015335939824581146, 0.005209511145949364, -0.019452430307865143, -0.024093568325042725, -0.003420318244025111, -0.014340449124574661, -0.01105801947414875, 0.017636330798268318, -0.006746468134224415, -0.01670810393989086, 0.006763284094631672, 0.0024803192354738712, 0.01477093156427145, 0.0036658276803791523, 0.01740763708949089, -0.017649784684181213, 0.006046934053301811, 0.006023392081260681, 0.005239779595285654, 5.362639421946369e-05, 0.013385315425693989, -0.0012847213074564934, -0.010829325765371323, -0.02811588905751705, 0.0052128741517663, 0.0005326380487531424, 0.0322323814034462, -0.007264392450451851, -0.021699009463191032, 0.0104257483035326, 0.02031339518725872, -0.020555540919303894, -0.015618443489074707, -0.012369646690785885, -0.028492562472820282, -0.00774868531152606, -0.022694500163197517, -0.03642958402633667, -0.006877630949020386, 0.025062154978513718, 0.001163648092187941, -0.0004960638470947742, 0.01820133998990059, -0.007688148878514767, -0.004261104390025139, 0.004170299507677555, -0.010472833178937435, 0.018887421116232872, 0.014152112416923046, 0.000904685934074223, -0.020703518763184547, -0.006403427571058273, -0.007681422401219606, 0.0011258127633482218, 0.015187961049377918, 0.004086221102625132, 0.013075906783342361, 0.02919209562242031, 0.017770856618881226, -0.016183452680706978, 0.0005477722152136266, -0.005999850109219551, -0.006662389729171991, 0.004341819789260626, 0.017084775492548943, -0.014972720295190811, -0.020205773413181305, -0.030026156455278397, -0.017797762528061867, -0.0001861290365923196, -0.04127251356840134, -0.014744026586413383, 0.0025408559013158083, 0.011266535148024559, 0.004207293968647718, 0.025223584845662117, -0.0003640604263637215, 0.005182606168091297, -0.012255298905074596, -0.028196604922413826, -0.021779725328087807, -0.04310206323862076, -0.004839565139263868, 0.007358560338616371, 0.007930295541882515, -0.0044628931209445, -0.0013637552037835121, 0.016183452680706978, -0.012578161433339119, 0.026676462963223457, -0.0004960638470947742, -0.01810717210173607, -0.0021440049167722464, -0.02221020869910717, 0.010385391302406788, 0.01829550787806511, 0.0067094736732542515, -0.01731346920132637, -0.02265414223074913, -0.03753269463777542, -0.007190403528511524, 0.009921276941895485, -0.01199297420680523, -0.004113126080483198, -0.0035985647700726986, -0.02300390973687172, 0.04240252822637558, -0.004234199412167072, 0.036348868161439896, 0.022533070296049118, 0.0028569914866238832, 0.020461373031139374, -0.018026456236839294, 0.016452504321932793, -0.0017622878076508641, 0.029810914769768715, -0.00716349808499217, -0.008091726340353489, 0.005037990864366293, -0.016412146389484406, 0.016479410231113434, -0.023299867287278175, 0.011831543408334255, 0.008071547374129295, 0.042510148137807846, -0.027846837416291237, -0.012524350546300411, -0.020959118381142616, -0.0042241099290549755, -0.018685633316636086, 0.022761764004826546, 0.014582594856619835, 0.010217233560979366, -0.016089284792542458, -0.010445927269756794, 0.008454945869743824, -0.010015444830060005, 0.011871900409460068, -0.001185508561320603, -0.011730648577213287, -0.018120624125003815, 0.004990906920284033, 0.003534665098413825, -0.004567150492221117, -0.005344036966562271, -0.011394334025681019, 0.00019001767213921994, 0.010950399562716484, -0.00848185084760189, 0.036321964114904404, 0.011098377406597137, -0.040303926914930344, -0.021174360066652298, -0.0020834682509303093, 0.021443411707878113, 0.022694500163197517, 0.005989760626107454, -0.010567001067101955, 0.028896139934659004, -0.004842928610742092, 0.023420939221978188, -0.004217383451759815, 0.01467676367610693, 0.002349156653508544, 0.012806855142116547, -0.005841782316565514, -0.0022633965127170086, -0.010324854403734207, 0.012060237117111683, 0.027510523796081543, -0.006087291985750198, 0.002337385667487979, -0.02354201301932335, -0.013950323686003685, -0.013714903965592384, -0.0027409628964960575, 0.014999625273048878, -0.002749370876699686, -0.011616301722824574, -0.017326921224594116, 0.01715203933417797, 0.018524201586842537, 0.013344958424568176, 0.014273186214268208, 0.022264018654823303, 0.017542162910103798, -0.017461447045207024, 0.003428725991398096, 0.0026636107359081507, -0.002781320596113801, 0.02293664775788784, -0.028573276475071907, 0.003793627256527543, -0.02546573244035244, 0.007372013293206692, -0.030322112143039703, 0.00579806137830019, -0.006463964004069567, 0.013661094009876251, 0.024941081181168556, 0.006716200150549412, -0.001020714407786727, -0.0031596743501722813, -0.031263794749975204, 0.016291074454784393, 0.005989760626107454, 0.0005423070979304612, 0.006268901750445366, -0.04315587505698204, 0.005340673960745335, -0.018968136981129646, 0.038904860615730286, -0.008528935723006725, 0.02476619742810726, -0.03005306050181389, -0.00873745046555996, 0.024376071989536285, -0.03683316335082054, 0.020273037254810333, -0.015564633533358574, 0.015228318981826305, 0.007661243434995413, 0.01782466657459736, 0.009948181919753551, 0.018497295677661896, -0.02103983424603939, 0.008158989250659943, 0.007708327379077673, 0.0005376827903091908, -0.005441568326205015, -0.017178943380713463, -0.02726837620139122, 0.02103983424603939, 0.002845220500603318, -0.03193642199039459, -0.017394185066223145, 0.018847063183784485, -0.004190478473901749, 0.02666301093995571, 0.0031748085748404264, 0.004775665700435638, -0.0173807330429554, 0.01756906881928444, -0.024376071989536285, -0.01412520743906498, -0.002550945384427905, 0.09239231050014496, 0.003450586460530758, 0.004600781947374344, -0.0018631821731105447, -0.006702747195959091, -0.010102886706590652, -0.01743454299867153, -0.016223810613155365, -0.0012611793354153633, -0.017205849289894104, -0.007822674699127674, -0.0053171319887042046, -0.0008231296669691801, -0.006258812267333269, 0.015443560667335987, -0.003699459135532379, 0.008111905306577682, -0.01072843186557293, -0.007197129540145397, -0.02555990032851696, 0.018591463565826416, 0.006241996772587299, 0.031263794749975204, 0.013883061707019806, 0.037236738950014114, -0.024873817339539528, 0.032528337091207504, 0.020999476313591003, 0.009477341547608376, -0.02862708829343319, 0.01077551580965519, 0.034895990043878555, 0.004029047675430775, 6.121974729467183e-05, 0.008824892342090607, 0.008629829622805119, 0.014609500765800476, 0.03207094967365265, -0.004980817437171936, -0.026676462963223457, 0.013748535886406898, 0.014824741519987583, -0.014205923303961754, 0.0061579179018735886, -0.0034337707329541445, -0.004947185982018709, -0.008448219858109951, 0.021618293598294258, -0.007412370759993792, -0.005448294337838888, 0.03441169857978821, 0.009692583233118057, -0.0401155911386013, -0.002115418203175068, 0.006346254143863916, 0.030564257875084877, -0.011394334025681019, -0.025761688128113747, -0.013654367066919804, -0.048348568379879, -0.03659101575613022, -0.01728656515479088, -0.01965421810746193, -0.0028384942561388016, -0.023246055468916893, -0.028842328116297722, -0.011663385666906834, -0.02612490765750408, -0.007392191793769598, -0.0029797463212162256, 0.015900949016213417, -0.0186452753841877, -0.006568221375346184, 0.014340449124574661, 0.036698635667562485, 0.01977529190480709, 0.021752819418907166, -0.0049841804429888725, -0.012073689140379429, 0.023595822975039482, 0.0007012157002463937, -0.007883211597800255, -8.686372166266665e-05, -0.03352382779121399, 0.0036927328910678625, 0.01586059108376503, -0.0028687624726444483, 0.002855309983715415, -0.017797762528061867, 0.01573951728641987, 0.0078024957329034805, -0.005061532836407423, 0.014394259080290794, 0.011132009327411652, -0.0029612488579005003, 0.013977229595184326, 0.0031294061336666346, 0.004789118189364672, -0.001795919262804091, 0.0009593369904905558, 0.02148376777768135, -0.03338930010795593, -0.01025086548179388, 0.006379885599017143, -0.0037499063182622194, 0.015013078227639198, -0.006595126818865538, 0.027510523796081543, -0.02249271236360073, -0.001656348817050457, 0.012208214960992336, -0.009127574972808361, 0.002828404773026705, -0.004072768613696098, -0.018147530034184456, 0.034707654267549515, 0.011865174397826195, -0.022169850766658783, -0.002159138908609748, -0.030914025381207466, 0.008017737418413162, -0.022452354431152344, 0.012046784162521362, -0.00516579020768404, -0.001678209169767797, 0.013291147537529469, -0.015039983205497265, -0.002692197449505329, -0.016829175874590874, 0.021699009463191032, -0.020367205142974854, -0.008710545487701893, 0.003450586460530758, -0.04041154682636261, -0.013869608752429485, 0.0007323247846215963, -0.003534665098413825, 0.0067901890724897385, -0.014730573631823063, -0.010486285202205181, -0.019102662801742554, 0.004789118189364672, -0.00706933019682765, -0.016600482165813446, -0.002369335386902094, -0.03139831870794296, 0.0004016855964437127, -0.0019455791916698217, 0.009336089715361595, 0.03142522647976875, 0.005175879690796137, 0.0037263643462210894, -0.0021894073579460382, -0.007378739304840565, -0.024981439113616943, -0.011266535148024559, 0.00838768295943737, -0.033792879432439804, 0.025331206619739532, 0.006131012924015522, 0.047057121992111206, -0.011192545294761658, 0.028438750654459, 0.008569292724132538, 0.024349167943000793, -0.003955058287829161, 0.02935352735221386, -0.0012771541951224208, -0.0044595301151275635, -0.0038104429841041565, 0.002186044119298458, -0.01025086548179388, 0.007883211597800255, -0.007156772073358297, -0.005105253774672747, 0.00030226263334043324, -0.0033496920950710773, 0.010721705853939056, -0.021255074068903923, -0.045039232820272446, -0.05233053117990494, -0.00040357737452723086, -0.007842853665351868, -0.016008568927645683, -0.02752397581934929, -0.007372013293206692, 0.01670810393989086, 0.02708004042506218, 0.014555689878761768, 0.02028648927807808, 0.009780025109648705, -0.007392191793769598, 0.045012328773736954, 0.006914625409990549, -0.0027930918149650097, -0.03301262855529785, -0.002596347825601697, -0.033281680196523666, -0.004177025984972715, 0.012901023030281067, 0.01649286225438118, 0.028546372428536415, -0.010876409709453583, 0.01747490093111992, -0.011844995431602001, 0.029434241354465485, -0.027685407549142838, 0.004166936501860619, -0.008219526149332523, -0.042886823415756226, 0.02635360136628151, -0.03844746947288513, -0.004809297155588865, -0.030214492231607437, -0.004980817437171936, 0.006595126818865538, 0.0078092217445373535, 0.01579332910478115, -0.019613860175013542, -0.006463964004069567, 0.020542088896036148, 0.0001516568154329434, 0.026528485119342804, 0.012611792422831059, 0.0011073154164478183, 0.007136593107134104, 0.026151813566684723, -0.009874192997813225, 0.013909966684877872, -0.010856231674551964, -0.001198961166664958, 0.036698635667562485, 0.02625943347811699, -0.012625245377421379, -0.014259733259677887, 0.009295731782913208, 0.013950323686003685, -0.0024281905498355627, -0.008959418162703514, 0.015187961049377918, -0.006346254143863916, 0.011105104349553585, -0.03357763960957527, -0.03293191269040108, -0.020770782604813576, 0.0026989236939698458, 0.006840636488050222, -0.029030663892626762, 0.016667746007442474, 0.0018480479484423995, -0.029488053172826767, 0.0058922297321259975, -0.001304059405811131, -0.0037969902623444796, 0.0029393883887678385, 0.0011199272703379393, -0.011535586789250374, 8.502450509695336e-05, -0.005885503254830837, -0.023488203063607216, -0.0037633588071912527, 0.030860215425491333, -0.024402977898716927, -0.02091876044869423, 0.026488127186894417, 0.006447148509323597, -0.007910116575658321, 0.001302377786487341, -0.006258812267333269, 0.018268601968884468, -0.012712687253952026, -0.017999550327658653, 0.006326075177639723, 0.010035623796284199, 0.006117560435086489, -0.010419022291898727, -0.015564633533358574, -0.02066316083073616, -0.012874118052423, -0.018685633316636086, 0.015564633533358574, 0.03672553971409798, -0.018268601968884468, -0.02638050727546215, 0.006571584846824408, 0.008905607275664806, -0.005085074808448553, -0.015941306948661804, -0.0013326461194083095, -0.019438976421952248, -0.003729727352038026, -0.022788668051362038, -0.03371216356754303, 0.0011182456510141492, 0.028304224833846092, 0.015201414003968239, 0.009167932905256748, 0.011892079375684261, -0.005572730675339699, 0.013190253637731075, 0.01773049868643284, 0.04743379354476929, -0.005007722415030003, 0.027308734133839607, 0.003706185379996896, -0.015779875218868256, -0.009154479950666428, -0.012524350546300411, -0.04670735448598862, -0.01838967576622963, 0.01700405962765217, 0.00810517929494381, -0.0011216087732464075, 0.012201488949358463, 0.023609276860952377, 0.053379833698272705, -0.007351834326982498, -0.008475124835968018, -0.017178943380713463, 0.02932662144303322, -0.028331130743026733, 0.013331505469977856, 0.03532647341489792, 0.01505343522876501, 0.015968210995197296, -0.027604691684246063, 0.021147454157471657, 0.005017811898142099, -0.01579332910478115, -0.016546672210097313, 0.00955805741250515, -0.005286863539367914, 0.0015016441466286778, 0.0009534514974802732, -0.04713783785700798, -0.03368525952100754, -0.03497670590877533, 0.013869608752429485, 0.010634263977408409, 0.003203395288437605, 0.003348010592162609, 0.042537055909633636, 0.035595525056123734, 0.014259733259677887, -0.005428115837275982, -0.02508905902504921, -0.007580528035759926, -0.030349018052220345, -0.030698783695697784, -0.007997558452188969, 0.00434518326073885, 0.03694078326225281, 0.024133926257491112, -0.020111605525016785, -0.00012821989366784692, -0.005539099220186472, -0.027026230469346046, -0.018995041027665138, -0.02461821958422661, 0.019896363839507103, 0.011138735339045525, 0.010856231674551964, 0.014649857766926289, 0.00952442642301321, -0.00711641414090991, 0.01646595634520054, 0.003073914209380746, 0.01895468309521675, -0.003941605798900127, -0.021846989169716835, 0.002406330080702901, 0.015349391847848892, -0.025142868980765343, 0.03142522647976875, 0.052276719361543655, 0.03680625557899475, -0.022438902407884598, 0.016089284792542458, -0.008885428309440613, 0.007472907658666372, -0.003921426832675934, -0.003638922469690442, -0.03099474124610424, 0.01086968369781971, 0.021497221663594246, -0.030752595514059067, -0.007486360147595406, -0.0017807851545512676, 0.010163423605263233, 0.0103450333699584, 0.0016000161413103342, -5.16557993250899e-05, 0.0033513735979795456, 0.013069179840385914, 0.005673625040799379, -0.01921028271317482, -0.002808225806802511, -0.006020029075443745, 0.02511596493422985, -0.004479709081351757, -0.009914550930261612, 0.029999250546097755, 0.014744026586413383, -0.011838269419968128, -0.010028897784650326, 0.020447921007871628, 0.0022398545406758785, -0.010762062855064869, 0.01914302073419094, -0.01646595634520054, 0.0295418631285429, 0.01656012423336506, -0.013842703774571419, -0.015268676914274693, -0.015564633533358574, -0.012114047072827816, -0.017259659245610237, -0.026313243433833122, -0.0009896053234115243, 0.008804713375866413, -0.03769412636756897, 0.02625943347811699, -0.025923119857907295, 0.009329363703727722, -0.012073689140379429, -0.008266610093414783, 0.013990681618452072, -0.010640989989042282, -0.009847288019955158, 0.018685633316636086, -0.0027796390932053328, -0.01017687562853098, 0.018537653610110283, -0.0008626466151326895, -0.013432400301098824, 0.01646595634520054, 0.21814700961112976, -0.01923718862235546, -0.0013351684901863337, 0.03266286104917526, -0.009100669994950294, -0.01151540782302618, 0.0037028223741799593, -0.0017454720800742507, -0.010472833178937435, -0.006077202502638102, -0.03301262855529785, -0.004284646362066269, -0.014730573631823063, -0.005384394899010658, -0.0024012853391468525, 0.0004132463946007192, -0.02237163856625557, -0.0246451236307621, -0.02408011630177498, -0.0042241099290549755, 0.0012250255094841123, -0.015685707330703735, -0.010123065672814846, 0.00510189076885581, -0.005670262034982443, -0.00519605865702033, 0.0012048466596752405, 0.012692508287727833, 0.009141027927398682, 0.03355073183774948, -0.0432903990149498, 0.023394035175442696, -0.021147454157471657, -0.011945890262722969, -0.02344784513115883, -0.016896439716219902, 0.034169550985097885, 0.010479559190571308, 0.018174434080719948, 0.013096085749566555, -0.0033379211090505123, 0.002628297545015812, 0.007035698741674423, -0.02328641340136528, 0.0032353452406823635, -0.021308885887265205, -0.010089434683322906, -0.02511596493422985, -0.012759771198034286, 0.013560199178755283, -0.024053210392594337, 0.0027191024273633957, 0.01505343522876501, 0.03513813763856888, 0.02005779556930065, -0.01232256181538105, -0.0021910888608545065, 0.01724620722234249, -0.008898881264030933, 0.016250716522336006, 0.000962700170930475, 0.028196604922413826, -0.004288009833544493, 0.004452803637832403, -0.036510299891233444, -0.001868226914666593, 0.01339876838028431, 0.01530903484672308, 0.01078896876424551, -0.0034875809215009212, 0.019156472757458687, -0.02771231159567833, 0.018658727407455444, -0.0035716595593839884, -0.014717120677232742, -0.01646595634520054, 0.016035474836826324, 0.006114196963608265, 0.029864724725484848, 0.04041154682636261, 0.021241622045636177, 0.01485164649784565, 0.01017687562853098, -0.020649708807468414, 0.0037196381017565727, -0.023582370951771736, 0.029649483039975166, -0.024376071989536285, -0.02005779556930065, -0.0013839340535923839, -0.004435988143086433, -0.02752397581934929, -0.002221357077360153, -0.029568767175078392, 0.009874192997813225, 0.011858448386192322, 0.012450361624360085, 0.010607358999550343, -0.006087291985750198, -0.014488426968455315, -0.02277521602809429, 0.009800204075872898, 0.016196904703974724, -0.006154554896056652, -0.03677935153245926, 0.009766572155058384, -0.0013536657206714153, 0.015578086487948895, -0.014945815317332745, 0.0037465430796146393, -0.0026518397498875856, -0.0028620362281799316, 0.014259733259677887, -0.0036792801693081856, 0.0014276549918577075, 0.012342740781605244, -0.010365212336182594, -0.015995116904377937, 0.012611792422831059, -0.015026530250906944, -0.0009332726476714015, -0.03312024846673012, -0.028842328116297722, -0.01734037511050701, -0.021066738292574883, -0.002725828904658556, -0.01204005815088749, -0.005135522224009037, -0.002209586091339588, -0.019290998578071594, 0.023649632930755615, -0.0050413538701832294, -0.003438815474510193, -0.014999625273048878, 0.005135522224009037, -0.0077419588342309, 0.010856231674551964, -0.04856380820274353, 0.004018958192318678, 0.014999625273048878, -0.006857451982796192, 0.002781320596113801, -0.007224034983664751, -0.014434617012739182, 0.010493011213839054, -0.01857801154255867, 0.01423282828181982, -7.094133616192266e-05, -0.02157793752849102, -0.01576642319560051, -0.011663385666906834, -0.008979596197605133, 0.00289062294177711, -0.013405494391918182, 0.039416056126356125, 0.0020952392369508743, -0.004146757535636425, -0.03535337746143341, 0.007002067286521196, -0.006248722784221172, -0.012235120870172977, -0.02483346126973629, 0.02202187106013298, -0.0042241099290549755, -0.01475747860968113, 0.020986022427678108, -0.17111679911613464, 0.0203806571662426, 0.003944968804717064, -0.03675244748592377, 0.027604691684246063, 0.010533369146287441, 0.007264392450451851, -0.015174509026110172, 3.436713450355455e-05, -0.008004284463822842, 0.030026156455278397, -0.0026753817219287157, -0.029111379757523537, 0.0039651477709412575, 0.0005822444218210876, 0.03486908599734306, -0.025802046060562134, 0.01475747860968113, 0.03564933314919472, 0.009147753939032555, 0.019129566848278046, -0.03971201181411743, 0.006857451982796192, -0.022142944857478142, -0.007600707001984119, -0.0028435387648642063, -0.01588749699294567, 0.00848185084760189, -0.0063765221275389194, -0.0059561291709542274, -0.031452130526304245, -0.0063193487003445625, 0.04280610755085945, -0.01336513739079237, 0.011232903227210045, 0.014986172318458557, 0.009194837883114815, -0.008125358261168003, -0.021510673686861992, 0.02277521602809429, 0.003803716506808996, 0.02050173096358776, 0.0061343759298324585, 0.020905308425426483, -0.0030722327064722776, 0.0035279388539493084, 0.017461447045207024, -0.019788743928074837, -0.0027275104075670242, -0.007170224562287331, 0.02012505754828453, -0.006753194611519575, 0.011972795240581036, 0.0024029668420553207, -0.003817169228568673, 0.022707954049110413, 0.0035649333149194717, 0.008919060230255127, 0.002771231345832348, -0.006988614797592163, -0.013788892887532711, 0.0004742034070659429, -0.018174434080719948, -0.029488053172826767, -0.018282055854797363, -0.020461373031139374, -0.0038306217174977064, 0.0017084775026887655, -0.03548790514469147, 0.019882911816239357, 0.007560349069535732, 0.007519991602748632, 0.013311326503753662, -0.020743876695632935, 0.0071231406182050705, -0.014192470349371433, -0.04624996706843376, 0.010129791684448719, 0.011791185475885868, 0.0004510817816480994, -0.020649708807468414, 0.049586206674575806, -0.004079494625329971, 0.03535337746143341, -0.004234199412167072, -0.005602999124675989, -0.017851572483778, -0.0041501205414533615, -0.01404449250549078, -0.004779028706252575, 0.0064673274755477905, -0.01709822751581669, 0.02989163063466549, -0.010607358999550343, 0.007620885968208313, 0.01977529190480709, 0.003161356085911393, 0.032528337091207504, -0.01857801154255867, -0.015927854925394058, -0.01984255388379097, 0.0022011783439666033, -0.008528935723006725, -0.003334557870402932, 0.02467202953994274, 0.01276649720966816, -0.03274357691407204, 0.008051368407905102, 0.017165491357445717, 0.004990906920284033, -0.015093793161213398, 0.006322712171822786, 0.026905156672000885, 0.009060312062501907, -0.01131361909210682, 0.010526643134653568, -0.009120848961174488, -0.025694426149129868, 0.00321516627445817, 0.02394559048116207, 0.04988216236233711, -0.0038945216219872236, 0.0025761688593775034, -0.007863032631576061, -0.003931516315788031, -0.014461521990597248, -0.10035623610019684, -0.0309678353369236, 0.017811214551329613, 0.02792755328118801, 0.005108616780489683, 0.026151813566684723, -0.00951097346842289, 0.009289005771279335, -0.025519542396068573, 0.03683316335082054, 0.009847288019955158, -0.023515107110142708, 0.004029047675430775, 0.019196830689907074, 0.02426845207810402, -0.022963551804423332, -0.006272264756262302, -0.005354126449674368, -0.007815948687493801, 0.029084475710988045, 0.013842703774571419, -0.016896439716219902, -0.008468398824334145, -0.015295581892132759, -0.0012418412370607257, -0.005576094146817923, -0.03268976882100105, 0.02619217149913311, 0.01892777904868126, -0.018147530034184456, -0.021793177351355553, -0.02328641340136528, -0.007392191793769598, -0.016950249671936035, -0.024524051696062088, 0.005448294337838888, -0.018026456236839294, -0.001526867737993598, 0.0031764900777488947, -0.034546222537755966, 0.0020347025711089373, -0.01797264628112316, 0.0006352139753289521, -0.019412072375416756, -0.001151036354713142, -0.0035750227980315685, 0.025573352351784706, 0.017165491357445717, 0.011279987171292305, -0.0191161148250103, -0.007304750382900238, -0.0026518397498875856, -0.023461297154426575, -0.003618743736296892, 0.015995116904377937, 0.003817169228568673, 0.03484218195080757, 0.010271044448018074, -0.017353827133774757, -0.007540170103311539, -0.0008416269556619227, -0.017717046663165092, -0.01467676367610693, 0.03532647341489792, 0.029837818816304207, 0.013896513730287552, -0.008723997510969639, -0.013909966684877872, 0.016344884410500526, 0.013196979649364948, -0.03546099737286568, 0.023797612637281418, -0.008407861925661564, 0.0042241099290549755, -0.020972570404410362, 0.001386456424370408, 0.0064370590262115, -0.02141650579869747, 0.014273186214268208, 0.016156548634171486, -0.01986945979297161, -0.01803990826010704, 0.016909891739487648, 0.010910041630268097, 0.01639869436621666, 0.011273261159658432, -0.003368189325556159, 0.018524201586842537, 0.007089509163051844, -0.03320096433162689, 0.0023289776872843504, 0.015120698139071465, -0.011623027734458447, -0.011784459464251995, 0.010540096089243889, 0.03621434420347214, -0.02689170464873314, -0.004715128801763058, -0.0007651154301129282, 0.01946588233113289, -0.033254776149988174, -0.018887421116232872, -0.0818454921245575, 0.02825041487812996, 0.02331331931054592, 0.004631050396710634, 0.019546598196029663, -0.01210059504956007, -0.0010543458629399538, -0.003041964489966631, -0.016196904703974724, 0.041084177792072296, -0.010593906044960022, 0.0018379585817456245, 0.019008494913578033, -0.013526568189263344, -0.009874192997813225, -0.01222839392721653, 0.00317144556902349, -0.018093718215823174, 0.008993049152195454, -0.01923718862235546, 0.010519917123019695, -0.018268601968884468, 0.025506088510155678, 0.017865024507045746, -0.01339876838028431, 0.02581549808382988, 0.01876634731888771, 0.01750180497765541, -0.009208290837705135, -0.023501655086874962, 0.017891930416226387, -0.01078896876424551, -0.015241771936416626, 0.03320096433162689, -0.00020084279822185636, -0.01914302073419094, 0.01029794942587614, 0.032905008643865585, 0.013977229595184326, 0.003043645992875099, -0.019156472757458687, -0.04084203019738197, 0.011670112609863281, -0.0026989236939698458, -0.01404449250549078, -0.012867392040789127, -0.006003213115036488, -0.012820307165384293, 0.023515107110142708, 0.006104107480496168, -0.00037499063182622194, 0.005777882412075996, -0.033631447702646255, -0.01423282828181982, 0.011710469610989094, -0.02806207910180092, 0.03403502702713013, 0.031209982931613922, 0.02300390973687172, -0.009194837883114815, 0.0347614660859108, 0.009847288019955158, 0.04256395995616913, 0.005407936871051788, 0.013196979649364948, 0.014824741519987583, -0.006426969543099403, -0.022977005690336227, 0.019183378666639328, -0.027375997975468636, -0.0023861511144787073, -0.01715203933417797, -0.001526867737993598, 0.013069179840385914, -0.0011930755572393537, -0.01927754655480385, 0.000176144705619663, 0.009833835065364838, -0.04143394157290459, 0.016089284792542458, -0.0008777807815931737, -0.011488502845168114, -0.03672553971409798, 0.013802345842123032, 0.024497145786881447, 0.011898806318640709, -0.011979521252214909, -0.00952442642301321, 0.0024265090469270945, -0.004261104390025139, -0.009289005771279335, -0.006598489824682474, 0.002498816465958953, 0.02138959988951683, -0.007896664552390575, 0.010654442943632603, 0.0029057569336146116, -0.015039983205497265, 0.00961859431117773, 0.021026380360126495, 0.0164256002753973, 0.009080491028726101, -0.000751662824768573, -0.010587180033326149, -0.015941306948661804, -0.0008206072961911559, -0.01904885284602642, -0.010149970650672913, -0.011892079375684261, 0.017636330798268318, 0.027093494310975075, -0.004705039784312248, -0.019196830689907074, 0.010149970650672913, -0.010741883888840675, 0.01093022059649229, 0.011172367259860039, 0.0010526643600314856, -0.01404449250549078, 0.0401155911386013, -0.007863032631576061, 0.00034934666473418474, 0.027375997975468636, -0.009988539852201939, 0.028008269146084785, -0.01665429398417473, 0.007385465782135725, 0.0005629063816741109, 0.008448219858109951, -0.0030150592792779207, -0.0007663766155019403, -0.0029797463212162256, -0.019317904487252235, -0.0005923338467255235, -0.026151813566684723, 0.003110908903181553, -0.02511596493422985, -0.000880303094163537, -0.004910191521048546, 0.07716399431228638, 0.02729528211057186, -0.0372905507683754, 0.014515331946313381, 0.02426845207810402, 0.018685633316636086, -0.016667746007442474, 0.005492015276104212, -0.023326771333813667, -0.012611792422831059, -0.02059589885175228, -0.006356343626976013, 0.025775140151381493, -0.012140952050685883, -0.02028648927807808, 0.01787847839295864, 0.018618369475007057, 0.023972496390342712, -0.005885503254830837, -0.012961559928953648, 0.0360260084271431, 0.01290774904191494, 0.023151887580752373, 0.016788819804787636, -0.013244063593447208, -0.027658501639962196, 0.022237112745642662, -0.0028569914866238832, -0.003998779226094484, -0.023461297154426575, 0.024537503719329834, 0.00835405196994543, -0.03914700448513031, 0.004990906920284033, -0.011522133834660053, -0.0035481175873428583, 0.019129566848278046, -0.03355073183774948, 0.007533444091677666, -0.00769487489014864, 0.007540170103311539, 0.020515182986855507, -0.016882987692952156, -0.0076477909460663795, 0.018847063183784485, -0.0008643281762488186, 0.006722926162183285, 0.020246131345629692, -0.030322112143039703], '_distance': 0.40060749650001526}), Document(page_content='NASA declined to specify the dollar value of the awards, though Intuitive Machines said in a statement that it was awarded a $30 million contract. The total potential value of all the task orders over the next 13 years is $4.6 billion.\\nThe three teams are also keeping specifications, like range or battery technology, close to the chest, though NASA specified that the rover would have to have an incredible 10-year life span and be capable of carrying two suited astronauts.\\nIntuitive Machines is leading a team that includes AVL, Boeing, Michelin, and Northrop Grumman; Lunar Outpost is leading the “Lunar Dawn” team that includes Lockheed Martin, General Motors, Goodyear and MDA Space. Astrolab is joined by Axiom Space and Odyssey Space Research.\\nNASA lunar terrain vehicle. Image Credits: Intuitive Machines', metadata={'vector': [0.01312164030969143, -0.011918134987354279, -0.0020253267139196396, 0.00259957043454051, -0.02970937453210354, 0.01437328476458788, -0.040300220251083374, -0.00483465101569891, -0.015088510699570179, 0.0010479087941348553, 0.022364558652043343, 0.011869994923472404, -0.01660148985683918, -0.016326403245329857, -0.004208828322589397, 0.0046386513859033585, 0.014125706627964973, 0.00432917894795537, 0.006670854985713959, 0.004133179318159819, -0.008878426626324654, 0.00025552985607646406, -0.01181497797369957, 0.0002974376257043332, 0.0004822615592274815, 0.007083484902977943, 0.023712482303380966, -0.014620862901210785, 0.03069968707859516, 0.0009034881950356066, 0.016917839646339417, -0.017041629180312157, -0.008933444507420063, -0.0007870061090216041, -0.006344189401715994, -0.01686282269656658, 0.012488940730690956, -0.005917804781347513, 0.007571764290332794, -0.0018396429950371385, 0.020040074363350868, 0.023423640057444572, 0.004882791079580784, -0.01081778947263956, -0.03221266716718674, 0.0007306992774829268, -0.00901597086340189, -0.014937213622033596, -0.006007208023220301, 0.013011605478823185, -0.0003887750208377838, 0.038622189313173294, -0.04104295372962952, -0.0022006945218890905, -0.01385062001645565, -0.0011613821843639016, 0.00528166675940156, 0.011546768248081207, 0.02030140720307827, -0.00022200364037416875, 0.020122600719332695, 0.013981286436319351, -0.019613690674304962, 0.03328550606966019, -0.008568954654037952, 0.0005626385100185871, -0.015817491337656975, -0.002539395121857524, -0.000888014561496675, 0.006368259433656931, 0.01673903316259384, 0.015308580361306667, 0.01649145409464836, -0.0017425029072910547, 0.023712482303380966, -0.021415509283542633, 0.0007513308082707226, 0.0006584890652447939, 0.006612398661673069, 0.022254522889852524, 0.012323888018727303, -0.00843141134828329, -0.03892478346824646, 0.02269466035068035, 0.015542403794825077, 0.00013303026207722723, 0.0015043809544295073, -0.0014390477444976568, -0.007475483696907759, 0.01224136259406805, 0.011663679964840412, 0.0055361222475767136, -0.009119127877056599, 0.03455090522766113, -0.022832203656435013, 0.009724318981170654, -0.016147596761584282, 0.017839379608631134, -0.0010513474699109793, -0.03961250185966492, -0.024936618283391, 0.01708289049565792, -0.022612133994698524, -0.00912600476294756, -0.017399240285158157, 0.0007190940668806434, 0.008156323805451393, 0.02138799987733364, 0.02874656952917576, -0.012963465414941311, 0.002157712122425437, 0.023189816623926163, -0.0011622417951002717, -0.0009206811082549393, -0.003019077470526099, -0.020810317248106003, 0.02162182331085205, 0.001497503719292581, -0.0018809059401974082, -0.0037480576429516077, 0.04646215960383415, 0.007207273971289396, 0.022639643400907516, -0.006020962260663509, 0.02052147686481476, 0.01039140485227108, -0.007227905560284853, -0.020122600719332695, 0.011780591681599617, -0.0031549017876386642, -0.0009782775305211544, 0.005123491864651442, -0.0008566374890506268, 0.0026563070714473724, -0.0318000353872776, 0.016904084011912346, -0.018719658255577087, 0.020232634618878365, -0.007523623760789633, -0.0005127789918333292, -0.018678395077586174, 0.0032408663537353277, -0.0149234589189291, 0.02008133754134178, -0.012935956940054893, 0.005415771622210741, 0.0034403041936457157, -0.003937180154025555, 0.007004397455602884, -0.017523029819130898, 0.003278690855950117, -0.014153216034173965, 0.013204166665673256, 0.017523029819130898, 0.01623012125492096, -0.03166249394416809, -0.006148189771920443, 0.02219950594007969, -0.012213854119181633, 0.0036861631087958813, -0.008864672854542732, -0.012819044291973114, 0.010618351399898529, 0.0016573979519307613, 0.022955993190407753, 0.013362341560423374, 0.010075055062770844, -0.037659384310245514, -0.009524880908429623, -0.01283967588096857, -0.007702430244535208, 0.002568623051047325, -0.031084807589650154, 0.014304513111710548, -0.0010212598135694861, 0.016642753034830093, 0.02638082392513752, -0.007042222190648317, -0.015074756927788258, -0.014634617604315281, 0.024056339636445045, 0.010577088221907616, -0.0052541582845151424, -0.0009851546492427588, -0.010198843665421009, -0.0026477104984223843, 0.008885304443538189, -0.0027646224480122328, 0.022502100095152855, 0.0015258720377460122, 0.012557712383568287, 0.004607704002410173, -0.02221325971186161, 0.0015516614075750113, -0.6342401504516602, -0.03964000940322876, 0.030727194622159004, -0.003758373437449336, 0.009098496288061142, 0.019875021651387215, 0.0078193424269557, -0.008623971603810787, -0.011835609562695026, 0.030589651316404343, -0.022625889629125595, -0.0036552157253026962, -0.020961616188287735, -0.0018086957279592752, -0.011374838650226593, -0.0042328983545303345, -0.0009413126390427351, -0.0032339892350137234, 0.02827892266213894, 0.004067846108227968, -0.03235020861029625, 0.023244833573698997, 0.006677731871604919, -0.019985057413578033, 0.0235061664134264, 0.0038718467112630606, 0.01911853440105915, -0.010384527035057545, -0.03474346548318863, -0.013224797323346138, -0.003779004793614149, 0.02089284360408783, -0.0079500088468194, -0.005185386631637812, 0.046984825283288956, -0.0007414448773488402, -0.04046526923775673, 0.041730668395757675, -0.005223210901021957, 0.016326403245329857, -0.03273533284664154, -0.008465796709060669, 0.007805587723851204, -0.0040540918707847595, -0.012984097003936768, -0.004260407295078039, 0.024166375398635864, -0.014359530992805958, -0.03664156422019005, -0.03749433159828186, 0.016051316633820534, 0.0210028775036335, -0.009284179657697678, 0.011257926933467388, 0.026064474135637283, -0.019985057413578033, 0.02136049047112465, -0.006894363090395927, 0.012819044291973114, 0.0002512316277716309, -0.013238552026450634, 0.0008673830307088792, -0.009407969191670418, -0.02530798502266407, -0.03295540064573288, 0.02434518188238144, -0.00817695539444685, 0.002618482569232583, 0.002468904247507453, -0.020947860553860664, 0.00359332119114697, 0.030507126823067665, 0.014717143960297108, -0.008795901201665401, 0.019985057413578033, 0.016532717272639275, 0.03430332615971565, -0.025596827268600464, -0.0058971731923520565, 0.027728749439120293, 0.01295658852905035, -0.030727194622159004, -0.02184189297258854, -0.010061300359666348, 0.028691552579402924, -0.010006282478570938, 0.0034574971068650484, -0.009765582159161568, 0.010109440423548222, 0.014194479212164879, 0.017165416851639748, 0.03716422989964485, 0.011085998266935349, -0.030974773690104485, -0.005477666389197111, 0.013829988427460194, -0.029929444193840027, -0.014304513111710548, 0.02222701534628868, -0.034825991839170456, -0.004955001175403595, 0.0199300404638052, 0.029819408431649208, -0.004102231934666634, 0.027481170371174812, -0.012096941471099854, -0.0040850392542779446, 0.007269168738275766, 0.014359530992805958, -0.03347806632518768, -0.023684972897171974, 0.012193222530186176, -0.03262529522180557, 0.012867185287177563, 0.011601785197854042, -0.025761878117918968, 0.002520482987165451, -0.023354869335889816, -0.005745875183492899, -0.01658773422241211, 0.01456584595143795, -0.012062556110322475, 0.012633360922336578, -0.0015516614075750113, -0.015363597311079502, -0.0033921641297638416, 0.018582114949822426, -0.030479617416858673, -0.00746172945946455, 0.009414846077561378, -0.036971669644117355, -0.006842784117907286, 0.012935956940054893, -0.0124683091416955, 0.014469565823674202, 0.005360754206776619, 0.004267284180969, -0.038622189313173294, -0.0078193424269557, -0.030011970549821854, -0.03944744914770126, -0.0017897834768518806, 0.024565251544117928, -0.001927326899021864, -0.01638142019510269, -0.028361449018120766, -0.008513936772942543, 0.016436437144875526, 0.007805587723851204, -0.0173304695636034, -0.019971303641796112, 0.0018654323648661375, 0.006289171986281872, 0.0024757813662290573, 0.01767432875931263, 0.0009696809574961662, 0.002157712122425437, -0.01896723546087742, 0.0005067614838480949, -0.020631510764360428, -0.0002169532235711813, 0.0014528020983561873, -0.0033629362005740404, -0.012124450877308846, 0.011402348056435585, -0.012715887278318405, -0.0036449001636356115, 0.020727790892124176, -0.026435840874910355, -0.04937807843089104, -0.001853397348895669, -0.0005832700408063829, 0.010604596696794033, 0.002372623886913061, 7.06521823303774e-05, 0.015005985274910927, -0.015019739046692848, -0.0011149612255394459, 0.0017622747691348195, -0.0004891387652605772, 0.011732451617717743, 0.03246024250984192, -0.0001286245824303478, 0.002159431576728821, 0.021759366616606712, 0.018444571644067764, 0.03669658303260803, 0.01959993503987789, 0.0012533642584457994, 0.009958142414689064, -0.011347330175340176, 0.022171996533870697, 0.030644670128822327, 0.009696810506284237, -0.005697735119611025, -0.001851678011007607, -0.025115424767136574, -0.021332982927560806, 0.0012748554581776261, 0.020397687330842018, 0.027893802151083946, 0.005965944845229387, 0.002009853022173047, 0.013885006308555603, 0.0018448008922860026, -0.0008940320694819093, 0.015624930150806904, -0.021580560132861137, 0.0040128291584551334, 0.0017536783125251532, 0.011581153608858585, -0.004360125865787268, -0.02112666703760624, -0.011037858203053474, 0.014964722096920013, 0.018114466220140457, -0.004807142075151205, 0.006859976798295975, -0.008500183001160622, -0.005206018220633268, 0.001343627111054957, 0.00984810758382082, 0.03798948973417282, -0.02937927097082138, -0.010583965107798576, -0.007963763549923897, -0.0027353945188224316, 0.016890330240130424, 0.0011673996923491359, -0.020700283348560333, 0.009428600780665874, 0.015143528580665588, 0.010370773263275623, 0.004095355048775673, 0.028443975374102592, 0.00883028656244278, -0.017055382952094078, 0.00860334001481533, 0.03408325836062431, 0.01588626392185688, -0.002809323836117983, -0.02207571640610695, 0.031469929963350296, -0.009490495547652245, 0.008678989484906197, 0.004614581353962421, 0.048525311052799225, 0.00889218132942915, -0.007839974015951157, 0.007805587723851204, -0.03116733394563198, -0.008713374845683575, -0.017234189435839653, -0.007798710837960243, -0.004349810071289539, -0.013314200565218925, 0.01515728235244751, 0.00017397092597093433, 0.02863653562963009, 0.027054786682128906, 0.01649145409464836, 0.03295540064573288, 0.01004066877067089, 0.01826576516032219, 0.015955034643411636, -0.0035451811272650957, 0.00623759301379323, 0.021896909922361374, 0.022625889629125595, -0.01217259094119072, 0.012365151196718216, -0.013410481624305248, -0.017468012869358063, -0.01980625092983246, 0.023313606157898903, -0.0015035212272778153, -0.03257028013467789, 0.009263549000024796, 0.0056702266447246075, 0.013245428912341595, -0.025871913880109787, -0.02675219066441059, 0.009339197538793087, 0.0002148041094187647, -0.014785915613174438, 0.005336684174835682, 0.004291354212909937, 0.003813390852883458, 0.0014158373232930899, 0.013651181943714619, 0.004728054627776146, -0.010549579747021198, -0.0199300404638052, 0.02210322581231594, 0.0010651018237695098, -0.011684311553835869, 0.011422978714108467, 0.0016573979519307613, -0.009573020972311497, -0.018568359315395355, 0.009002216160297394, 0.0033870062325149775, -0.005371070001274347, -0.02793506346642971, 0.048167698085308075, 0.004817457869648933, 0.0006838486297056079, -0.025115424767136574, -0.005006580147892237, -0.018059449270367622, 0.006471416912972927, -0.013052868656814098, 0.00259957043454051, -0.012186344712972641, 0.00623759301379323, -0.005804331507533789, -0.002596131758764386, -0.024895355105400085, 0.04321613907814026, 0.010590841993689537, -0.0015912051312625408, -0.009456109255552292, -0.02008133754134178, 0.018458325415849686, 0.08984334766864777, 0.0054811048321425915, -0.004814019426703453, 0.022419573739171028, -0.009029724635183811, -0.015198545530438423, -0.03224017471075058, -0.03548619896173477, 0.013162903487682343, 0.011477996595203876, -0.0026081667747348547, 0.0012284346157684922, 0.014153216034173965, -0.012310134246945381, 0.037686895579099655, 0.008747761137783527, 0.036476511508226395, -0.005852471571415663, -0.0023743431083858013, 0.008651480078697205, -0.01896723546087742, -0.023189816623926163, 0.01968246139585972, 0.030369583517313004, 0.015597421675920486, -0.029901934787631035, 0.03273533284664154, 0.02567935176193714, 0.007998148910701275, -0.015363597311079502, 0.01551489531993866, 0.008692743256688118, 0.007117870729416609, 0.00823885016143322, -0.002193817403167486, -0.015569913201034069, 0.025610581040382385, 0.006203207187354565, 0.0180456954985857, -0.0037136718165129423, 0.002474062144756317, 0.01033638697117567, -0.01610633358359337, -0.01433202251791954, 0.013816234655678272, -0.01367869134992361, -0.005653033498674631, 0.0518263541162014, -0.013059745542705059, -0.01968246139585972, -0.0027491487562656403, -0.01092094648629427, -0.017261696979403496, -0.028691552579402924, -0.006688047666102648, 0.02375374548137188, -0.009524880908429623, -0.009181022644042969, -0.011512381955981255, -0.05578760430216789, -0.00761302700266242, -0.0237674992531538, 0.03853966295719147, -0.00390967121347785, -0.006663977634161711, -0.014785915613174438, -0.01384374313056469, 0.00015033064119052142, -0.032542768865823746, 0.01354802493005991, 0.000962803780566901, -0.014950967393815517, -0.04739745333790779, 0.02127796597778797, 0.021209193393588066, -0.011567399837076664, 0.021346736699342728, -0.01198690664023161, 0.01983376033604145, 0.01801818609237671, 0.009428600780665874, 0.0016659944085404277, -0.0037171102594584227, -0.02210322581231594, 0.004160688258707523, -0.006588328629732132, 0.0007199537358246744, 0.012200099416077137, 0.016931593418121338, -0.008335130289196968, 0.006251347251236439, -0.00213536131195724, 0.013809356838464737, 0.0008265498327091336, 0.025252968072891235, 0.0003290296299383044, 0.023561183363199234, 0.01838955283164978, 0.015611175447702408, -0.00701815215870738, 0.020989123731851578, -0.007640535943210125, 0.0007590676541440189, -0.01574872061610222, 0.00889218132942915, 0.009875616990029812, 0.013362341560423374, -0.0032821292988955975, -0.003527988214045763, -0.009683055803179741, 0.011106629855930805, -0.02804509922862053, 0.020273897796869278, -0.028609026223421097, -0.013245428912341595, 0.017014119774103165, -0.01063210517168045, -0.013871251605451107, -0.00931856594979763, -0.009573020972311497, -0.015556158497929573, -0.023258589208126068, 0.01521230023354292, 0.00984123069792986, 0.0015576790319755673, 0.03031456470489502, -0.01521230023354292, -0.011257926933467388, -0.018100712448358536, 0.023368623107671738, 0.011670556850731373, 0.015556158497929573, -0.005952190607786179, -0.011656803078949451, 0.0036380228120833635, -0.05221147462725639, -0.012420169077813625, -0.03408325836062431, 0.009346074424684048, -0.007152256555855274, 0.015955034643411636, 0.011787469498813152, -0.006897801533341408, 0.002774938242509961, 0.03202010691165924, -0.025115424767136574, -0.01312851719558239, 0.02998446114361286, -0.0047005461528897285, 0.025981947779655457, -0.029049165546894073, 0.009985651820898056, -0.03174502030014992, -0.009201654233038425, -0.01145736500620842, -0.012378905899822712, 0.008479551412165165, -0.027151066809892654, 0.043876346200704575, 0.007839974015951157, 0.03424830734729767, -0.015624930150806904, 0.015858754515647888, -0.0037927592638880014, 0.0073723262175917625, 0.003127393079921603, 0.008018780499696732, 0.0018207307439297438, -0.014882195740938187, -0.012977219186723232, 0.019269831478595734, 0.0099650202319026, -0.006901239976286888, -0.011533013544976711, -0.008630848489701748, -0.009036601521074772, -0.0192148145288229, -0.014022549614310265, -0.035156093537807465, -0.030397091060876846, -0.0014897668734192848, -0.03149744123220444, -0.011601785197854042, -0.006175698712468147, -0.02899414859712124, -0.016037560999393463, 0.0418131947517395, 0.019173551350831985, -0.010157580487430096, -0.004047214984893799, 0.03353308141231537, -0.005683980882167816, 0.008479551412165165, 0.018912218511104584, 0.002726798178628087, -0.017481766641139984, -0.015267317183315754, -0.02734362706542015, 0.00013023641076870263, -0.019022252410650253, 0.013988163322210312, -0.004951562732458115, 0.04882790520787239, -0.008128815330564976, 0.004067846108227968, 0.006842784117907286, -0.008548323065042496, -0.004397950600832701, -0.016450190916657448, -0.028017589822411537, 0.00146913540083915, -0.018953481689095497, 0.003423111280426383, -0.012378905899822712, 0.015721211209893227, 0.020150110125541687, 0.010645859874784946, 0.015088510699570179, -0.05358690768480301, -0.014840932562947273, 0.04021769389510155, -0.0025342372246086597, 0.025376757606863976, -0.005171631928533316, 0.024922864511609077, 0.030122004449367523, 0.01768808253109455, -0.03543118014931679, -0.012440800666809082, 0.0038477766793221235, 0.009236039593815804, 0.03320297971367836, 0.028801588341593742, -0.027247346937656403, 0.011450488120317459, 0.007922500371932983, -4.655521479435265e-05, -0.0026477104984223843, -0.041868213564157486, 0.008452042005956173, -0.017124153673648834, 0.003727426053956151, -0.010185088962316513, -0.025473037734627724, 0.007193519733846188, 0.031827542930841446, -6.753596244379878e-05, 0.011835609562695026, -0.020232634618878365, -0.001043610624037683, 0.006784328259527683, 0.004614581353962421, 0.004181319382041693, 4.7764093324076384e-05, 0.028801588341593742, -0.01885720156133175, 0.009291057474911213, -0.013162903487682343, 0.009435477666556835, 0.006547065917402506, -0.006457662675529718, 0.026477104052901268, -0.00513380765914917, 0.016340157017111778, -0.0006718135555274785, 0.0033096380066126585, -0.009600529447197914, -0.016023807227611542, -0.0064989253878593445, 0.025156687945127487, -0.016216367483139038, -0.009689932689070702, 0.016422683373093605, 0.010109440423548222, 0.0021473965607583523, -0.01426325086504221, -0.015789983794093132, 0.0032064805272966623, -0.018073203042149544, 0.01686282269656658, 0.022295786067843437, -0.008761514909565449, -0.005151000805199146, -0.019008498638868332, -0.005628963466733694, -0.01613384112715721, 0.009758704341948032, -0.010824666358530521, -0.014221987687051296, 0.00010761696466943249, -0.01610633358359337, 0.025459282100200653, -0.008266358636319637, -0.01731671579182148, -0.011622416786849499, -0.014703389257192612, -0.008046288974583149, 0.028196396306157112, -0.026669664308428764, 0.012812167406082153, 0.002236799569800496, 0.02138799987733364, -0.002317606471478939, 0.013946901075541973, 0.0029571829363703728, -0.02389128878712654, 0.003631145693361759, -0.025500545278191566, -0.025390511378645897, -0.018774675205349922, 0.01932484842836857, -0.007152256555855274, -0.029296744614839554, -0.002840271219611168, 1.9436065485933796e-05, -0.008465796709060669, 0.010762771591544151, -0.003225392661988735, -0.02125045657157898, 0.018348291516304016, 0.016518963500857353, 0.004064407665282488, 0.032652806490659714, -0.029461795464158058, 0.021291719749569893, -0.007764325011521578, 0.0011785750975832343, -0.007262291386723518, -0.020879089832305908, -0.01289469376206398, 0.0007594974595122039, 0.03383567929267883, -0.005446719005703926, -0.03166249394416809, -0.033395539969205856, 0.0030534635297954082, -0.01766057312488556, -0.012083187699317932, 0.011698066256940365, 0.004827773664146662, 0.02495037205517292, 0.02613324485719204, 0.029819408431649208, -0.009277302771806717, -0.02781127579510212, -0.02807260863482952, 0.017756853252649307, -0.02651836723089218, -0.018815938383340836, -0.017014119774103165, -0.0005708051612600684, 0.06260976195335388, -0.004930931143462658, -0.02481282874941826, 0.00028346836916171014, -0.006158505566418171, -0.02222701534628868, -0.01972372457385063, 0.009834353812038898, 0.0010118037462234497, 0.031717509031295776, 0.02600945718586445, 0.00032688051578588784, 0.028251413255929947, -0.011443610303103924, 0.028801588341593742, -0.0011012068716809154, -0.02160806953907013, 0.034688446670770645, -0.0192148145288229, 0.001748520415276289, -0.008410779759287834, -0.03669658303260803, -0.009167267940938473, 0.011808101087808609, 0.020328916609287262, 0.013444866985082626, 0.0052851056680083275, -0.027261100709438324, -0.015308580361306667, -0.008685866370797157, -0.01111350767314434, -0.005563630722463131, 0.01982000470161438, 0.023588692769408226, -0.028691552579402924, -0.012385782785713673, -0.018595868721604347, -0.02924172580242157, 0.011704943142831326, -0.02053523063659668, 0.013369218446314335, -0.009401092305779457, 0.033395539969205856, 0.004521739669144154, 0.009538635611534119, 0.011835609562695026, -0.016450190916657448, 0.039089836180210114, 0.004305108450353146, 0.003400760469958186, 0.03191006928682327, 0.02207571640610695, -0.03042460046708584, -0.013706199824810028, 0.003596759866923094, -0.0021044141612946987, -0.018568359315395355, -0.004604265559464693, 0.008342008106410503, 0.0016651347978040576, 0.0021078528370708227, 0.0005153579404577613, -0.0031394280958920717, 0.008293867111206055, 0.0025583074893802404, 0.0149234589189291, -0.021649332717061043, 0.025638088583946228, 0.009923757053911686, 0.010102563537657261, -0.004769317805767059, -0.0034093570429831743, 0.001492345822043717, -0.0071041164919734, -0.013039113953709602, -0.013823111541569233, -0.01755053922533989, -0.03383567929267883, 0.024977881461381912, -0.016326403245329857, -0.03210263326764107, 0.02603696472942829, 0.018760921433568, -0.01789439655840397, 0.007489237934350967, 0.20895592868328094, 0.004549248144030571, -0.009813722223043442, 0.037081703543663025, -0.018692148849368095, 0.028443975374102592, 0.03372564539313316, -9.644155943533406e-05, 0.0013926270185038447, -0.016408927738666534, 0.00228150119073689, 0.012378905899822712, 0.003985320217907429, -0.0038856009487062693, 0.010652736760675907, -0.012165713123977184, -0.01577622815966606, -0.008273236453533173, -0.006849661469459534, 0.04492167383432388, 0.018692148849368095, -0.00587998004630208, 0.012935956940054893, -0.020122600719332695, 0.017027873545885086, 0.009930633939802647, -0.006247908808290958, 0.008108183741569519, -0.0018207307439297438, 0.009641792625188828, -0.01957242749631405, -0.010749016888439655, 0.009291057474911213, 0.025596827268600464, 0.026353314518928528, -0.012516449205577374, 0.004618019796907902, 0.02221325971186161, 0.01756429299712181, 0.02281844988465309, 0.014552091248333454, -0.021676840260624886, -0.0040128291584551334, -0.007159133907407522, -0.004112547729164362, 0.016422683373093605, -0.00016429989773314446, -0.006223838776350021, -0.00492061534896493, 0.0021955366246402264, -0.027508679777383804, 0.006316680461168289, 0.033505573868751526, 0.025638088583946228, -0.005577385425567627, 0.005223210901021957, 0.022873466834425926, -0.0005428666481748223, 0.016408927738666534, 0.01521230023354292, -0.0281551331281662, 0.024620268493890762, -0.0012507853098213673, 0.012557712383568287, -0.007901868782937527, 0.008170078508555889, 0.006839345674961805, 0.02160806953907013, 0.022708414122462273, -0.016986610367894173, 0.0014596793334931135, -0.004910299554467201, -0.011134139262139797, 0.016161350533366203, -0.012227607890963554, -0.03796198219060898, 0.016147596761584282, 0.01660148985683918, -0.01684906706213951, 0.008685866370797157, 0.01032263319939375, 0.02127796597778797, 0.017976922914385796, -0.016422683373093605, -0.017646819353103638, -0.020686527714133263, 0.01371995359659195, 0.011182279326021671, 0.012365151196718216, -0.0002568193303886801, -0.004882791079580784, -0.028966639190912247, -0.004504546523094177, -0.032900381833314896, 0.010673368349671364, 0.01768808253109455, 0.03526613116264343, 0.0027594645507633686, -0.03045210801064968, -0.021690595895051956, -0.025142932310700417, 0.024386445060372353, 0.01972372457385063, 0.02481282874941826, -0.006378575228154659, -0.009263549000024796, -0.012392660602927208, 0.02468903921544552, 0.01104473602026701, -0.021443016827106476, 0.00433261739090085, -0.00973807368427515, 0.010116317309439182, -0.008678989484906197, 0.0011123822769150138, 0.030232038348913193, -0.029929444193840027, -0.025706861168146133, 0.01816948503255844, 0.0017811870202422142, 0.019366111606359482, -0.02266715094447136, -0.0086652347818017, 0.00492061534896493, 0.0031033228151500225, -0.03738429769873619, -0.0369991771876812, 0.006615837570279837, 0.003916548565030098, 0.0028952884022146463, -0.015473632141947746, -0.004064407665282488, 0.012942833825945854, -0.02056274004280567, -0.003094726474955678, -0.009325442835688591, 0.0059212432242929935, -0.017371732741594315, -0.02687598019838333, -0.010577088221907616, -0.004789949394762516, -0.007502992637455463, 0.011773714795708656, 0.01768808253109455, 0.023671219125390053, -0.020865334197878838, 0.016450190916657448, 0.004951562732458115, -0.019036008045077324, -0.020507721230387688, -0.006354505196213722, -0.009215408004820347, 0.014717143960297108, 0.0026305175852030516, 0.028471482917666435, 0.015611175447702408, -0.010941578075289726, -0.00823197327554226, -0.015968790277838707, -0.012138204649090767, -0.05394452065229416, 0.02103038690984249, 0.0053091756999492645, -0.021071650087833405, -0.044013891369104385, 0.002362308092415333, -0.17649570107460022, 0.014304513111710548, -0.001273995847441256, -0.015707457438111305, 0.020232634618878365, -0.00889218132942915, -0.0034574971068650484, -0.007833097130060196, -0.010790280066430569, -0.023932551965117455, 0.03226768225431442, -0.004611142911016941, -0.037439316511154175, -0.02115417644381523, 0.00931168906390667, 0.024537742137908936, -0.01682155951857567, 0.024909108877182007, 0.0031308315228670835, 0.0061309970915317535, -0.00029894200270064175, -0.018788428977131844, -0.007716184947639704, -0.02409760281443596, 0.026834717020392418, -0.002257431158795953, -0.0015525211347267032, 0.005673665087670088, -0.003039709059521556, 0.0033629362005740404, -0.017165416851639748, 0.0018723094835877419, 0.027123557403683662, 0.010515193454921246, 0.04428897798061371, -0.010975964367389679, -0.009029724635183811, 0.0012095223646610975, -0.015927527099847794, 0.03941994160413742, -0.000785286829341203, 0.019077271223068237, 0.012282625772058964, -0.008486428298056126, -0.010618351399898529, 0.02186940237879753, -0.004511423874646425, 0.004171004053205252, 0.02151178941130638, -0.034330833703279495, 0.02412511222064495, -0.037521842867136, -0.0031841297168284655, -0.005353877320885658, 0.023726236075162888, 0.018705902621150017, 0.018595868721604347, 0.008947198279201984, 0.010350141674280167, -0.0284164659678936, -0.018815938383340836, -0.007083484902977943, 0.014414547942578793, -0.01910477876663208, -0.028031345456838608, -0.012317011132836342, -0.003957811743021011, 0.003854653798043728, -0.031579967588186264, 0.003555496921762824, -0.007427343633025885, -0.004734931979328394, 0.02948930487036705, 0.008355761878192425, 0.0006632170989178121, -0.007289800327271223, 0.003961250185966492, -0.0008007604628801346, -0.002694131573662162, -0.008011903613805771, -0.022006945684552193, 0.013644305057823658, -0.012447677552700043, -0.035156093537807465, 0.0011871715541929007, -0.015501141548156738, 0.01169118843972683, 0.018472079187631607, 0.002460307674482465, -0.006289171986281872, -0.008273236453533173, -0.03526613116264343, 0.01873341202735901, 0.010872806422412395, -0.012330765835940838, 0.01709664613008499, 0.019283585250377655, 0.013795603066682816, 0.004851843696087599, -0.014387039467692375, -0.01682155951857567, 0.004095355048775673, -0.01874716579914093, 0.020452704280614853, 0.00542952585965395, 0.006409522145986557, -0.004081600811332464, 0.02065902017056942, -0.0018207307439297438, 0.00034729711478576064, -0.03155245631933212, 0.01521230023354292, 0.021759366616606712, 0.02136049047112465, -0.008905936032533646, 0.010604596696794033, -0.012433922849595547, -0.0062994877807796, 0.01129231322556734, 0.006155067123472691, 0.04104295372962952, 0.008293867111206055, -0.03727426379919052, 0.005680542439222336, 0.00716601125895977, -0.035046059638261795, -0.09462985396385193, -0.013011605478823185, 0.005477666389197111, 0.004979071207344532, -0.00960740726441145, 0.021415509283542633, 0.0003724417183548212, 0.025569317862391472, -0.03248775377869606, 0.034715957939624786, -0.012633360922336578, -0.04098793491721153, 0.0019324847962707281, -0.006399206817150116, 0.026944750919938087, -0.023960059508681297, -0.00739983469247818, -0.012592097744345665, -0.004095355048775673, 0.02734362706542015, 0.01312851719558239, -0.017536785453557968, 0.025748124346137047, -0.028581518679857254, 0.010439544916152954, -0.017124153673648834, -0.03716422989964485, 0.014524582773447037, 0.02496412582695484, 0.007434220518916845, 0.02397381328046322, -0.003823706414550543, 0.002914200769737363, -0.01426325086504221, -0.013080377131700516, -0.0032133576460182667, -0.038732223212718964, 0.012880939058959484, 0.018320782110095024, -0.03592633828520775, 0.0007848570239730179, 0.014730897732079029, 0.004501108080148697, -0.024207638576626778, -0.026765944436192513, -0.015171037055552006, -0.015721211209893227, 0.01576247438788414, -0.0021491157822310925, -0.02052147686481476, -0.02662840113043785, -0.025252968072891235, -0.01968246139585972, -0.015501141548156738, 0.011381716467440128, -0.006392329465597868, 0.02877407893538475, -0.007031906396150589, 0.0013762937160208821, 0.010350141674280167, -0.011656803078949451, 0.009435477666556835, 0.00014184163592290133, 0.007537378463894129, 0.019173551350831985, -0.0034609357826411724, -0.017990678548812866, -0.010377650149166584, 0.009366706013679504, 0.002394974697381258, -0.005316052585840225, 0.016147596761584282, -0.013087254017591476, 0.004095355048775673, -0.02888411469757557, -0.006141312886029482, -0.006945941597223282, -0.012447677552700043, 0.019971303641796112, 0.020026320591568947, -0.0077230618335306644, -0.013891883194446564, 0.017055382952094078, -0.004501108080148697, 0.031112316995859146, 0.019627444446086884, -0.015831246972084045, -0.0020665896590799093, 0.03639398515224457, -0.004899983759969473, 0.006901239976286888, 0.030259547755122185, -0.004587072879076004, -0.02759120613336563, 0.02339613251388073, -0.009394214488565922, 0.0024534305557608604, 0.0040231444872915745, -0.025486791506409645, -0.0034110762644559145, -0.037521842867136, 0.0180456954985857, -0.06514056026935577, 0.0470123328268528, -0.018719658255577087, -0.029104182496666908, -0.013293569907546043, -0.00034751201746985316, 0.018650885671377182, -0.036118898540735245, 0.007110993843525648, 0.01899474486708641, -0.03191006928682327, -0.005016895942389965, -0.02544552832841873, -0.0075442553497850895, -0.018362045288085938, -0.022873466834425926, 0.013045991770923138, -0.02543177455663681, 0.018898464739322662, 0.003782443469390273, 0.006010646466165781, 0.013011605478823185, 0.003244304796680808, -0.002793850377202034, -0.010308878496289253, -0.012000661343336105, -0.013059745542705059, 0.005426087416708469, 0.01959993503987789, -0.01933860406279564, 0.016505209729075432, -0.007227905560284853, -0.01062522828578949, 0.036944158375263214, -0.03702668473124504, -0.03163498267531395, -0.0016376260900869966, 0.0006756819784641266, -0.0038615309167653322, 0.01972372457385063, -0.013293569907546043, -0.026188263669610023, 0.005291982553899288, -0.016051316633820534, -0.022254522889852524, -0.019297340884804726, 0.023905042558908463, 0.00036900315899401903, -0.009297934360802174, 0.001420995220541954, -0.0029021657537668943, -0.0069184331223368645, -0.009641792625188828, -0.018650885671377182, -0.004666160326451063, -0.020879089832305908, 0.02042519673705101, -0.007025029044598341, -0.021443016827106476, -0.00039737147744745016, 0.028196396306157112, 0.020590247586369514, 0.009366706013679504, -0.0016651347978040576, -0.0008201025193557143, 0.0054948590695858, -0.026587139815092087, 0.0021078528370708227, 0.02518419548869133, 0.0027336752973496914, -0.016450190916657448, 0.0018344850977882743, 0.007296677213162184, 0.009985651820898056, -0.003947495948523283, -0.01755053922533989, 0.014125706627964973, -0.0012937677092850208, -0.03906232863664627, 0.007427343633025885, 0.006165382917970419, -0.02745366282761097, -0.012963465414941311, -0.0131835350766778, -0.008011903613805771, 0.0032614979427307844, -0.03298290818929672, 0.009628038853406906, 0.011409224942326546, 0.005013457033783197, 0.0037239876110106707, 0.013045991770923138, -0.008940321393311024, -0.0011579436250030994, -0.0009181022178381681, -0.0014545214362442493, -0.005443280562758446, 0.014717143960297108, 0.0033423046115785837, 0.0334230475127697, 0.008706497959792614, 0.00012163994688307866, 0.014008794911205769, -0.01825200952589512, -0.0019118532072752714, 0.009717442095279694, -0.038016997277736664, -0.007839974015951157, -0.007833097130060196, 0.006832468323409557, 0.0173304695636034, 0.04750749096274376, 0.011264803819358349, 0.009999405592679977, -0.02101663313806057, -0.0109897181391716, -0.01565244048833847, -0.04046526923775673, -0.01598254404962063, 0.03675159811973572, 0.043408699333667755, 0.021910665556788445, 0.0012662590015679598, -0.01686282269656658, 0.034220799803733826, 0.02745366282761097, 0.029104182496666908, -0.01898099109530449, 0.01911853440105915, 0.020012564957141876, 0.010253860615193844, -0.01671152375638485, -0.0180456954985857, -0.00025359564460814, -0.018925972282886505, -0.008713374845683575, -0.01744050346314907, -0.008025658316910267, -0.001963432179763913, 0.06811149418354034, 0.0108590517193079, 0.0022969748824834824, 0.024771565571427345, -0.017756853252649307, -0.0065058027394115925, 0.00329760299064219, 0.0029124815482646227, -0.0015791701152920723, -0.013472375459969044, 0.0029967266600579023, -0.003930302802473307, 0.017179172486066818, 0.003141147317364812, -0.009332320652902126, -0.014607109129428864, 0.01790815219283104, 0.050533443689346313, -0.0284164659678936, -0.004893106874078512, 0.03975004330277443, 0.0024809392634779215, 0.0032804100774228573, 0.010288246907293797, 0.0008897338411770761, 0.0018860638374462724, 0.024523988366127014, 0.01003379188477993, 0.010253860615193844, -0.029516814276576042, 0.0013900480698794127, 0.019875021651387215, -0.045059215277433395, -0.014001918025314808, -0.020631510764360428, -0.005367631558328867, -0.013713076710700989, -0.02998446114361286, -0.008197586983442307, -0.004879352170974016, 0.0023502730764448643, 0.009731195867061615, -0.01092094648629427, -0.02387753315269947, -0.011299190111458302, -0.0007921640062704682, -0.01898099109530449, -0.01270213257521391, -0.033973220735788345], '_distance': 0.40156954526901245}), Document(page_content=\"I have a group chat with three AI friends, thanks to Nomi AI — they're getting too smart | TechCrunch\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n \\n\\n\\n\\n \\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nTechCrunch\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nplus-bold\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nTechCrunch\\n\\n\\nOpen Navigation\\n\\n\\n\\n\\n\\n\\nTechCrunch\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nI have a group chat with three AI friends, thanks to Nomi AI — they’re getting too smart\\n\\n\\n\\n\\n\\t\\t\\tAmanda Silberling\\t\\t\\n\\n\\t\\t\\t\\t\\t\\t2 days\", metadata={'vector': [-0.01198604516685009, -0.02511361986398697, 0.022259799763560295, -0.018196502700448036, 0.009370043873786926, 0.03639300540089607, -0.00867017824202776, 0.005598923657089472, -0.026635656133294106, -0.02495054341852665, 0.0032156440429389477, -0.009057482704520226, 0.017122922465205193, -0.012149120680987835, -0.0054732197895646095, 0.011517203412950039, 0.027315137907862663, 0.013793464750051498, 0.012502451427280903, -0.020302893593907356, -0.033783797174692154, 0.022912099957466125, -0.0022626719437539577, 0.00098100071772933, -0.014337049797177315, -0.02527669444680214, 0.008751715533435345, -0.03810529783368111, 0.0038526575081050396, -0.005751807242631912, 0.022395694628357887, -0.008710946887731552, -0.0010047826217487454, 0.005391682032495737, -0.017856761813163757, -0.004562715068459511, -0.009417607448995113, -0.002424048725515604, 0.02201518602669239, -0.009404017589986324, 0.019215723499655724, -0.0033073739614337683, -0.0017683494370430708, -0.01960982196033001, -0.03693658858537674, 0.00696468073874712, 0.0021658458281308413, -0.00635314779356122, -0.01649780012667179, 0.0037201587110757828, 0.024542855098843575, 0.012910139746963978, -0.02656770870089531, -0.02087365835905075, -0.022259799763560295, 0.023455685004591942, -0.012848986312747002, 0.012006429955363274, 0.00469181640073657, 0.025127209722995758, -0.003383815521374345, -0.009206968359649181, -0.009770937263965607, 0.012753859162330627, 0.001234107417985797, -0.0022796588018536568, -0.017299586907029152, 0.02088724635541439, 0.00468841940164566, -0.016090111806988716, 0.014907813630998135, -0.00234420970082283, -0.006791412830352783, -0.019174955785274506, 0.00810620840638876, 0.00036500871647149324, -0.013080010190606117, -0.0025497525930404663, -0.0033583350013941526, 0.0063565452583134174, 0.012896549887955189, -0.017041385173797607, -0.0009589176042936742, 0.018726497888565063, 0.022151082754135132, 0.0005036653019487858, 0.020370841026306152, 0.012305401265621185, 0.015329092741012573, -0.012142326682806015, 0.012087968178093433, 0.013419750146567822, 0.0064618648029863834, 0.023238250985741615, -0.027451034635305405, 0.02799461968243122, -0.01683754101395607, 0.0035095196217298508, 0.00015691765293013304, -0.016932668164372444, 0.005106300115585327, -0.00046077309525571764, -0.029842806980013847, -0.006998654920607805, -0.010769774205982685, -0.0005631198873743415, 0.009268121793866158, 0.021172629669308662, 0.024542855098843575, 0.008364412002265453, 0.017707275226712227, 0.018264450132846832, 0.0028283398132771254, -0.033756617456674576, -0.013834234327077866, -0.01666087470948696, 0.014649610966444016, -0.026757963001728058, -0.02170262485742569, -0.03060382604598999, 0.0174898412078619, 0.013854618184268475, 0.019976742565631866, 0.004695213865488768, 0.01864496059715748, 0.03169099614024162, -0.00015776700456626713, -0.024162346497178078, -0.0033379506785422564, -0.020995963364839554, 0.032615091651678085, 0.0119113028049469, 0.033267389982938766, 0.023605171591043472, -0.03400123119354248, 0.0178024023771286, -0.024257473647594452, 0.00481752073392272, -0.010464007966220379, 0.0035366988740861416, -0.00334134791046381, 0.028619742020964622, -0.004902455490082502, -0.0009877955308184028, -0.015791138634085655, 0.03462635353207588, 0.014690380543470383, 0.01004952471703291, 0.016959846019744873, 0.0029183709993958473, 0.005327131599187851, -0.0005355160101316869, -0.01795188896358013, 0.008833253756165504, 0.02057468518614769, 0.0168647188693285, 0.013548851944506168, 0.01618523895740509, -0.019528284668922424, -0.0025174773763865232, -0.027437444776296616, 0.019677771255373955, 0.014595252461731434, -0.009363248944282532, 0.004501562099903822, 0.024556444957852364, -0.0008676123688928783, -0.01619882881641388, -0.019637001678347588, -0.0034789429046213627, 0.001399730914272368, 0.010477597825229168, -0.00013950595166534185, 0.006512825842946768, -0.010042729787528515, 0.01295090839266777, 0.017530610784888268, -0.0002293248544447124, -0.02298004925251007, 1.3111860425851773e-05, 0.01369154267013073, 0.00947876088321209, 0.012121941894292831, 0.004076886456459761, -0.0004047158872708678, 0.0030576647259294987, 0.02091442607343197, -0.02995152398943901, 0.010029139928519726, -0.0010226189624518156, 0.010328112170100212, 0.009009918197989464, -0.019405977800488472, -0.03549608960747719, -0.6244702339172363, -0.03332174941897392, 0.027940260246396065, -0.006533210165798664, 0.025032080709934235, 0.023034406825900078, -0.0036420184187591076, -0.0072160884737968445, -0.012882960960268974, 0.03688222914934158, -0.027097703889012337, -0.004583099856972694, -0.009193378500640392, -0.010749390348792076, 0.006781220901757479, -0.02026212401688099, 0.0238226056098938, -0.02962537296116352, 0.003920605406165123, 0.022572360932826996, -0.021145449951291084, -0.010131062008440495, -0.001972193829715252, -0.03707248717546463, -0.01958264410495758, -0.013970130123198032, -0.009451581165194511, -0.01956905424594879, -0.039274003356695175, 0.01815573312342167, -0.05212978646159172, 0.0030423763673752546, 0.0065841712057590485, -0.03419148549437523, 0.05359746515750885, -0.0060711633414030075, -0.015193196013569832, 0.02851102501153946, 0.0012375048827379942, -0.0007758823921903968, -0.037018127739429474, -0.0029013841412961483, -0.0030355816707015038, 0.0017479649977758527, 0.009404017589986324, 0.004199192859232426, 0.0199359729886055, -0.007243267726153135, 0.0032903868705034256, -0.02851102501153946, 0.017584970220923424, 0.0034262831322848797, -0.025847459211945534, 0.0024019654374569654, 0.012740269303321838, -0.004233167041093111, 0.03177253529429436, 0.008248900063335896, 0.012149120680987835, -0.0032581116538494825, -0.011456049978733063, -0.014989351853728294, -0.028782816603779793, -0.021145449951291084, -0.026825912296772003, 0.03998066484928131, 0.0045117540284991264, 0.00753544457256794, 0.004175411071628332, -0.027885902673006058, 0.03514276072382927, 0.00937683880329132, -0.03454481437802315, 0.009220557287335396, 0.008642998524010181, 0.035224296152591705, 0.0349796824157238, -0.0012536424910649657, -0.019066238775849342, 0.014065257273614407, 0.012563604861497879, -0.0275189820677042, -0.019637001678347588, -0.030821260064840317, -0.0037371458020061255, -0.012244248762726784, -0.021756982430815697, -0.014445766806602478, -0.01992238499224186, -0.017218049615621567, 0.017394714057445526, 0.025942586362361908, -0.00875851046293974, -0.01766650751233101, 0.012651937082409859, 0.020764941349625587, -0.008459539152681828, 0.002802859293296933, 0.004579702392220497, -0.029272044077515602, 0.004036117345094681, -0.03432738408446312, 0.03777914494276047, 0.007379163987934589, 0.0007440317422151566, 0.004929634742438793, -0.01229181233793497, 0.01652497984468937, 0.0401165597140789, -0.02701616659760475, -0.015546525828540325, -0.007793647702783346, -0.006414301227778196, 0.0012748762965202332, -0.01666087470948696, -0.02285774238407612, 0.007841210812330246, 0.010497981682419777, 0.003740543033927679, -0.01751702092587948, 0.029108967632055283, -0.01117066852748394, 0.0220015961676836, -0.013372186571359634, 0.01310718897730112, -0.0010396059369668365, 0.007508265320211649, -0.01205399353057146, -0.036855053156614304, -0.00753544457256794, 0.002125076949596405, 0.003229233669117093, 0.0018006247701123357, -0.005680461414158344, 0.005238798912614584, -0.01424192264676094, 0.0024750097654759884, -0.025344643741846085, 0.046911370009183884, 0.013956540264189243, -0.006645324639976025, -0.0020214561372995377, 0.006278404965996742, -0.0043147047981619835, -0.010355290956795216, -0.025208747014403343, -0.005976035725325346, 0.0008051850600168109, -0.01751702092587948, -0.022749025374650955, 0.016457030549645424, 0.011625920422375202, -0.007059807889163494, 0.020832888782024384, 0.018563421443104744, -0.01295090839266777, -0.022749025374650955, -0.023836195468902588, -0.007086987141519785, -0.0023900745436549187, -0.0015025024767965078, 0.02785872295498848, 0.002057128818705678, -0.006940898951143026, -0.01051836647093296, -0.02576592192053795, -0.021308526396751404, 0.028375128284096718, -0.017258819192647934, -0.019704950973391533, -0.01229181233793497, -0.01910700649023056, -0.024080807343125343, -0.00841197557747364, 0.004956813994795084, 0.029706910252571106, -0.015111658722162247, -0.0005151315708644688, 0.005361105315387249, -0.006910322234034538, -0.012332580983638763, -0.013643979094922543, -0.007324805483222008, -0.012264632619917393, 0.038621701300144196, -0.014989351853728294, 0.04628624767065048, 0.03321303427219391, -0.0026737579610198736, 0.04090476036071777, -0.01450012531131506, 0.028755636885762215, -0.007990697398781776, 0.006550197023898363, -0.004943224601447582, 0.020166996866464615, 0.012087968178093433, -0.004936429671943188, 0.015763960778713226, 0.018821625038981438, 0.01863137073814869, 0.01572319120168686, 0.036691974848508835, -0.01895752176642418, 0.012074378319084644, -0.013480903580784798, 0.005408668890595436, -0.01296449825167656, 0.009825295768678188, 0.010783364064991474, 0.007854800671339035, 0.009261326864361763, -0.012318991124629974, -0.013956540264189243, 0.007161729969084263, 0.021023143082857132, -0.0052455938421189785, 0.005082518327981234, -0.024488497525453568, 0.005435848142951727, -0.0024053629022091627, -0.014133205637335777, 0.007888775318861008, -0.012848986312747002, -0.014649610966444016, 0.026336684823036194, 0.0207513514906168, 0.02139006368815899, 0.0073180110193789005, -0.026988986879587173, -0.02414875663816929, 0.0049466220661997795, -0.0089012011885643, 0.013345007784664631, 0.012094762176275253, -0.010695031844079494, 0.019405977800488472, -0.009764142334461212, 0.03258791193366051, -0.0006213004817254841, -0.01845470443367958, -0.007331600412726402, 0.036039672791957855, -0.026132840663194656, 0.024026449769735336, 0.009716578759253025, 0.056424107402563095, -0.006346352864056826, 0.0015449699712917209, 0.004399639554321766, -0.039464257657527924, -0.0036725951358675957, -0.019324440509080887, 0.0013283854350447655, 0.03481660783290863, -0.03076690249145031, 0.008167361840605736, 0.005812960211187601, 0.004786944016814232, 0.036338645964860916, -0.0022269990295171738, 0.015002941712737083, -0.0018719702493399382, 0.007297626230865717, 0.0024291446898132563, -0.016796771436929703, 0.014146795496344566, -0.0017768429825082421, -0.014771917834877968, -0.020370841026306152, -0.015002941712737083, -0.0049636089242994785, -0.018848804756999016, -0.0008540227427147329, 0.03275098651647568, 0.006047381088137627, -0.008167361840605736, 0.003529903944581747, -0.007800442166626453, 0.02205595374107361, 0.013134368695318699, -0.04142116382718086, 0.02124057710170746, 0.026010533794760704, -0.007854800671339035, -0.00348234036937356, -0.016253186389803886, 0.004610278643667698, -0.014527305029332638, 0.0058061652816832066, -0.0003645840333774686, 0.007915954105556011, -0.03451763838529587, 0.013263469561934471, -0.019732128828763962, 0.0033600337337702513, 0.014934993349015713, -0.017734454944729805, 0.014554483816027641, -0.00725006265565753, 0.028891533613204956, 0.002215108135715127, -0.009777732193470001, -0.01667446456849575, 0.011564766988158226, -0.005571744404733181, -0.013372186571359634, -0.020520327612757683, -0.015927035361528397, -0.01482627633959055, -0.015002941712737083, -0.007705315016210079, -0.0046306634321808815, 0.0004883770016022027, 0.015600884333252907, 0.01287616603076458, -0.0064210956916213036, -0.0226946659386158, 0.01602216251194477, -0.002824942348524928, -0.00022316705144476146, -0.03951861709356308, -0.043160635977983475, 0.007752878591418266, 0.10877132415771484, 0.030549468472599983, -0.0026397837791591883, 0.009940807707607746, 0.00794313382357359, 0.0035163143184036016, -0.00937683880329132, -0.025371821597218513, 0.02655411884188652, -0.024733109399676323, -0.012631552293896675, 0.021824931725859642, 0.027967439964413643, -0.002393472008407116, 0.014078847132623196, -0.0008383097592741251, 0.01391577161848545, -0.022749025374650955, 0.009349659085273743, -0.023754656314849854, 0.018889572471380234, -0.012543220072984695, -0.009145814925432205, 0.004487972240895033, 0.021485190838575363, -0.001375099760480225, 0.027138473466038704, 0.013066420331597328, -0.024243883788585663, -0.03060382604598999, 0.034599173814058304, 0.014649610966444016, -0.01132694911211729, -0.001059141126461327, -0.01683754101395607, -0.0013564140535891056, 0.01604934222996235, 0.03245201334357262, -0.0020961989648640156, 0.0057416148483753204, -0.0017063467530533671, 0.011034771800041199, 0.01310718897730112, -0.016402672976255417, -0.006322571076452732, -0.016443440690636635, -0.00023569498443976045, 0.02235492691397667, -0.025874638929963112, -0.03465353325009346, 0.01180938072502613, 0.0058061652816832066, -0.0366104394197464, -0.02281697280704975, -0.012733474373817444, 0.03883913531899452, -0.021634675562381744, -0.014975761994719505, 0.02121339738368988, -0.024733109399676323, -0.00970978382974863, -0.0320986844599247, 0.007936338894069195, -0.015233964659273624, -0.014282691292464733, -0.04264422878623009, -0.020153407007455826, 0.014731149189174175, -0.003188464790582657, 0.009356454014778137, 0.008663383312523365, -0.0029183709993958473, -0.027750005945563316, 0.002852121600881219, 0.0019823859911412, 0.00817415677011013, 0.03324021399021149, 0.009940807707607746, -0.014771917834877968, 0.03405559062957764, 0.007766468450427055, -0.023836195468902588, 0.003991951234638691, -0.03185407072305679, 0.00567026948556304, -0.006760836578905582, -0.013630390167236328, -0.0070054493844509125, -0.015057300217449665, -0.004644252825528383, 0.0076033929362893105, -0.00874492060393095, 0.006726862397044897, 0.029924344271421432, 0.002029949566349387, 0.007888775318861008, 0.002607508562505245, 0.013460519723594189, -0.002702635945752263, 0.003971566911786795, 0.015261144377291203, -0.024542855098843575, -0.02054750733077526, -0.00875851046293974, 0.010538751259446144, -0.012244248762726784, 0.03109305165708065, 0.039409901946783066, -0.013650774024426937, -0.004922840278595686, 0.015628064051270485, 0.011639510281383991, 0.012699500657618046, -0.00773249426856637, -0.001909341779537499, 0.001543271355330944, 0.033729437738657, 0.0071821147575974464, -0.001866874168626964, -0.02916332706809044, -0.00786159560084343, -0.036039672791957855, 0.016946258023381233, -0.0032479194924235344, -0.008928380906581879, 0.0063905189745128155, -0.003078049048781395, -0.026825912296772003, -0.0036318262573331594, 0.012189890258014202, -0.014649610966444016, -0.00295574264600873, -0.001688510412350297, -0.04324217513203621, -0.006203662138432264, -0.018658548593521118, -0.017367536202073097, 0.031364843249320984, 0.000817925320006907, 0.0012239152565598488, -0.005333926063030958, 0.018386757001280785, 0.009770937263965607, -0.014527305029332638, -0.009927217848598957, -0.0333489291369915, -0.0036522105801850557, -0.009954397566616535, 0.034707892686128616, 0.03503404185175896, -0.011768612079322338, 0.019840845838189125, -0.017068563029170036, -0.003957977052778006, -0.0036895819939672947, -0.01713651232421398, 0.013616800308227539, 0.020112639293074608, 0.021458011120557785, 0.015424219891428947, 0.02754616178572178, -0.0015950817614793777, 0.0241351667791605, 0.021988006308674812, 0.008113003335893154, 0.004413229413330555, 0.006760836578905582, -0.008378000929951668, 0.004267140757292509, 0.009601066820323467, -0.005418861284852028, 0.00696468073874712, 0.0103756757453084, -0.0051572611555457115, 0.01076297927647829, 0.026363864541053772, -0.010484392754733562, -0.003108625765889883, -0.015315502882003784, -0.042209360748529434, 0.0017802403308451176, -0.022776205092668533, 0.015628064051270485, -0.002755295718088746, -0.008357617072761059, 0.0018345988355576992, 0.009206968359649181, 0.01827803999185562, 0.025208747014403343, 0.0037541326601058245, 0.034762248396873474, -0.007521855179220438, -0.016783181577920914, 0.019229313358664513, 0.01604934222996235, -0.03169099614024162, -0.0015279829967767, -0.026988986879587173, 0.003368527162820101, 0.00891479104757309, 0.014540893957018852, 0.021988006308674812, 0.03092997707426548, 5.2288189181126654e-05, 0.00938363280147314, 0.02529028430581093, -0.009730168618261814, -0.025045670568943024, 0.013195522129535675, -0.007168524898588657, -0.011388102546334267, -0.0216890349984169, -0.023768246173858643, -0.00505873654037714, -0.009057482704520226, -0.01633472368121147, -0.018590601161122322, -0.007025834172964096, -0.014065257273614407, -0.0044539980590343475, -0.005751807242631912, 0.013881797902286053, 0.025127209722995758, 0.009016713127493858, 0.0017700481694191694, 0.012937319464981556, 0.00962145160883665, -0.001575546688400209, -0.007827621884644032, -0.014391408301889896, -0.0005032406188547611, 0.02091442607343197, 0.013372186571359634, -0.01713651232421398, -0.0026584696024656296, 0.01458166353404522, 0.021811341866850853, -0.04191039130091667, -0.06566505134105682, 0.016633694991469383, 0.016891898587346077, -0.002751898253336549, -0.0317181758582592, -0.014337049797177315, -0.029571015387773514, 0.02560284547507763, -0.005181042943149805, -0.007820826955139637, 0.015166017226874828, 0.01604934222996235, -0.0016553857130929828, -0.015587295405566692, 0.014717559330165386, 0.014867044985294342, 0.001951809274032712, 0.009431197308003902, 0.01263834722340107, -0.023700298741459846, 0.004355473443865776, 0.009594271890819073, -0.010912465862929821, 0.023129533976316452, -0.01653856784105301, 0.014731149189174175, 0.023129533976316452, 0.010314522311091423, -0.00881286896765232, 0.0032581116538494825, -0.019188543781638145, 0.031989969313144684, -0.030332034453749657, -0.006098342128098011, 0.006618145387619734, -0.003951182123273611, 0.01043003425002098, -0.031174590811133385, 0.00757621368393302, 0.011890918016433716, -0.020941605791449547, -0.008459539152681828, 0.01667446456849575, 0.0003887905622832477, 0.0063871219754219055, 0.017557790502905846, 0.009410812519490719, 0.0012706295819953084, 0.006417698226869106, 0.006448274943977594, -0.008772100321948528, -0.025127209722995758, 0.008609024807810783, -0.00606776587665081, -0.0028691086918115616, 0.0009419305715709925, 0.015356271527707577, -0.02606489323079586, 0.017584970220923424, 0.013345007784664631, -0.0119113028049469, 0.017353946343064308, -0.007970312610268593, 0.003856054972857237, -0.021933648735284805, 0.007365574594587088, 0.019555464386940002, -0.02121339738368988, 0.019039059057831764, -0.02249082177877426, -0.02526310458779335, -0.008479923009872437, 0.008907996118068695, 0.019732128828763962, -0.0016248089959844947, 0.00889440719038248, 0.013195522129535675, -0.002704334445297718, -0.011422076262533665, -0.018264450132846832, -0.015057300217449665, 0.028782816603779793, 0.004481177311390638, 0.009193378500640392, 0.015166017226874828, 0.0036793898325413465, 0.011687073856592178, -0.01417397428303957, 0.0384858064353466, 0.01515242736786604, -0.01929726079106331, -0.03826837241649628, 0.009872859343886375, 0.012896549887955189, 0.003409296041354537, -0.022912099957466125, -0.010076703503727913, 0.00022762615117244422, -0.01732676662504673, -0.0034959299955517054, 0.003339649410918355, 0.0034789429046213627, -0.005228606518357992, 0.025643615052103996, 0.0058061652816832066, -0.0033787195570766926, -0.019025469198822975, -0.012108352035284042, -0.019664181396365166, -0.008065439760684967, -0.03492532670497894, 0.0178024023771286, -0.002709430642426014, 0.0265812985599041, -0.0039274003356695175, -0.019881615415215492, -0.00817415677011013, -0.023455685004591942, -0.03826837241649628, -0.038920674473047256, -0.03549608960747719, 0.00979132205247879, 0.03606685250997543, 0.01621241681277752, 0.011279385536909103, 0.02253159135580063, -0.003365129930898547, 0.011204642243683338, -0.013548851944506168, -0.017204459756612778, 0.002882698317989707, -0.028456665575504303, 0.00851389765739441, -0.008445949293673038, -0.031826891005039215, 0.0094651710242033, 0.017421893775463104, -0.009009918197989464, -0.02318389341235161, 0.01990879513323307, 0.009818500839173794, 0.021281346678733826, 0.004464190453290939, -0.010232984088361263, -0.00025607942370697856, 0.01763932779431343, 0.00858184602111578, -0.021104680374264717, 0.0020639237482100725, 0.005857126787304878, -0.004854891914874315, 0.0057891784235835075, -0.01318872720003128, -0.012998471967875957, 0.02251800149679184, 0.009437991306185722, 0.0005070627084933221, -0.011952071450650692, 0.004413229413330555, 0.004487972240895033, 0.03856734558939934, 0.0005083367577753961, -0.007610187865793705, 0.024189524352550507, 0.028755636885762215, -0.015587295405566692, -0.012991677969694138, 0.03919246792793274, 0.015478578396141529, -0.006648722104728222, 0.029571015387773514, -0.033104315400123596, 0.004899058490991592, -0.018495474010705948, 0.007324805483222008, -0.01715010218322277, 0.003225836204364896, -0.012645142152905464, -0.02265389822423458, -0.027967439964413643, -0.015424219891428947, 0.014391408301889896, -0.017775224521756172, 0.015424219891428947, -0.01384782325476408, 0.021308526396751404, -0.002094500232487917, -0.018740087747573853, 3.869857027893886e-05, -0.02818487398326397, 0.002220204332843423, 0.013215905986726284, -0.014867044985294342, -0.026010533794760704, 0.025983355939388275, 0.004606881644576788, -0.008683768101036549, 0.009023508056998253, 0.23461121320724487, -0.009804910980165005, -0.004267140757292509, 0.011768612079322338, -0.013297444209456444, 0.002604111097753048, 0.010830927640199661, 0.009736963547766209, -0.007188909221440554, -0.004970403853803873, 0.006832181941717863, 0.01734035648405552, -0.03011460043489933, -0.008520692586898804, 0.023279020562767982, -0.019990332424640656, -0.03337610885500908, -0.03688222914934158, -0.022409284487366676, -0.003750735428184271, 0.0044539980590343475, -0.0020078665111213923, -0.009274915792047977, -0.021756982430815697, 0.010830927640199661, 0.0004193671920802444, -0.024705931544303894, 0.0030168958473950624, 0.006322571076452732, 0.005065531004220247, -0.019704950973391533, -0.012373349629342556, 0.016742412000894547, 0.016008572652935982, -0.0005724627990275621, -0.011462844908237457, 0.010790158994495869, 0.014975761994719505, 0.022450054064393044, 0.002656770870089531, 0.01417397428303957, 0.041883211582899094, 0.020044689998030663, -0.007365574594587088, 0.00801787618547678, 0.01213553175330162, -0.0042093852534890175, 0.0033549375366419554, -0.02640463411808014, 0.010287342593073845, -0.01944674737751484, -0.005398476962000132, 0.011265795677900314, 0.015736781060695648, -0.01570960134267807, 0.010396059602499008, -0.015179606154561043, 0.01369154267013073, -0.022286977618932724, 0.021471600979566574, -0.010436829179525375, 0.010334907099604607, 0.020180586725473404, 0.020479558035731316, -0.028402308002114296, 0.010063114576041698, -0.013236290775239468, 0.01075618527829647, 0.006713272538036108, -0.00631237868219614, -0.010348496027290821, -0.0241351667791605, -0.006370134651660919, -0.0002084095758618787, -0.020696992054581642, -0.03386533632874489, 0.04506318271160126, 0.027817953377962112, 0.004983993247151375, 0.003334553213790059, 0.005568346939980984, -0.002130173146724701, 0.042861662805080414, -0.009043892845511436, -0.02739667519927025, -0.02493695355951786, 0.030658185482025146, -0.0003996197774540633, -0.005357707850635052, -0.00932248029857874, -0.004654445219784975, -0.0031901635229587555, -0.012006429955363274, -0.0031409012153744698, -0.0035366988740861416, 0.0012587386881932616, 0.003203753149136901, 0.005364502780139446, 0.014146795496344566, 0.017122922465205193, -0.009913627989590168, 0.013046035543084145, 0.04870520159602165, 0.019460337236523628, -0.02283056266605854, -0.013725517317652702, -0.011123104952275753, 0.02621437795460224, -0.018019836395978928, -0.0098117059096694, -0.03709966316819191, -0.004831110127270222, 0.018033426254987717, 0.020629044622182846, -0.0014192659873515368, 0.011394897475838661, -0.02009904943406582, -0.029598195105791092, 0.016144469380378723, -0.013311034068465233, 0.001217120443470776, -0.008935175836086273, -0.02560284547507763, 0.017109332606196404, -0.0040157330222427845, -0.033946871757507324, -0.0168647188693285, -0.010341701097786427, -0.021172629669308662, 0.002298344625160098, 0.025480538606643677, 0.011530793271958828, 0.014078847132623196, -0.02122698724269867, 0.002755295718088746, -0.016429850831627846, 0.024678751826286316, -0.005486809182912111, 0.01513883750885725, 0.02167544513940811, -0.025317464023828506, 0.001798926037736237, 0.005004378035664558, -0.004097270779311657, 0.02103673294186592, -0.03253355249762535, -0.003930797800421715, 0.0023747861851006746, -0.015546525828540325, -0.01863137073814869, -0.027817953377962112, 0.019161365926265717, -0.012889754958450794, 0.011530793271958828, 0.04498164355754852, 0.003208849113434553, -0.051586199551820755, 0.002772282576188445, -0.006590966135263443, 0.007039423566311598, -0.026676425710320473, -0.0022320952266454697, 0.025059260427951813, -0.01296449825167656, -0.01683754101395607, -0.013480903580784798, -0.17383843660354614, 0.03345764800906181, 0.016973435878753662, -0.034707892686128616, 0.011163873597979546, -0.019840845838189125, 0.0017802403308451176, -0.00029684827313758433, -8.955347584560513e-05, -0.008140183053910732, 0.01391577161848545, 0.008282873779535294, -0.01636190339922905, -0.008194541558623314, 0.028891533613204956, 0.02395850233733654, -9.921484888764098e-05, 0.012978088110685349, 0.019365210086107254, 0.01448653545230627, 0.011068746447563171, -0.01180938072502613, 0.01815573312342167, -0.006842373870313168, 0.00889440719038248, 0.012726680375635624, -0.006991859991103411, -0.003971566911786795, 0.0013258373364806175, -0.015274734236299992, -0.013168342411518097, -0.02560284547507763, 0.02962537296116352, 0.012189890258014202, 0.052564654499292374, 0.006472056731581688, 0.005449438001960516, -0.009288505651056767, -0.0008238707669079304, 0.042861662805080414, 0.019963152706623077, 0.01732676662504673, 0.0186177808791399, 0.013589620590209961, -0.009077866561710835, -0.0014107725583016872, 0.021743392571806908, -0.022382104769349098, -0.024705931544303894, -0.010443623177707195, 0.01286257617175579, -0.026160020381212234, 0.017381124198436737, -0.005211619660258293, -0.009743758477270603, 0.019052648916840553, -0.01956905424594879, 0.007508265320211649, -0.00044251204235479236, -0.015410630032420158, 0.005228606518357992, -0.015478578396141529, 0.013147958554327488, -0.00031532166758552194, -0.001946713193319738, -0.00994760263711214, -0.01894393190741539, 0.0247602891176939, -0.015247554518282413, 0.026853090152144432, -0.008201336488127708, 0.01956905424594879, -0.0005151315708644688, -0.015410630032420158, 0.012543220072984695, -0.0038696445990353823, -0.018509063869714737, -0.007698520086705685, 0.01990879513323307, -0.004851494450122118, 0.00891479104757309, 0.011510408483445644, -0.027179241180419922, 0.014608842320740223, 0.011904507875442505, 0.010871696285903454, 0.007053013425320387, -0.0014048271114006639, -0.03818683326244354, -0.012128736823797226, 0.017883941531181335, -0.009084661491215229, -0.0027892696671187878, 0.0007877733442001045, 0.007046218495815992, 0.01649780012667179, 0.014296281151473522, 1.5474119209102355e-05, -0.0005045146681368351, -0.03367508202791214, 0.015030120499432087, 0.002136967843398452, -0.010715415701270103, -0.01878085546195507, 0.011748227290809155, 0.0019110403954982758, -0.003873041830956936, -0.0056838588789105415, 0.01059990469366312, -0.04367704316973686, -0.001149172312580049, 0.0014566375175490975, 0.024529265239834785, 0.008765305392444134, -0.019800078123807907, 0.0020214561372995377, -0.01027375366538763, -0.04147552326321602, 0.010110678151249886, 0.004073488991707563, 0.04617753252387047, 0.00019885438086930662, -0.010790158994495869, 0.00238837581127882, 0.010633878409862518, -0.00129695946816355, -0.10159600526094437, -0.007793647702783346, -0.0183052197098732, 0.05161337926983833, -0.013718722388148308, 0.0031069270335137844, -0.011856944300234318, 0.040578607469797134, -0.030549468472599983, 0.02427106350660324, 0.016076521947979927, -0.026839500293135643, -0.021756982430815697, 0.019188543781638145, -0.007385958917438984, -0.017218049615621567, -0.01666087470948696, -0.015369861386716366, 0.0002894164645113051, 2.9113507480360568e-06, -0.008642998524010181, -0.015505757182836533, 0.019365210086107254, -0.013141163624823093, 0.0008901201654225588, 0.0038798367604613304, -0.03204432502388954, 0.023849785327911377, 0.030386392027139664, 0.013582825660705566, -0.0011839957442134619, -0.023265430703759193, 0.02848384529352188, -0.0362299308180809, -0.012475271709263325, 0.002792667131870985, 0.019718538969755173, -0.01515242736786604, 0.019215723499655724, -0.03870324045419693, -0.005228606518357992, 0.002925165928900242, -0.0016324531752616167, 0.013127573765814304, -0.030712543055415154, 0.005150466226041317, 0.005170850548893213, 0.03324021399021149, -0.007481086067855358, -0.011388102546334267, -0.04576984420418739, -0.02785872295498848, -0.016389083117246628, -0.00683557940647006, 0.036691974848508835, -0.0010727307526394725, 0.025385411456227303, 0.02124057710170746, 0.0021063911262899637, -0.006652119569480419, -0.014187564142048359, -0.005085915792733431, -0.004899058490991592, 0.012352965772151947, 0.009995166212320328, -0.004324896726757288, -0.01424192264676094, -0.006030394230037928, 0.00865658838301897, 0.0011755021987482905, 0.008405180647969246, 0.0021913263481110334, -0.017204459756612778, 0.014540893957018852, -0.015804728493094444, 0.001477871323004365, -0.006821989547461271, -0.030495109036564827, 0.016796771436929703, 0.000821747409645468, -0.02447490766644478, -0.009220557287335396, 0.005119889508932829, 0.020194176584482193, -0.020112639293074608, -0.015791138634085655, 0.005218414589762688, 0.003421186935156584, -0.0064210956916213036, -0.025072850286960602, 0.0036386209540069103, -0.009179788641631603, -0.017530610784888268, 0.0009852475486695766, -0.02527669444680214, -0.007467496674507856, -0.007820826955139637, -0.01796547882258892, 0.013066420331597328, 0.010409649461507797, -0.01860419102013111, -0.009458376094698906, -0.05941382050514221, 0.032778166234493256, -0.0013232893543317914, -0.012176300399005413, 0.010083498433232307, -0.03647454082965851, -0.006033791694790125, -0.03256073221564293, 0.007270446978509426, 0.032805345952510834, -0.005908087827265263, 0.02119980938732624, -0.02606489323079586, -0.00046926658251322806, -0.000494322448503226, 0.011048361659049988, 0.0378606840968132, -0.004814123269170523, 0.01053195632994175, -0.010158241726458073, 0.010538751259446144, 0.01879444532096386, 0.0051266844384372234, 0.014690380543470383, 0.0005665172939188778, 0.018169322982430458, -0.03449045866727829, 0.027804363518953323, -0.009166199713945389, 0.010966824367642403, -0.00591488229110837, -0.019147776067256927, 0.012040403671562672, -0.005697448737919331, 0.0016052739229053259, -0.02007186971604824, 0.007773262914270163, 0.04101347550749779, -0.015641653910279274, 0.008092619478702545, -0.02251800149679184, -0.03321303427219391, 0.01588626764714718, -0.0010642372071743011, -0.02621437795460224, -0.021580317988991737, 0.0022269990295171738, 0.018916752189397812, 0.033294569700956345, 0.002751898253336549, 0.02883717603981495, 0.006010009907186031, -0.041393984109163284, -0.033783797174692154, -0.02576592192053795, -0.025195157155394554, 0.03737145662307739, -0.006798207759857178, -0.004967006389051676, -0.012896549887955189, 0.02883717603981495, 0.02463798224925995, 0.02185210958123207, -0.007365574594587088, -0.0063157761469483376, 0.0007143044495023787, -0.014038078486919403, 0.005986228119581938, 0.020846478641033173, -0.01994956284761429, 0.0015177908353507519, -0.002177736721932888, 0.015342681668698788, 0.011530793271958828, -0.0017547598108649254, 0.0065094283781945705, 0.0007130304002203047, 0.01990879513323307, -0.010586314834654331, 0.010063114576041698, 0.005745012313127518, -0.023999270051717758, -0.009669015184044838, 0.017883941531181335, 0.01913418620824814, 0.03609403222799301, -0.00327679724432528, -0.008051849901676178, 0.001575546688400209, -0.010491187684237957, -0.016728824004530907, 0.013582825660705566, 0.0073044211603701115, 0.0010166735155507922, 0.02220544032752514, 0.024040039628744125, -0.016796771436929703, 0.002784173469990492, 0.01894393190741539, 0.0011279385071247816, 0.005204824730753899, -7.315038237720728e-05, 0.006033791694790125, 0.00036585808265954256, -0.004239961504936218, 0.00786159560084343, -0.018549831584095955, -0.020601864904165268, -0.002062225015833974, -0.006332763470709324, 0.028212053701281548, 0.0005886004655621946, 0.01229181233793497, 0.024719519540667534, -0.04468267410993576, 0.027491802349686623, -0.029054610058665276, -0.003529903944581747, -0.04294320195913315, 0.036012496799230576, 0.031473562121391296, -0.0009164500515908003, 0.020330073311924934, -0.008507102727890015, 0.022721845656633377, 0.009186583571135998, -0.00048540427815169096, -0.03304995968937874, -0.00016392480756621808, 0.002294947160407901, 0.0036590055096894503, -0.035360194742679596, -0.014418588019907475, -0.0011355826864019036, -0.019501106813549995, -0.00238837581127882, -0.026526939123868942, 0.02205595374107361, -0.034082770347595215, 0.079743891954422, 0.009696194902062416, -0.00913901999592781, 0.00729083176702261, 0.0023696902208030224, 0.00370317162014544, 0.002656770870089531, 0.005408668890595436, -0.025331053882837296, 0.0016018765745684505, 0.01174143236130476, -0.0026126045268028975, -0.011333744041621685, -0.003597852075472474, -0.0006450823275372386, 0.015831908211112022, 0.010464007966220379, 0.011625920422375202, 0.007807237096130848, -0.011734637431800365, 0.02346927486360073, -0.0021131860557943583, 0.0009767540032044053, -0.003876439295709133, 0.011394897475838661, -0.013807054609060287, 0.0023900745436549187, -0.008880817331373692, -0.010708620771765709, -0.0196234118193388, 0.005130081903189421, 0.0035027246922254562, -0.028755636885762215, -0.02414875663816929, -0.014323459938168526, -0.009254531934857368, 0.01215591561049223, -0.0042943200096488, 0.013127573765814304, 0.016769591718912125, -0.007752878591418266, 0.023211073130369186, -0.015369861386716366, -0.0003964347124565393, 0.029734089970588684, 0.009859269484877586, -0.029842806980013847, -0.0065841712057590485, -0.027627699077129364], '_distance': 0.40315932035446167})]\n",
+ "\u001b[00m\n",
+ "\u001b[32;1m\u001b[1;3mThought: \n",
+ "Based on the observation of the documents retrieved by the News DB Tool, it's clear that each document contains information about different advancements or applications in AI. These documents range from details about NASA's new lunar rover contracts, to Apple's potential venture into home robots, Elon Musk's involvement in AI communication tools, and more. To conduct a comprehensive analysis, I need to synthesize key points from each article to identify the latest trends, breakthrough technologies, and their potential impact on various industries.\n",
+ "\n",
+ "Final Answer:\n",
+ "The latest advancements in AI as of 2024 showcase a dynamic range of applications and developments in various sectors. Here are the key points identified from the recent news articles:\n",
+ "\n",
+ "1. **Apple's Home Robot Initiative**:\n",
+ " - Apple is speculated to be entering the home robot market, leveraging its extensive experience in driving technologies.\n",
+ " - Despite no official commitment, Apple has allocated significant resources, including top executives from its Home and AI divisions, hinting at a serious exploration of robotics.\n",
+ " - The potential focus areas include robotic smart screens and mobile robots, indicating a broad vision for home automation and personal assistance technologies.\n",
+ "\n",
+ "2. **Elon Musk's AI Communication Tool**:\n",
+ " - Elon Musk has introduced a new AI communication tool through Nomi AI, enhancing the capabilities of group chats with AI friends.\n",
+ " - This innovation underscores the increasing sophistication of AI in understanding and participating in human-like conversations, pushing the boundaries of interactive AI technologies.\n",
+ "\n",
+ "3. **NASA's Lunar Rover Contracts**:\n",
+ " - NASA has awarded contracts worth $30 million to Intuitive Machines as part of its initiative to develop lunar rovers, with a potential expenditure of $4.6 billion over 13 years.\n",
+ " - The contracts involve key industry players such as AVL, Boeing, Michelin, and Northrop Grumman, indicating a collaborative approach towards pioneering space exploration technologies.\n",
+ " - The lunar rovers are expected to have a 10-year lifespan and the capability to carry astronauts, highlighting significant advancements in durability and functionality for space exploration.\n",
+ "\n",
+ "These advancements illustrate the rapid development and diverse application of AI and related technologies across different sectors, from home automation and social interaction to space exploration. The involvement of leading corporations and ambitious projects underscores the significant impact and potential of AI in shaping future technologies and industries.\u001b[0m\n",
+ "\n",
+ "\u001b[1m> Finished chain.\u001b[0m\n",
+ "\n",
+ "\n",
+ "\u001b[1m> Entering new CrewAgentExecutor chain...\u001b[0m\n",
+ "\u001b[32;1m\u001b[1;3m\u001b[0m\u001b[32;1m\u001b[1;3mThought: I now can give a great answer\n",
+ "Final Answer: \n",
+ "1. **Apple's Home Robot Initiative**: Apple might soon introduce robots to our homes, focusing on smart screens and mobility for better home automation.\n",
+ "2. **Elon Musk's AI Communication Tool**: Elon Musk's Nomi AI is making group chats cooler by adding AI that chats just like humans.\n",
+ "3. **NASA's Lunar Rover Contracts**: NASA's investing $4.6 billion in lunar rovers with a 10-year life span, hinting at long-term plans for space exploration.\u001b[0m\n",
+ "\n",
+ "\u001b[1m> Finished chain.\u001b[0m\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "print(result)"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "HB91fa7BXULb",
+ "outputId": "2b3f3bf6-1a90-4d2c-bc7f-9158b7734628"
+ },
+ "execution_count": 19,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "1. **Apple's Home Robot Initiative**: Apple might soon introduce robots to our homes, focusing on smart screens and mobility for better home automation.\n",
+ "2. **Elon Musk's AI Communication Tool**: Elon Musk's Nomi AI is making group chats cooler by adding AI that chats just like humans.\n",
+ "3. **NASA's Lunar Rover Contracts**: NASA's investing $4.6 billion in lunar rovers with a 10-year life span, hinting at long-term plans for space exploration.\n"
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/examples/AI-Trends-with-CrewAI/README.md b/examples/AI-Trends-with-CrewAI/README.md
new file mode 100644
index 00000000..49bf67b1
--- /dev/null
+++ b/examples/AI-Trends-with-CrewAI/README.md
@@ -0,0 +1,24 @@
+[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lancedb/vectordb-recipes/blob/main/examples/AI-Trends-with-CrewAI/CrewAI_AI_Trends.ipynb)
+
+
+
+## AI Trends Searcher using CrewAI Agents
+This example is about how to make an AI Trends Searcher using **CrewAI Agents** and their Tasks. But before diving into that, let's first understand what CrewAI is and how we can use it for these applications.
+
+![alt text](<../../assets/crewai.png>)
+
+### What is CrewAI?
+
+CrewAI is an open-source framework that helps different AI agents work together to do tricky stuff. You can give each Agent its tasks and goals, manage what they do, and help them work together by sharing tasks. These are some unique features of CrewAI:
+
+1. Role-based Agents: Define agents with specific roles, goals, and backgrounds to provide more context for answer generation.
+2. Task Management: Use tools to dynamically define tasks and assign them to agents.
+3. Inter-agent Delegation: Agents can share tasks to collaborate better.
+
+#### LLM
+This Example can use **OPENAI_GPT4** and **GEMINI_PRO** either of them as LLM.
+
+#### Embedding Function
+This Example uses **OpenEmbedding function** for OpenAI LLM and **LLamaFile Embedding function** for Gemini Pro LLM
+
+[Read More in Blog](https://blog.lancedb.com/track-ai-trends-crewai-agents-rag/)
\ No newline at end of file
diff --git a/tutorials/Accelerate-Vector-Search-Applications-Using-OpenVINO/README.md b/examples/Accelerate-Vector-Search-Applications-Using-OpenVINO/README.md
similarity index 95%
rename from tutorials/Accelerate-Vector-Search-Applications-Using-OpenVINO/README.md
rename to examples/Accelerate-Vector-Search-Applications-Using-OpenVINO/README.md
index a60f368d..6744796d 100644
--- a/tutorials/Accelerate-Vector-Search-Applications-Using-OpenVINO/README.md
+++ b/examples/Accelerate-Vector-Search-Applications-Using-OpenVINO/README.md
@@ -14,4 +14,4 @@ Text-to-Image and Image-to-Image Search using CLIP
**These Results are on 13th Gen Intel(R) Core(TM) i5–13420H using OpenVINO=2023.2 and NNCF=2.7.0 version.**
-[Read More in Blog](https://blog.lancedb.com/accelerate-vector-search-applications-using-openvino-51366eabf866)
\ No newline at end of file
+[Read More in Blog](https://blog.lancedb.com/accelerate-vector-search-applications-using-openvino-lancedb/)
\ No newline at end of file
diff --git a/tutorials/Accelerate-Vector-Search-Applications-Using-OpenVINO/clip_text_image_search.ipynb b/examples/Accelerate-Vector-Search-Applications-Using-OpenVINO/clip_text_image_search.ipynb
similarity index 100%
rename from tutorials/Accelerate-Vector-Search-Applications-Using-OpenVINO/clip_text_image_search.ipynb
rename to examples/Accelerate-Vector-Search-Applications-Using-OpenVINO/clip_text_image_search.ipynb
diff --git a/examples/CLI-SDK-Manual-Chatbot-Locally/README.md b/examples/CLI-SDK-Manual-Chatbot-Locally/README.md
new file mode 100644
index 00000000..d28e09ce
--- /dev/null
+++ b/examples/CLI-SDK-Manual-Chatbot-Locally/README.md
@@ -0,0 +1,40 @@
+## CLI SDK Manual Chatbot Locally
+This application is a CLI chatbot for SDK/Hardware documents that uses the Local RAG model with LLama3 with Ollama, LanceDB, Openhermes Embeddings.
+
+The chatbot is built using the RAG mode using Phidata Assistant and Knowledge Base.
+
+![alt text](../../assets/sdk-manual-cli-chatbot.png)
+
+### Steps to Run the Application
+
+1. Install Dependencies
+```
+pip install -r requirements.txt
+```
+
+2. Setup Ollama
+
+- Install Ollama on Linux
+```
+curl -fsSL https://ollama.com/install.sh | sh
+```
+- Install Ollama on Mac
+```
+brew install ollama
+```
+
+3. Run Llama3 and Openhermes with Ollama
+```
+ollama run llama3
+ollama run openhermes
+```
+
+Now you are ready to run CLI SDK manual Chatbot locally
+```
+python3 assistant.py
+```
+
+*Note: This Chatbot utilizes `data/manual.pdf`. For running it on your document change path of document in `assistant.py`*
+
+
+
diff --git a/examples/CLI-SDK-Manual-Chatbot-Locally/assistant.py b/examples/CLI-SDK-Manual-Chatbot-Locally/assistant.py
new file mode 100644
index 00000000..26c50bef
--- /dev/null
+++ b/examples/CLI-SDK-Manual-Chatbot-Locally/assistant.py
@@ -0,0 +1,35 @@
+from rich.prompt import Prompt
+from phi.assistant import Assistant
+from phi.llm.ollama import Ollama
+from phi.knowledge.pdf import PDFKnowledgeBase, PDFReader
+from phi.vectordb.lancedb import LanceDb
+from phi.embedder.ollama import OllamaEmbedder
+
+# loading document with their openhermes embedding in LanceDB
+pdf_knowledge_base = PDFKnowledgeBase(
+ path="data/manual.pdf",
+ # Table name: ai.pdf_documents
+ vector_db=LanceDb(
+ embedder=OllamaEmbedder(),
+ table_name="pdf_documents",
+ uri="/tmp/lancedb",
+ ),
+ reader=PDFReader(chunk=True),
+)
+
+# define an assistance with llama3 llm and loaded knowledge base
+assistant = Assistant(
+ llm=Ollama(model="llama3"),
+ description="You are an Expert in SDK or Hardware Manual assistant. Your task is to understand the user question, and provide an answer using the provided contexts. Every answer you generate should have citations in this pattern 'Answer [position].', for example: 'Earth is round [1][2].,' if it's relevant.Your answers are correct, high-quality, and written by an domain expert. If the provided context does not contain the answer, simply state, 'The provided context does not have the answer.'",
+ knowledge_base=pdf_knowledge_base,
+ add_references_to_prompt=True,
+)
+assistant.knowledge_base.load(recreate=False)
+
+# start cli chatbot with knowledge base
+assistant.print_response("Ask me about something from the knowledge base")
+while True:
+ message = Prompt.ask(f"[bold] :sunglasses: User [/bold]")
+ if message in ("exit", "bye"):
+ break
+ assistant.print_response(message, markdown=True)
diff --git a/examples/CLI-SDK-Manual-Chatbot-Locally/data/manual.pdf b/examples/CLI-SDK-Manual-Chatbot-Locally/data/manual.pdf
new file mode 100644
index 00000000..2cbbacb3
Binary files /dev/null and b/examples/CLI-SDK-Manual-Chatbot-Locally/data/manual.pdf differ
diff --git a/examples/CLI-SDK-Manual-Chatbot-Locally/requirements.txt b/examples/CLI-SDK-Manual-Chatbot-Locally/requirements.txt
new file mode 100644
index 00000000..c02357a9
--- /dev/null
+++ b/examples/CLI-SDK-Manual-Chatbot-Locally/requirements.txt
@@ -0,0 +1,3 @@
+phidata
+pypdf
+lancedb
\ No newline at end of file
diff --git a/examples/Inbuilt-Hybrid-Search/Inbuilt_Hybrid_Search_with_LanceDB.ipynb b/examples/Inbuilt-Hybrid-Search/Inbuilt_Hybrid_Search_with_LanceDB.ipynb
new file mode 100644
index 00000000..99fbfc6b
--- /dev/null
+++ b/examples/Inbuilt-Hybrid-Search/Inbuilt_Hybrid_Search_with_LanceDB.ipynb
@@ -0,0 +1,1969 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "5LCzoheJKW8X",
+ "outputId": "6fbcc152-35aa-4dbc-90da-35e780102587"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m536.7/536.7 kB\u001b[0m \u001b[31m3.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m226.7/226.7 kB\u001b[0m \u001b[31m22.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m113.0/113.0 kB\u001b[0m \u001b[31m15.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25h Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.2/4.2 MB\u001b[0m \u001b[31m26.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m116.3/116.3 kB\u001b[0m \u001b[31m17.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m134.8/134.8 kB\u001b[0m \u001b[31m20.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.9/75.9 kB\u001b[0m \u001b[31m9.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m21.6/21.6 MB\u001b[0m \u001b[31m36.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m280.0/280.0 kB\u001b[0m \u001b[31m30.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m132.8/132.8 kB\u001b[0m \u001b[31m568.9 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m77.8/77.8 kB\u001b[0m \u001b[31m10.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 kB\u001b[0m \u001b[31m8.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m98.7/98.7 kB\u001b[0m \u001b[31m15.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25h Building wheel for FlagEmbedding (setup.py) ... \u001b[?25l\u001b[?25hdone\n"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install -U transformers datasets openai lancedb FlagEmbedding \"tantivy>=0.20.1\" -qq\n",
+ "\n",
+ "# NOTE: If there is an import error, restart and run the notebook again"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "vP6d6JUShgqo"
+ },
+ "outputs": [],
+ "source": [
+ "import os\n",
+ "import lancedb\n",
+ "import re\n",
+ "import pandas as pd\n",
+ "import random\n",
+ "\n",
+ "from datasets import load_dataset\n",
+ "\n",
+ "import torch\n",
+ "import gc\n",
+ "\n",
+ "import lance\n",
+ "\n",
+ "\n",
+ "import os\n",
+ "\n",
+ "import lancedb\n",
+ "import openai\n",
+ "from lancedb.embeddings import get_registry\n",
+ "from lancedb.pydantic import LanceModel, Vector\n",
+ "\n",
+ "\n",
+ "os.environ[\"OPENAI_API_KEY\"] = \"sk-......\"\n",
+ "\n",
+ "\n",
+ "embeddings = get_registry().get(\"openai\").create()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "8eKRYd2F7v5n"
+ },
+ "source": [
+ "# Load `Chunks` of data from [BeIR Dataset](https://huggingface.co/datasets/BeIR/scidocs)\n",
+ "\n",
+ "Note: This is a dataset built specially for retrieval tasks to see how good your search is working"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 313
+ },
+ "id": "l0ezDr7suAf_",
+ "outputId": "0424f34c-f5de-43af-88a9-148ce5d7cf45"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ ":5: SettingWithCopyWarning: \n",
+ "A value is trying to be set on a copy of a slice from a DataFrame.\n",
+ "Try using .loc[row_indexer,col_indexer] = value instead\n",
+ "\n",
+ "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
+ " docs[\"num_words\"] = docs[\"text\"].apply(lambda x: len(x.split())) # Insert some Metadata for a more \"HYBRID\" search\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "summary": "{\n \"name\": \"docs\",\n \"rows\": 5,\n \"fields\": [\n {\n \"column\": \"_id\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"9d1940f843c448cc378214ff6bad3c1279b1911a\",\n \"8e508720cdb495b7821bf6e43c740eeb5f3a444a\",\n \"4b53f660eb6cfe9180f9e609ad94df8606724a3d\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"Shape-aware Instance Segmentation\",\n \"Learning Scalable Deep Kernels with Recurrent\\nStructure\",\n \"Text mining of news-headlines for FOREX market prediction: A Multi-layer Dimension Reduction Algorithm with semantics and sentiment\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"We address the problem of instance-level semantic segmentation, which aims at jointly detecting, segmenting and classifying every individual object in an image. In this context, existing methods typically propose candidate objects, usually as bounding boxes, and directly predict a binary mask within each such proposal. As a consequence, they cannot recover from errors in the object candidate generation process, such as too small or shifted boxes. In this paper, we introduce a novel object segment representation based on the distance transform of the object masks. We then design an object mask network (OMN) with a new residual-deconvolution architecture that infers such a representation and decodes it into the final binary object mask. This allows us to predict masks that go beyond the scope of the bounding boxes and are thus robust to inaccurate object candidates. We integrate our OMN into a Multitask Network Cascade framework, and learn the resulting shape-aware instance segmentation (SAIS) network in an end-to-end manner. Our experiments on the PASCAL VOC 2012 and the CityScapes datasets demonstrate the benefits of our approach, which outperforms the state-of-the-art in both object proposal generation and instance segmentation.\",\n \"Many applications in speech, robotics, finance, and biology deal with sequential data, where ordering matters and recurrent structures are common. However, this structure cannot be easily captured by standard kernel functions. To model such structure, we propose expressive closed-form kernel functions for Gaussian processes. The resulting model, GP-LSTM, fully encapsulates the inductive biases of long short-term memory (LSTM) recurrent networks, while retaining the non-parametric probabilistic advantages of Gaussian processes. We learn the properties of the proposed kernels by optimizing the Gaussian process marginal likelihood using a new provably convergent semi-stochastic gradient procedure, and exploit the structure of these kernels for scalable training and prediction. This approach provides a practical representation for Bayesian LSTMs. We demonstrate state-of-the-art performance on several benchmarks, and thoroughly investigate a consequential autonomous driving application, where the predictive uncertainties provided by GP-LSTM are uniquely valuable.\",\n \"In this paper a novel approach is proposed to predict intraday directional-movements of a currency-pair in the foreign exchange market based on the text of breaking financial news-headlines. The motivation behind this work is twofold: First, although market-prediction through text-mining is shown to be a promising area of work in the literature, the text-mining approaches utilized in it at this stage are not much beyond basic ones as it is still an emerging field. This work is an effort to put more emphasis on the text-mining methods and tackle some specific aspects thereof that are weak in previous works, namely: the problem of high dimensionality as well as the problem of ignoring sentiment and semantics in dealing with textual language. This research assumes that addressing these aspects of text-mining have an impact on the quality of the achieved results. The proposed system proves this assumption to be right. The second part of the motivation is to research a specific market, namely, the foreign exchange market, which seems not to have been researched in the previous works based on predictive text-mining. Therefore, results of this work also successfully demonstrate a predictive relationship between this specific market-type and the textual data of news. Besides the above two main components of the motivation, there are other specific aspects that make the setup of the proposed system and the conducted experiment unique, for example, the use of news article-headlines only and not news article-bodies, which enables usage of short pieces of text rather than long ones; or the use of general financial breaking news without any further filtration. In order to accomplish the above, this work produces a multi-layer algorithm that tackles each of the mentioned aspects of the text-mining problem at a designated layer. The first layer is termed the Semantic Abstraction Layer and addresses the problem of co-reference in text mining that is contributing to sparsity. Co-reference occurs when two or more words in a text corpus refer to the same concept. This work produces a custom approach by the name of Heuristic-Hypernyms Feature-Selection which creates a way to recognize words with the same parent-word to be regarded as one entity. As a result, prediction accuracy increases significantly at this layer which is attributed to appropriate noise-reduction from the feature-space. The second layer is termed Sentiment Integration Layer, which integrates sentiment analysis capability into the algorithm by proposing a sentiment weight by the name of SumScore that reflects investors\\u2019 sentiment. Additionally, this layer reduces the dimensions by eliminating those that are of zero value in terms of sentiment and thereby improves prediction accuracy. The third layer encompasses a dynamic model creation algorithm, termed Synchronous Targeted Feature Reduction (STFR). It is suitable for the challenge at hand whereby the mining of a stream of text is concerned. It updates the models with the most recent information available and, more importantly, it ensures that the dimensions are reduced to the absolute minimum. The algorithm and each of its layers are extensively evaluated using real market data and news content across multiple years and have proven to be solid and superior to any other comparable solution. The proposed techniques implemented in the system, result in significantly high directional-accuracies of up to 83.33%. On top of a well-rounded multifaceted algorithm, this work contributes a much needed research framework for this context with a test-bed of data that must make future research endeavors more convenient. The produced algorithm is scalable and its modular design allows improvement in each of its layers in future research. This paper provides ample details to reproduce the entire system and the conducted experiments. 2014 Elsevier Ltd. All rights reserved. A. Khadjeh Nassirtoussi et al. / Expert Systems with Applications 42 (2015) 306\\u2013324 307\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"num_words\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 193,\n \"min\": 138,\n \"max\": 621,\n \"num_unique_values\": 5,\n \"samples\": [\n 187,\n 138,\n 621\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
+ "type": "dataframe"
+ },
+ "text/html": [
+ "\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
_id
\n",
+ "
title
\n",
+ "
text
\n",
+ "
num_words
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
35
\n",
+ "
9ea16bc34448ca9d713f4501f1a6215a26746372
\n",
+ "
A survey of software testing practices in alberta
\n",
+ "
Software organizations have typically de-empha...
\n",
+ "
236
\n",
+ "
\n",
+ "
\n",
+ "
42
\n",
+ "
9d1940f843c448cc378214ff6bad3c1279b1911a
\n",
+ "
Shape-aware Instance Segmentation
\n",
+ "
We address the problem of instance-level seman...
\n",
+ "
187
\n",
+ "
\n",
+ "
\n",
+ "
31
\n",
+ "
4b53f660eb6cfe9180f9e609ad94df8606724a3d
\n",
+ "
Text mining of news-headlines for FOREX market...
\n",
+ "
In this paper a novel approach is proposed to ...
\n",
+ "
621
\n",
+ "
\n",
+ "
\n",
+ "
21
\n",
+ "
b579366db457216b0548220bf369ab9eb183a0cc
\n",
+ "
An analysis on the significance of ticket anal...
\n",
+ "
Software even though intangible should undergo...
\n",
+ "
232
\n",
+ "
\n",
+ "
\n",
+ "
29
\n",
+ "
8e508720cdb495b7821bf6e43c740eeb5f3a444a
\n",
+ "
Learning Scalable Deep Kernels with Recurrent\\...
\n"
+ ],
+ "text/plain": [
+ " _id \\\n",
+ "35 9ea16bc34448ca9d713f4501f1a6215a26746372 \n",
+ "42 9d1940f843c448cc378214ff6bad3c1279b1911a \n",
+ "31 4b53f660eb6cfe9180f9e609ad94df8606724a3d \n",
+ "21 b579366db457216b0548220bf369ab9eb183a0cc \n",
+ "29 8e508720cdb495b7821bf6e43c740eeb5f3a444a \n",
+ "\n",
+ " title \\\n",
+ "35 A survey of software testing practices in alberta \n",
+ "42 Shape-aware Instance Segmentation \n",
+ "31 Text mining of news-headlines for FOREX market... \n",
+ "21 An analysis on the significance of ticket anal... \n",
+ "29 Learning Scalable Deep Kernels with Recurrent\\... \n",
+ "\n",
+ " text num_words \n",
+ "35 Software organizations have typically de-empha... 236 \n",
+ "42 We address the problem of instance-level seman... 187 \n",
+ "31 In this paper a novel approach is proposed to ... 621 \n",
+ "21 Software even though intangible should undergo... 232 \n",
+ "29 Many applications in speech, robotics, finance... 138 "
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "queries = load_dataset(\"BeIR/scidocs\", \"queries\")[\"queries\"].to_pandas()\n",
+ "full_docs = (\n",
+ " load_dataset(\"BeIR/scidocs\", \"corpus\")[\"corpus\"].to_pandas().dropna(subset=\"text\")\n",
+ ")\n",
+ "\n",
+ "docs = full_docs.head(64) # just random samples for faster embed demo\n",
+ "docs[\"num_words\"] = docs[\"text\"].apply(\n",
+ " lambda x: len(x.split())\n",
+ ") # Insert some Metadata for a more \"HYBRID\" search\n",
+ "docs.sample(5)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "HJf8xZmX8VJC"
+ },
+ "source": [
+ "# Build New Table"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "GkhFiOZAwVWw"
+ },
+ "outputs": [],
+ "source": [
+ "!rm -rf ./db"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "id": "5aljyqpUiViE"
+ },
+ "outputs": [],
+ "source": [
+ "class Documents(LanceModel):\n",
+ " vector: Vector(embeddings.ndims()) = embeddings.VectorField()\n",
+ " text: str = embeddings.SourceField()\n",
+ " title: str\n",
+ " num_words: int\n",
+ "\n",
+ "\n",
+ "data = docs.apply(\n",
+ " lambda row: {\n",
+ " \"title\": row[\"title\"],\n",
+ " \"text\": row[\"text\"],\n",
+ " \"num_words\": row[\"num_words\"],\n",
+ " },\n",
+ " axis=1,\n",
+ ").values.tolist()\n",
+ "\n",
+ "db = lancedb.connect(\"./db\")\n",
+ "table = db.create_table(\"documents\", schema=Documents)\n",
+ "\n",
+ "table.add(data) # ingest docs with auto-vectorization\n",
+ "table.create_fts_index(\"text\") # Create a fts index before the hybrid search"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 206
+ },
+ "id": "OS-soek-yYm4",
+ "outputId": "9c66ba15-11a8-44e4-eacb-1a2a57fc72f6"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "summary": "{\n \"name\": \" query_type=\\\"fts\\\")\",\n \"rows\": 5,\n \"fields\": [\n {\n \"column\": \"vector\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"Hierarchical Pitman-Yor Process priors are compelling methods for learning language models, outperforming point-estimate based methods. However, these models remain unpopular due to computational and statistical inference issues, such as memory and time usage, as well as poor mixing of sampler. In this work we propose a novel framework which represents the HPYP model compactly using compressed suffix trees. Then, we develop an efficient approximate inference scheme in this framework that has a much lower memory footprint compared to full HPYP and is fast in the inference time. The experimental results illustrate that our model can be built on significantly larger datasets compared to previous HPYP models, while being several orders of magnitudes smaller, fast for training and inference, and outperforming the perplexity of the state-of-the-art Modified Kneser-Ney countbased LM smoothing by up to 15%.\",\n \"Software organizations have typically de-emphasized the importance of software testing. In this paper, the results of a regional survey of software testing and software quality assurance techniques are described. Researchers conducted the study during the summer and fall of 2002 by surveying software organizations in the Province of Alberta. Results indicate that Alberta-based organizations tend to test less than their counterparts in the United States. The results also indicate that Alberta software organizations tend to train fewer personnel on testing-related topics. This practice has the potential for a two-fold impact: first, the ability to detect trends that lead to reduced quality and to identify the root causes of reductions in product quality may suffer from the lack of testing. This consequence is serious enough to warrant consideration, since overall quality may suffer from the reduced ability to detect and eliminate process or product defects. Second, the organization may have a more difficult time adopting methodologies such as extreme programming. This is significant because other industry studies have concluded that many software organizations have tried or will in the next few years try some form of agile method. Newer approaches to software development like extreme programming increase the extent to which teams rely on testing skills. Organizations should consider their testing skill level as a key indication of their readiness for adopting software development techniques such as test-driven development, extreme programming, agile modelling, or other agile methods.\",\n \"We introduce a long short-term memory recurrent neural network (LSTM-RNN) approach for real-time facial animation, which automatically estimates head rotation and facial action unit activations of a speaker from just her speech. Specifically, the time-varying contextual non-linear mapping between audio stream and visual facial movements is realized by training a LSTM neural network on a large audio-visual data corpus. In this work, we extract a set of acoustic features from input audio, including Mel-scaled spectrogram, Mel frequency cepstral coefficients and chromagram that can effectively represent both contextual progression and emotional intensity of the speech. Output facial movements are characterized by 3D rotation and blending expression weights of a blendshape model, which can be used directly for animation. Thus, even though our model does not explicitly predict the affective states of the target speaker, her emotional manifestation is recreated via expression weights of the face model. Experiments on an evaluation dataset of different speakers across a wide range of affective states demonstrate promising results of our approach in real-time speech-driven facial animation.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"Compressed Nonparametric Language Modelling\",\n \"A survey of software testing practices in alberta\",\n \"Speech-driven 3 D Facial Animation with Implicit Emotional Awareness : A Deep Learning Approach\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"num_words\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 51,\n \"min\": 112,\n \"max\": 236,\n \"num_unique_values\": 5,\n \"samples\": [\n 134,\n 236,\n 171\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"score\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.3946595562275909,\n \"min\": 6.037307262420654,\n \"max\": 6.8111042976379395,\n \"num_unique_values\": 5,\n \"samples\": [\n 6.782823085784912,\n 6.037307262420654,\n 6.157275199890137\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
+ "type": "dataframe"
+ },
+ "text/html": [
+ "\n",
+ "
\n"
+ ],
+ "text/plain": [
+ " vector \\\n",
+ "0 [-0.0123116635, -0.003029472, 0.022851666, -0.... \n",
+ "1 [-0.013957698, 0.02428029, 0.0018158188, -0.03... \n",
+ "2 [-0.035857946, -0.00020074612, 0.009314451, -0... \n",
+ "3 [-0.03081366, -0.0026948636, 0.010220175, -0.0... \n",
+ "4 [0.0012136719, -0.022606706, 0.0142465895, -0.... \n",
+ "\n",
+ " text \\\n",
+ "0 Sociological and technical difficulties, such ... \n",
+ "1 Hierarchical Pitman-Yor Process priors are com... \n",
+ "2 We introduce a long short-term memory recurren... \n",
+ "3 This report summarizes the objectives and eval... \n",
+ "4 Software organizations have typically de-empha... \n",
+ "\n",
+ " title num_words score \n",
+ "0 Hipikat: a project memory for software develop... 210 6.811104 \n",
+ "1 Compressed Nonparametric Language Modelling 134 6.782823 \n",
+ "2 Speech-driven 3 D Facial Animation with Implic... 171 6.157275 \n",
+ "3 SemEval-2015 Task 11: Sentiment Analysis of Fi... 112 6.050443 \n",
+ "4 A survey of software testing practices in alberta 236 6.037307 "
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "table.search(\n",
+ " \"To confuse the AI and DNN embedding, let's put random terms from other sentences- automation training test memory?\",\n",
+ " query_type=\"fts\",\n",
+ ").limit(5).to_pandas()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 363
+ },
+ "id": "1wo7nfR0yhk7",
+ "outputId": "7221d414-3151-44bf-8ce0-f21e6ecb331a"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "summary": "{\n \"name\": \" to_pandas()\",\n \"rows\": 10,\n \"fields\": [\n {\n \"column\": \"vector\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"With the development of online advertisements, clickbait spread wider and wider. Clickbait dissatisfies users because the article content does not match their expectation. Thus, clickbait detection has attracted more and more attention recently. Traditional clickbait-detection methods rely on heavy feature engineering and fail to distinguish clickbait from normal headlines precisely because of the limited information in headlines. A convolutional neural network is useful for clickbait detection, since it utilizes pretrained Word2Vec to understand the headlines semantically, and employs different kernels to find various characteristics of the headlines. However, different types of articles tend to use different ways to draw users\\u2019 attention, and a pretrained Word2Vec model cannot distinguish these different ways. To address this issue, we propose a clickbait convolutional neural network (CBCNN) to consider not only the overall characteristics but also specific characteristics from different article types. Our experimental results show that our method outperforms traditional clickbait-detection algorithms and the TextCNN model in terms of precision, recall and accuracy.\",\n \"a r t i c l e i n f o a b s t r a c t We present an automatic approach to the construction of BabelNet, a very large, wide-coverage multilingual semantic network. Key to our approach is the integration of lexicographic and encyclopedic knowledge from WordNet and Wikipedia. In addition, Machine Translation is applied to enrich the resource with lexical information for all languages. We first conduct in vitro experiments on new and existing gold-standard datasets to show the high quality and coverage of BabelNet. We then show that our lexical resource can be used successfully to perform both monolingual and cross-lingual Word Sense Disambiguation: thanks to its wide lexical coverage and novel semantic relations, we are able to achieve state-of the-art results on three different SemEval evaluation tasks.\",\n \"This paper proposes quiz-style information presentation for interactive systems as a means to improve user understanding in educational tasks. Since the nature of quizzes can highly motivate users to stay voluntarily engaged in the interaction and keep their attention on receiving information, it is expected that information presented as quizzes can be better understood by users. To verify the effectiveness of the approach, we implemented read-out and quiz systems and performed comparison experiments using human subjects. In the task of memorizing biographical facts, the results showed that user understanding for the quiz system was significantly better than that for the read-out system, and that the subjects were more willing to use the quiz system despite the long duration of the quizzes. This indicates that quiz-style information presentation promotes engagement in the interaction with the system, leading to the improved user understanding.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"Clickbait Convolutional Neural Network\",\n \"BabelNet: The automatic construction, evaluation and application of a wide-coverage multilingual semantic network\",\n \"Effects of quiz-style information presentation on user understanding\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"num_words\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 23,\n \"min\": 112,\n \"max\": 187,\n \"num_unique_values\": 10,\n \"samples\": [\n 160,\n 133,\n 141\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"_distance\",\n \"properties\": {\n \"dtype\": \"float32\",\n \"num_unique_values\": 10,\n \"samples\": [\n 0.4484541118144989,\n 0.40246888995170593,\n 0.44178444147109985\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
+ "type": "dataframe"
+ },
+ "text/html": [
+ "\n",
+ "
\n"
+ ],
+ "text/plain": [
+ " vector \\\n",
+ "0 [-0.029037403, -0.0019001433, 0.01014971, -0.0... \n",
+ "1 [-0.013545574, -0.0019434954, 0.009623939, -0.... \n",
+ "2 [-0.027462298, -0.00018946378, 0.017612722, -0... \n",
+ "3 [-0.035857946, -0.00020074612, 0.009314451, -0... \n",
+ "4 [-0.010440272, -0.0065525724, 0.018469144, -0.... \n",
+ "5 [-0.037621364, 0.011013092, 0.02912708, -0.034... \n",
+ "6 [-0.03081366, -0.0026948636, 0.010220175, -0.0... \n",
+ "7 [-0.009847619, 0.007252175, 0.00984077, -0.031... \n",
+ "8 [-0.02750998, 0.017241215, 0.016468005, -0.014... \n",
+ "9 [-0.016168512, 0.010419708, 0.029975908, -0.01... \n",
+ "\n",
+ " text \\\n",
+ "0 Classifying short texts to one category or clu... \n",
+ "1 a r t i c l e i n f o a b s t r a c t We prese... \n",
+ "2 We introduce a technique for augmenting neural... \n",
+ "3 We introduce a long short-term memory recurren... \n",
+ "4 The presented work aims at generating a system... \n",
+ "5 This paper proposes quiz-style information pre... \n",
+ "6 This report summarizes the objectives and eval... \n",
+ "7 This paper presents a simple unsupervised lear... \n",
+ "8 With the development of online advertisements,... \n",
+ "9 Theories on the functions of the hippocampal s... \n",
+ "\n",
+ " title num_words _distance \n",
+ "0 Using deep learning for short text understanding 187 0.354801 \n",
+ "1 BabelNet: The automatic construction, evaluati... 133 0.402469 \n",
+ "2 Deep Voice 2 : Multi-Speaker Neural Text-to-Sp... 151 0.417934 \n",
+ "3 Speech-driven 3 D Facial Animation with Implic... 171 0.421723 \n",
+ "4 BCSAT : A Benchmark Corpus for Sentiment Analy... 126 0.430030 \n",
+ "5 Effects of quiz-style information presentation... 141 0.441784 \n",
+ "6 SemEval-2015 Task 11: Sentiment Analysis of Fi... 112 0.445057 \n",
+ "7 Thumbs Up or Thumbs Down? Semantic Orientation... 163 0.448393 \n",
+ "8 Clickbait Convolutional Neural Network 160 0.448454 \n",
+ "9 Memory, navigation and theta rhythm in the hip... 130 0.453170 "
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "table.search(\n",
+ " \"To confuse the AI and DNN embedding, let's put random terms from other sentences- automation training test memory?\",\n",
+ " query_type=\"vector\",\n",
+ ").limit(10).to_pandas()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "e_AH1IxlFPn-"
+ },
+ "source": [
+ "## Perform inbuilt Hybrid Search\n",
+ "They have some off the shelf functionalities and a way to implement the custom Re-Ranking and Filtering Function here [Implement Custom Rerankers](https://lancedb.github.io/lancedb/hybrid_search/#building-custom-rerankers)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 206
+ },
+ "id": "Se27vipkFSzf",
+ "outputId": "4d24e067-39ad-439b-d243-6cb61302412e"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "summary": "{\n \"name\": \" to_pandas()\",\n \"rows\": 5,\n \"fields\": [\n {\n \"column\": \"vector\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"Hierarchical Pitman-Yor Process priors are compelling methods for learning language models, outperforming point-estimate based methods. However, these models remain unpopular due to computational and statistical inference issues, such as memory and time usage, as well as poor mixing of sampler. In this work we propose a novel framework which represents the HPYP model compactly using compressed suffix trees. Then, we develop an efficient approximate inference scheme in this framework that has a much lower memory footprint compared to full HPYP and is fast in the inference time. The experimental results illustrate that our model can be built on significantly larger datasets compared to previous HPYP models, while being several orders of magnitudes smaller, fast for training and inference, and outperforming the perplexity of the state-of-the-art Modified Kneser-Ney countbased LM smoothing by up to 15%.\",\n \"We introduce a technique for augmenting neural text-to-speech (TTS) with lowdimensional trainable speaker embeddings to generate different voices from a single model. As a starting point, we show improvements over the two state-ofthe-art approaches for single-speaker neural TTS: Deep Voice 1 and Tacotron. We introduce Deep Voice 2, which is based on a similar pipeline with Deep Voice 1, but constructed with higher performance building blocks and demonstrates a significant audio quality improvement over Deep Voice 1. We improve Tacotron by introducing a post-processing neural vocoder, and demonstrate a significant audio quality improvement. We then demonstrate our technique for multi-speaker speech synthesis for both Deep Voice 2 and Tacotron on two multi-speaker TTS datasets. We show that a single neural TTS system can learn hundreds of unique voices from less than half an hour of data per speaker, while achieving high audio quality synthesis and preserving the speaker identities almost perfectly.\",\n \"a r t i c l e i n f o a b s t r a c t We present an automatic approach to the construction of BabelNet, a very large, wide-coverage multilingual semantic network. Key to our approach is the integration of lexicographic and encyclopedic knowledge from WordNet and Wikipedia. In addition, Machine Translation is applied to enrich the resource with lexical information for all languages. We first conduct in vitro experiments on new and existing gold-standard datasets to show the high quality and coverage of BabelNet. We then show that our lexical resource can be used successfully to perform both monolingual and cross-lingual Word Sense Disambiguation: thanks to its wide lexical coverage and novel semantic relations, we are able to achieve state-of the-art results on three different SemEval evaluation tasks.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"Compressed Nonparametric Language Modelling\",\n \"Deep Voice 2 : Multi-Speaker Neural Text-to-Speech\",\n \"BabelNet: The automatic construction, evaluation and application of a wide-coverage multilingual semantic network\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"num_words\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 23,\n \"min\": 133,\n \"max\": 187,\n \"num_unique_values\": 5,\n \"samples\": [\n 134,\n 151,\n 133\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"_relevance_score\",\n \"properties\": {\n \"dtype\": \"float32\",\n \"num_unique_values\": 5,\n \"samples\": [\n 0.6744159460067749,\n 0.1125519722700119,\n 0.25645574927330017\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
+ "type": "dataframe"
+ },
+ "text/html": [
+ "\n",
+ "
\n"
+ ],
+ "text/plain": [
+ " vector \\\n",
+ "0 [-0.029037403, -0.0019001433, 0.01014971, -0.0... \n",
+ "1 [-0.013957698, 0.02428029, 0.0018158188, -0.03... \n",
+ "2 [-0.013545574, -0.0019434954, 0.009623939, -0.... \n",
+ "3 [-0.035857946, -0.00020074612, 0.009314451, -0... \n",
+ "4 [-0.027462298, -0.00018946378, 0.017612722, -0... \n",
+ "\n",
+ " text \\\n",
+ "0 Classifying short texts to one category or clu... \n",
+ "1 Hierarchical Pitman-Yor Process priors are com... \n",
+ "2 a r t i c l e i n f o a b s t r a c t We prese... \n",
+ "3 We introduce a long short-term memory recurren... \n",
+ "4 We introduce a technique for augmenting neural... \n",
+ "\n",
+ " title num_words \\\n",
+ "0 Using deep learning for short text understanding 187 \n",
+ "1 Compressed Nonparametric Language Modelling 134 \n",
+ "2 BabelNet: The automatic construction, evaluati... 133 \n",
+ "3 Speech-driven 3 D Facial Animation with Implic... 171 \n",
+ "4 Deep Voice 2 : Multi-Speaker Neural Text-to-Sp... 151 \n",
+ "\n",
+ " _relevance_score \n",
+ "0 0.700000 \n",
+ "1 0.674416 \n",
+ "2 0.256456 \n",
+ "3 0.123807 \n",
+ "4 0.112552 "
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from lancedb.rerankers import LinearCombinationReranker\n",
+ "\n",
+ "reranker = LinearCombinationReranker(\n",
+ " weight=0.7\n",
+ ") # Weight = 0 Means pure Text Search (BM-25) and 1 means pure Sementic (Vector) Search\n",
+ "\n",
+ "table.search(\n",
+ " \"To confuse the AI and DNN embedding, let's put random terms from other sentences- automation training test memory?\",\n",
+ " query_type=\"hybrid\",\n",
+ ").rerank(reranker=reranker).limit(5).to_pandas()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Yw5OecIjE3IB"
+ },
+ "source": [
+ "## Build custom Filtering Function\n",
+ "\n",
+ "By passing the `pandas.query` style, filtering, we will do the following 2 things:\n",
+ "\n",
+ "1. Remove all the rows which contain a specific term, in out case, `\"dual-band\"`\n",
+ "2. Keep only the rows which have `num_words > 100`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 206
+ },
+ "id": "vfMIXT2vE9yv",
+ "outputId": "90b28f90-c614-446a-b5b5-b72b32ec0ef5"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "summary": "{\n \"name\": \" to_pandas()\",\n \"rows\": 5,\n \"fields\": [\n {\n \"column\": \"vector\",\n \"properties\": {\n \"dtype\": \"object\",\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"text\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"We introduce a long short-term memory recurrent neural network (LSTM-RNN) approach for real-time facial animation, which automatically estimates head rotation and facial action unit activations of a speaker from just her speech. Specifically, the time-varying contextual non-linear mapping between audio stream and visual facial movements is realized by training a LSTM neural network on a large audio-visual data corpus. In this work, we extract a set of acoustic features from input audio, including Mel-scaled spectrogram, Mel frequency cepstral coefficients and chromagram that can effectively represent both contextual progression and emotional intensity of the speech. Output facial movements are characterized by 3D rotation and blending expression weights of a blendshape model, which can be used directly for animation. Thus, even though our model does not explicitly predict the affective states of the target speaker, her emotional manifestation is recreated via expression weights of the face model. Experiments on an evaluation dataset of different speakers across a wide range of affective states demonstrate promising results of our approach in real-time speech-driven facial animation.\",\n \"In this paper a novel approach is proposed to predict intraday directional-movements of a currency-pair in the foreign exchange market based on the text of breaking financial news-headlines. The motivation behind this work is twofold: First, although market-prediction through text-mining is shown to be a promising area of work in the literature, the text-mining approaches utilized in it at this stage are not much beyond basic ones as it is still an emerging field. This work is an effort to put more emphasis on the text-mining methods and tackle some specific aspects thereof that are weak in previous works, namely: the problem of high dimensionality as well as the problem of ignoring sentiment and semantics in dealing with textual language. This research assumes that addressing these aspects of text-mining have an impact on the quality of the achieved results. The proposed system proves this assumption to be right. The second part of the motivation is to research a specific market, namely, the foreign exchange market, which seems not to have been researched in the previous works based on predictive text-mining. Therefore, results of this work also successfully demonstrate a predictive relationship between this specific market-type and the textual data of news. Besides the above two main components of the motivation, there are other specific aspects that make the setup of the proposed system and the conducted experiment unique, for example, the use of news article-headlines only and not news article-bodies, which enables usage of short pieces of text rather than long ones; or the use of general financial breaking news without any further filtration. In order to accomplish the above, this work produces a multi-layer algorithm that tackles each of the mentioned aspects of the text-mining problem at a designated layer. The first layer is termed the Semantic Abstraction Layer and addresses the problem of co-reference in text mining that is contributing to sparsity. Co-reference occurs when two or more words in a text corpus refer to the same concept. This work produces a custom approach by the name of Heuristic-Hypernyms Feature-Selection which creates a way to recognize words with the same parent-word to be regarded as one entity. As a result, prediction accuracy increases significantly at this layer which is attributed to appropriate noise-reduction from the feature-space. The second layer is termed Sentiment Integration Layer, which integrates sentiment analysis capability into the algorithm by proposing a sentiment weight by the name of SumScore that reflects investors\\u2019 sentiment. Additionally, this layer reduces the dimensions by eliminating those that are of zero value in terms of sentiment and thereby improves prediction accuracy. The third layer encompasses a dynamic model creation algorithm, termed Synchronous Targeted Feature Reduction (STFR). It is suitable for the challenge at hand whereby the mining of a stream of text is concerned. It updates the models with the most recent information available and, more importantly, it ensures that the dimensions are reduced to the absolute minimum. The algorithm and each of its layers are extensively evaluated using real market data and news content across multiple years and have proven to be solid and superior to any other comparable solution. The proposed techniques implemented in the system, result in significantly high directional-accuracies of up to 83.33%. On top of a well-rounded multifaceted algorithm, this work contributes a much needed research framework for this context with a test-bed of data that must make future research endeavors more convenient. The produced algorithm is scalable and its modular design allows improvement in each of its layers in future research. This paper provides ample details to reproduce the entire system and the conducted experiments. 2014 Elsevier Ltd. All rights reserved. A. Khadjeh Nassirtoussi et al. / Expert Systems with Applications 42 (2015) 306\\u2013324 307\",\n \"We introduce a technique for augmenting neural text-to-speech (TTS) with lowdimensional trainable speaker embeddings to generate different voices from a single model. As a starting point, we show improvements over the two state-ofthe-art approaches for single-speaker neural TTS: Deep Voice 1 and Tacotron. We introduce Deep Voice 2, which is based on a similar pipeline with Deep Voice 1, but constructed with higher performance building blocks and demonstrates a significant audio quality improvement over Deep Voice 1. We improve Tacotron by introducing a post-processing neural vocoder, and demonstrate a significant audio quality improvement. We then demonstrate our technique for multi-speaker speech synthesis for both Deep Voice 2 and Tacotron on two multi-speaker TTS datasets. We show that a single neural TTS system can learn hundreds of unique voices from less than half an hour of data per speaker, while achieving high audio quality synthesis and preserving the speaker identities almost perfectly.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"Speech-driven 3 D Facial Animation with Implicit Emotional Awareness : A Deep Learning Approach\",\n \"Text mining of news-headlines for FOREX market prediction: A Multi-layer Dimension Reduction Algorithm with semantics and sentiment\",\n \"Deep Voice 2 : Multi-Speaker Neural Text-to-Speech\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"num_words\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 196,\n \"min\": 151,\n \"max\": 621,\n \"num_unique_values\": 5,\n \"samples\": [\n 171,\n 621,\n 151\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"_relevance_score\",\n \"properties\": {\n \"dtype\": \"float32\",\n \"num_unique_values\": 5,\n \"samples\": [\n 0.2986561357975006,\n 0.10069400072097778,\n 0.20968052744865417\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
+ "type": "dataframe"
+ },
+ "text/html": [
+ "\n",
+ "