From 89108fbdebb07063cc51647273ec550470ef418e Mon Sep 17 00:00:00 2001 From: Felipe Aros Date: Sun, 10 Mar 2024 23:51:47 -0300 Subject: [PATCH 1/3] First agent inclusion --- .gitignore | 2 - 5.Intent Agent/.chainlit/config.toml | 84 ++++++++ .../.chainlit/translations/en-US.json | 155 ++++++++++++++ .../.chainlit/translations/pt-BR.json | 155 ++++++++++++++ 5.Intent Agent/.env.example | 3 + 5.Intent Agent/README.md | 156 ++++++++++++++ 5.Intent Agent/chainlit.md | 14 ++ 5.Intent Agent/images/RAGSources.png | Bin 0 -> 153773 bytes 5.Intent Agent/ingest.py | 120 +++++++++++ 5.Intent Agent/main.py | 190 ++++++++++++++++++ 5.Intent Agent/requirements.txt | 13 ++ 11 files changed, 890 insertions(+), 2 deletions(-) create mode 100644 5.Intent Agent/.chainlit/config.toml create mode 100644 5.Intent Agent/.chainlit/translations/en-US.json create mode 100644 5.Intent Agent/.chainlit/translations/pt-BR.json create mode 100644 5.Intent Agent/.env.example create mode 100644 5.Intent Agent/README.md create mode 100644 5.Intent Agent/chainlit.md create mode 100644 5.Intent Agent/images/RAGSources.png create mode 100644 5.Intent Agent/ingest.py create mode 100644 5.Intent Agent/main.py create mode 100644 5.Intent Agent/requirements.txt diff --git a/.gitignore b/.gitignore index 5686713..c1fdb10 100644 --- a/.gitignore +++ b/.gitignore @@ -5,8 +5,6 @@ **/data/* !**/data/ *.files - -5.* 6.* **/output/* !**/output/ diff --git a/5.Intent Agent/.chainlit/config.toml b/5.Intent Agent/.chainlit/config.toml new file mode 100644 index 0000000..feebd7d --- /dev/null +++ b/5.Intent Agent/.chainlit/config.toml @@ -0,0 +1,84 @@ +[project] +# Whether to enable telemetry (default: true). No personal data is collected. +enable_telemetry = true + +# List of environment variables to be provided by each user to use the app. +user_env = [] + +# Duration (in seconds) during which the session is saved when the connection is lost +session_timeout = 3600 + +# Enable third parties caching (e.g LangChain cache) +cache = false + +# Follow symlink for asset mount (see https://github.com/Chainlit/chainlit/issues/317) +# follow_symlink = false + +[features] +# Show the prompt playground +prompt_playground = true + +# Process and display HTML in messages. This can be a security risk (see https://stackoverflow.com/questions/19603097/why-is-it-dangerous-to-render-user-generated-html-or-javascript) +unsafe_allow_html = false + +# Process and display mathematical expressions. This can clash with "$" characters in messages. +latex = false + +# Authorize users to upload files with messages +multi_modal = false + +# Allows user to use speech to text +[features.speech_to_text] + enabled = false + # See all languages here https://github.com/JamesBrill/react-speech-recognition/blob/HEAD/docs/API.md#language-string + # language = "en-US" + +[UI] +# Name of the app and chatbot. +name = "Chatbot" + +# Show the readme while the thread is empty. +show_readme_as_default = false + +# Description of the app and chatbot. This is used for HTML tags. +# description = "" + +# Large size content are by default collapsed for a cleaner ui +default_collapse_content = true + +# The default value for the expand messages settings. +default_expand_messages = false + +# Hide the chain of thought details from the user in the UI. +hide_cot = false + +# Link to your github repo. This will add a github button in the UI's header. +# github = "" + +# Specify a CSS file that can be used to customize the user interface. +# The CSS file can be served from the public directory or via an external link. +# custom_css = "/public/test.css" + +# Override default MUI light theme. (Check theme.ts) +[UI.theme.light] + #background = "#FAFAFA" + #paper = "#FFFFFF" + + [UI.theme.light.primary] + #main = "#F80061" + #dark = "#980039" + #light = "#FFE7EB" + +# Override default MUI dark theme. (Check theme.ts) +[UI.theme.dark] + #background = "#FAFAFA" + #paper = "#FFFFFF" + + [UI.theme.dark.primary] + #main = "#F80061" + #dark = "#980039" + #light = "#FFE7EB" + + +[meta] +generated_by = "1.0.101" diff --git a/5.Intent Agent/.chainlit/translations/en-US.json b/5.Intent Agent/.chainlit/translations/en-US.json new file mode 100644 index 0000000..249353c --- /dev/null +++ b/5.Intent Agent/.chainlit/translations/en-US.json @@ -0,0 +1,155 @@ +{ + "components": { + "atoms": { + "buttons": { + "userButton": { + "menu": { + "settings": "Settings", + "settingsKey": "S", + "APIKeys": "API Keys", + "logout": "Logout" + } + } + } + }, + "molecules": { + "newChatButton": { + "newChat": "New Chat" + }, + "tasklist": { + "TaskList": { + "title": "\ud83d\uddd2\ufe0f Task List", + "loading": "Loading...", + "error": "An error occured" + } + }, + "attachments": { + "cancelUpload": "Cancel upload", + "removeAttachment": "Remove attachment" + }, + "newChatDialog": { + "createNewChat": "Create new chat?", + "clearChat": "This will clear the current messages and start a new chat.", + "cancel": "Cancel", + "confirm": "Confirm" + }, + "settingsModal": { + "expandMessages": "Expand Messages", + "hideChainOfThought": "Hide Chain of Thought", + "darkMode": "Dark Mode" + } + }, + "organisms": { + "chat": { + "history": { + "index": { + "lastInputs": "Last Inputs", + "noInputs": "Such empty...", + "loading": "Loading..." + } + }, + "inputBox": { + "input": { + "placeholder": "Type your message here..." + }, + "speechButton": { + "start": "Start recording", + "stop": "Stop recording" + }, + "SubmitButton": { + "sendMessage": "Send message", + "stopTask": "Stop Task" + }, + "UploadButton": { + "attachFiles": "Attach files" + }, + "waterMark": { + "text": "Built with" + } + }, + "Messages": { + "index": { + "running": "Running", + "executedSuccessfully": "executed successfully", + "failed": "failed", + "feedbackUpdated": "Feedback updated", + "updating": "Updating" + } + }, + "dropScreen": { + "dropYourFilesHere": "Drop your files here" + }, + "index": { + "failedToUpload": "Failed to upload", + "cancelledUploadOf": "Cancelled upload of", + "couldNotReachServer": "Could not reach the server", + "continuingChat": "Continuing previous chat" + }, + "settings": { + "settingsPanel": "Settings panel", + "reset": "Reset", + "cancel": "Cancel", + "confirm": "Confirm" + } + }, + "threadHistory": { + "sidebar": { + "filters": { + "FeedbackSelect": { + "feedbackAll": "Feedback: All", + "feedbackPositive": "Feedback: Positive", + "feedbackNegative": "Feedback: Negative" + }, + "SearchBar": { + "search": "Search" + } + }, + "DeleteThreadButton": { + "confirmMessage": "This will delete the thread as well as it's messages and elements.", + "cancel": "Cancel", + "confirm": "Confirm", + "deletingChat": "Deleting chat", + "chatDeleted": "Chat deleted" + }, + "index": { + "pastChats": "Past Chats" + }, + "ThreadList": { + "empty": "Empty..." + }, + "TriggerButton": { + "closeSidebar": "Close sidebar", + "openSidebar": "Open sidebar" + } + }, + "Thread": { + "backToChat": "Go back to chat", + "chatCreatedOn": "This chat was created on" + } + }, + "header": { + "chat": "Chat", + "readme": "Readme" + } + } + }, + "hooks": { + "useLLMProviders": { + "failedToFetchProviders": "Failed to fetch providers:" + } + }, + "pages": { + "Design": {}, + "Env": { + "savedSuccessfully": "Saved successfully", + "requiredApiKeys": "Required API Keys", + "requiredApiKeysInfo": "To use this app, the following API keys are required. The keys are stored on your device's local storage." + }, + "Page": { + "notPartOfProject": "You are not part of this project." + }, + "ResumeButton": { + "resumeChat": "Resume Chat" + } + } +} \ No newline at end of file diff --git a/5.Intent Agent/.chainlit/translations/pt-BR.json b/5.Intent Agent/.chainlit/translations/pt-BR.json new file mode 100644 index 0000000..5b42831 --- /dev/null +++ b/5.Intent Agent/.chainlit/translations/pt-BR.json @@ -0,0 +1,155 @@ +{ + "components": { + "atoms": { + "buttons": { + "userButton": { + "menu": { + "settings": "Configura\u00e7\u00f5es", + "settingsKey": "S", + "APIKeys": "Chaves de API", + "logout": "Sair" + } + } + } + }, + "molecules": { + "newChatButton": { + "newChat": "Nova Conversa" + }, + "tasklist": { + "TaskList": { + "title": "\ud83d\uddd2\ufe0f Lista de Tarefas", + "loading": "Carregando...", + "error": "Ocorreu um erro" + } + }, + "attachments": { + "cancelUpload": "Cancelar envio", + "removeAttachment": "Remover anexo" + }, + "newChatDialog": { + "createNewChat": "Criar novo chat?", + "clearChat": "Isso limpar\u00e1 as mensagens atuais e iniciar\u00e1 uma nova conversa.", + "cancel": "Cancelar", + "confirm": "Confirmar" + }, + "settingsModal": { + "expandMessages": "Expandir Mensagens", + "hideChainOfThought": "Esconder Sequ\u00eancia de Pensamento", + "darkMode": "Modo Escuro" + } + }, + "organisms": { + "chat": { + "history": { + "index": { + "lastInputs": "\u00daltimas Entradas", + "noInputs": "Vazio...", + "loading": "Carregando..." + } + }, + "inputBox": { + "input": { + "placeholder": "Digite sua mensagem aqui..." + }, + "speechButton": { + "start": "Iniciar grava\u00e7\u00e3o", + "stop": "Parar grava\u00e7\u00e3o" + }, + "SubmitButton": { + "sendMessage": "Enviar mensagem", + "stopTask": "Parar Tarefa" + }, + "UploadButton": { + "attachFiles": "Anexar arquivos" + }, + "waterMark": { + "text": "Constru\u00eddo com" + } + }, + "Messages": { + "index": { + "running": "Executando", + "executedSuccessfully": "executado com sucesso", + "failed": "falhou", + "feedbackUpdated": "Feedback atualizado", + "updating": "Atualizando" + } + }, + "dropScreen": { + "dropYourFilesHere": "Solte seus arquivos aqui" + }, + "index": { + "failedToUpload": "Falha ao enviar", + "cancelledUploadOf": "Envio cancelado de", + "couldNotReachServer": "N\u00e3o foi poss\u00edvel conectar ao servidor", + "continuingChat": "Continuando o chat anterior" + }, + "settings": { + "settingsPanel": "Painel de Configura\u00e7\u00f5es", + "reset": "Redefinir", + "cancel": "Cancelar", + "confirm": "Confirmar" + } + }, + "threadHistory": { + "sidebar": { + "filters": { + "FeedbackSelect": { + "feedbackAll": "Feedback: Todos", + "feedbackPositive": "Feedback: Positivo", + "feedbackNegative": "Feedback: Negativo" + }, + "SearchBar": { + "search": "Buscar" + } + }, + "DeleteThreadButton": { + "confirmMessage": "Isso deletar\u00e1 a conversa, assim como suas mensagens e elementos.", + "cancel": "Cancelar", + "confirm": "Confirmar", + "deletingChat": "Deletando conversa", + "chatDeleted": "Conversa deletada" + }, + "index": { + "pastChats": "Conversas Anteriores" + }, + "ThreadList": { + "empty": "Vazio..." + }, + "TriggerButton": { + "closeSidebar": "Fechar barra lateral", + "openSidebar": "Abrir barra lateral" + } + }, + "Thread": { + "backToChat": "Voltar para a conversa", + "chatCreatedOn": "Esta conversa foi criada em" + } + }, + "header": { + "chat": "Conversa", + "readme": "Leia-me" + } + }, + "hooks": { + "useLLMProviders": { + "failedToFetchProviders": "Falha ao buscar provedores:" + } + }, + "pages": { + "Design": {}, + "Env": { + "savedSuccessfully": "Salvo com sucesso", + "requiredApiKeys": "Chaves de API necess\u00e1rias", + "requiredApiKeysInfo": "Para usar este aplicativo, as seguintes chaves de API s\u00e3o necess\u00e1rias. As chaves s\u00e3o armazenadas localmente em seu dispositivo." + }, + "Page": { + "notPartOfProject": "Voc\u00ea n\u00e3o faz parte deste projeto." + }, + "ResumeButton": { + "resumeChat": "Continuar Conversa" + } + } + } +} \ No newline at end of file diff --git a/5.Intent Agent/.env.example b/5.Intent Agent/.env.example new file mode 100644 index 0000000..b4360df --- /dev/null +++ b/5.Intent Agent/.env.example @@ -0,0 +1,3 @@ +OPENAI_API_KEY="sk-..." +PINECONE_API_KEY= +COHERE_API_KEY= \ No newline at end of file diff --git a/5.Intent Agent/README.md b/5.Intent Agent/README.md new file mode 100644 index 0000000..483867f --- /dev/null +++ b/5.Intent Agent/README.md @@ -0,0 +1,156 @@ +# Adding reranker, query transformations and response synthesis. + +This repository leverages the synergy between Cohere reranker and a hybrid retriever to merge the strengths of keyword and vector-based searches with sophisticated semantic reranking. This innovative approach guarantees not only the retrieval of a wide array of pertinent documents but also organizes them in a manner that aligns seamlessly with the user's intentions. + +To enhance query processing, we implement two additional methods: + +1. **Multi-Step Transformations**: This method deconstructs intricate queries into simpler, more manageable subquestions, each of which is then executed against the database. The responses obtained from these subquestions guide the construction and execution of follow-up queries, ensuring a comprehensive and detailed exploration of the user's original inquiry. + +2. **Refine**: This approach methodically processes each piece of retrieved text, making individual calls to the Large Language Model (LLM) for each text chunk. This sequential refinement enables a progressive enhancement of the answer, ensuring that each chunk contributes to a more complete and accurate response. + +By incorporating these methods, the repository not only improves the precision and relevance of search results but also ensures a deeper, more nuanced understanding and response to complex queries, enhancing overall search performance and user experience. + +![](https://github.com/felipearosr/GPT-Documents/blob/main/1.Streaming%20-%20Memory%20-%20Sources/images/RAG.gif) + +## Table of Contents + +1. [Installation Instructions](#installation-instructions) +2. [Usage](#usage) +3. [Reranker](#reranker) +4. [Query Transformations](#query-transformations) +5. [Response Synthesis](#response-synthesis) + + +## Installation Instructions + +Follow these steps to set up the GPT Documents chatbot on your local machine: + +1. Create a conda environment: + + ```shell + conda create -n rag python==3.11 -y && source activate rag + ``` + +2. Install the required dependencies: + + ```shell + pip install -r requirements.txt + ``` + +3. Load your documents into the vector store by: + - Create a folder named 'data'. + - Place your documents inside the 'data' folder. + - Execute the 'ingest.py' script to initiate the loading process. + +## Usage + +Once the setup is complete, launch the chainlit app using the following command: + +```shell +chainlit run -w main.py +``` + +Feel free to explore the functionalities and contribute to the development of this project. Your feedback and contributions are highly appreciated! + +## Reranker + +### What is a reranker and why do we use it? + +The Cohere reranker is a tool that enhances search quality by semantically reranking documents to align more closely with user queries, without needing major changes to existing systems. It's easy to implement and can be customized for specific needs. When combined with a hybrid retriever, which merges keyword and vector search benefits, the Cohere reranker ensures documents are not just relevant but also correctly prioritized according to the query's semantic intent, thus boosting search accuracy and user satisfaction. + +### How do we implement it? + +```python +from llama_index.postprocessor.cohere_rerank import CohereRerank + +# make sure you add your cohere key to your .env file +cohere_api_key = os.environ.get("COHERE_API_KEY") + +@cl.on_chat_start +async def start(): + # ... + reranker = CohereRerank(api_key=cohere_api_key, top_n=3) + + query_engine = index.as_query_engine( + streaming=True, + similarity_top_k=6, + node_postprocessors=[reranker], # add this line + vector_store_query_mode="hybrid", + query_transform=step_decompose_transform, + response_synthesizer_mode=ResponseMode.REFINE, + ) + # ... +``` + +## Query Transformations + +### What are query transformations? + +LlamaIndex facilitates query transformations, allowing the conversion of a query into a different form for improved processing. These transformations can be single-step, where the transformation occurs once before execution, or multi-step, involving sequential transformation and execution phases with responses influencing subsequent queries. + +Use Cases: + +- **HyDE**: This technique generates a hypothetical answer document from a natural language query for more effective embedding lookup. +- **Multi-Step Transformations**: Involves breaking down a complex query into smaller, manageable subquestions, executing each against the index, and using the responses to inform follow-up questions. + +In this case we implement the multi-step transformation, feel free to play around with other techniques. + +### How do we implement it? + +```python +from llama_index.core.indices.query.query_transform.base import StepDecomposeQueryTransform + +@cl.on_chat_start +async def start(): + step_decompose_transform = StepDecomposeQueryTransform(llm=MODEL, verbose=True) + + query_engine = index.as_query_engine( + streaming=True, + similarity_top_k=6, + node_postprocessors=[reranker], + vector_store_query_mode="hybrid", + query_transform=step_decompose_transform, # add this line + response_synthesizer_mode=ResponseMode.REFINE, + ) +``` + +## Response Synthesis + +### What are the different response modes? + +The system supports various response modes for processing and refining answers from retrieved text chunks: + +1. **Refine**: Processes each retrieved text chunk sequentially, making separate LLM calls for each, refining the answer progressively with each chunk. + +2. **Compact (default)**: Similar to refine, but compacts all chunks before processing, reducing the number of LLM calls needed by concatenating chunks to fit within context windows. + +3. **Tree Summarize**: Uses a summary template for all chunks and recursively condenses responses into a single final answer, ideal for summarization with multiple rounds of LLM queries. + +4. **Simple Summarize**: Truncates text chunks to fit a single LLM prompt for a quick summary, potentially losing details due to truncation. + +5. **No Text**: Fetches nodes without sending them to the LLM, allowing for manual inspection of retrieved chunks. + +6. **Accumulate**: Applies the query to each text chunk separately, accumulating responses into an array, useful for separate detailed queries. + +7. **Compact Accumulate**: A combination of compact and accumulate, compacting prompts before applying the same query to each, for efficiency with detail. + +Each mode is designed for different levels of detail and summarization needs. + +For more information visit this [link](https://docs.llamaindex.ai/en/stable/module_guides/deploying/query_engine/response_modes.html). + +### How do we implement it? + +```python +from llama_index.core.response_synthesizers import ResponseMode + +@cl.on_chat_start +async def start(): + query_engine = index.as_query_engine( + streaming=True, + similarity_top_k=6, + node_postprocessors=[reranker], + vector_store_query_mode="hybrid", + query_transform=step_decompose_transform, + response_synthesizer_mode=ResponseMode.REFINE, # add this line + ) +``` diff --git a/5.Intent Agent/chainlit.md b/5.Intent Agent/chainlit.md new file mode 100644 index 0000000..4507ac4 --- /dev/null +++ b/5.Intent Agent/chainlit.md @@ -0,0 +1,14 @@ +# Welcome to Chainlit! 🚀🤖 + +Hi there, Developer! 👋 We're excited to have you on board. Chainlit is a powerful tool designed to help you prototype, debug and share applications built on top of LLMs. + +## Useful Links 🔗 + +- **Documentation:** Get started with our comprehensive [Chainlit Documentation](https://docs.chainlit.io) 📚 +- **Discord Community:** Join our friendly [Chainlit Discord](https://discord.gg/k73SQ3FyUh) to ask questions, share your projects, and connect with other developers! 💬 + +We can't wait to see what you create with Chainlit! Happy coding! 💻😊 + +## Welcome screen + +To modify the welcome screen, edit the `chainlit.md` file at the root of your project. If you do not want a welcome screen, just leave this file empty. diff --git a/5.Intent Agent/images/RAGSources.png b/5.Intent Agent/images/RAGSources.png new file mode 100644 index 0000000000000000000000000000000000000000..2f04d8f2da7fbae4ca852353e7317350e17616f2 GIT binary patch literal 153773 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

IwPKPc|Ix^_n=an-vr~KgX$$Wmv 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 z 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 IizDCvFY=3i8~^|S literal 0 HcmV?d00001 diff --git a/5.Intent Agent/ingest.py b/5.Intent Agent/ingest.py new file mode 100644 index 0000000..93380f9 --- /dev/null +++ b/5.Intent Agent/ingest.py @@ -0,0 +1,120 @@ +import os +import openai +import asyncio +import argparse + +from dotenv import load_dotenv +from pinecone import Pinecone, PodSpec + +from llama_index.core import SimpleDirectoryReader, download_loader +from llama_index.llms.openai import OpenAI +from llama_index.embeddings.openai import OpenAIEmbedding +from llama_index.core.ingestion import IngestionPipeline +from llama_index.vector_stores.pinecone import PineconeVectorStore +from llama_index.core.extractors import ( + TitleExtractor, + #QuestionsAnsweredExtractor, + #SummaryExtractor, + #KeywordExtractor, +) +from llama_index.core.node_parser import SentenceSplitter +from llama_parse import LlamaParse + +load_dotenv() +openai.api_key = os.environ.get("OPENAI_API_KEY") +pinecone_api_key = os.environ.get("PINECONE_API_KEY") +llama_parse_api_key = os.environ.get("LLAMA_PARSE_API_KEY") + +MODEL = os.getenv("MODEL", "gpt-4-0125-preview") +EMBEDDING = os.getenv("EMBEDDING", "text-embedding-3-large") + + +def get_pinecone_index(pc, index_name): + pinecone_index = pc.Index(index_name) + return pinecone_index + + +def get_pinecone_vector_store(pinecone_index): + vector_store = PineconeVectorStore( + pinecone_index=pinecone_index, + add_sparse_vector=True, + ) + return vector_store + + +def create_pinecone_pod(pc, index_name): + print("Creating pinecone pod") + pc.create_index( + name=index_name, + dimension=3072, + metric="dotproduct", + spec=PodSpec(environment="gcp-starter"), + ) + + +def get_documents(input_dir): + llama_parser = LlamaParse(api_key=llama_parse_api_key, result_type="markdown", verbose=True) + + UnstructuredReader = download_loader("UnstructuredReader") + + file_extractor = { + ".pdf": llama_parser, + ".html": UnstructuredReader(), + ".txt": UnstructuredReader(), + } + print("Reading directory") + director_reader = SimpleDirectoryReader( + input_dir=input_dir, file_extractor=file_extractor + ) + print("Starting document reading") + documents = director_reader.load_data(show_progress=True) + return documents + + +def run_pipeline(documents, vector_store, llm, num_workers): + pipeline = IngestionPipeline( + transformations=[ + SentenceSplitter(chunk_size=512, chunk_overlap=126), + + TitleExtractor(llm=llm, num_workers=num_workers), + #QuestionsAnsweredExtractor(questions=3, llm=llm, num_workers=num_workers), + #SummaryExtractor( + # summaries=["prev", "self"], llm=llm, num_workers=num_workers + #), + #KeywordExtractor(keywords=5, llm=llm, num_workers=num_workers), + OpenAIEmbedding(model=EMBEDDING), + ], + vector_store=vector_store, + ) + for doc in documents: # Small patch to remove last_accessed_date from metadata + k=vars(doc) + del k['metadata']['last_accessed_date'] + pipeline.run(documents=documents, show_progress=True, num_workers=num_workers) + + +async def main(): + print("Starting ingestion") + input_dir = "./data/source_files/" + index_name = "rag-index" + num_cores = os.cpu_count() + num_workers = min(4, num_cores) + pc = Pinecone(api_key=pinecone_api_key) + parser = argparse.ArgumentParser(description="Process some integers.") + parser.add_argument( + "--gen", + action="store_true", + help="Generate new pinecone index", + ) + args = parser.parse_args() + if args.gen: + create_pinecone_pod(pc, index_name) + llm = OpenAI(temperature=0.1, model=MODEL, max_tokens=1024) + pinecone_index = get_pinecone_index(pc, index_name) + vector_store = get_pinecone_vector_store(pinecone_index) + documents = get_documents(input_dir) + print("Starting ingestion pipeline") + run_pipeline(documents, vector_store, llm, num_workers) + + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/5.Intent Agent/main.py b/5.Intent Agent/main.py new file mode 100644 index 0000000..2285296 --- /dev/null +++ b/5.Intent Agent/main.py @@ -0,0 +1,190 @@ +import os +import openai +import chainlit as cl + +from pinecone import Pinecone +from llama_index.core import Settings, VectorStoreIndex +from llama_index.llms.openai import OpenAI +from llama_index.embeddings.openai import OpenAIEmbedding +from llama_index.vector_stores.pinecone import PineconeVectorStore +from llama_index.core.response_synthesizers import ResponseMode +from llama_index.postprocessor.cohere_rerank import CohereRerank +from llama_index.core.indices.query.query_transform.base import ( + StepDecomposeQueryTransform, +) +from llama_index.core.tools import QueryEngineTool +from llama_index.core.selectors import LLMSingleSelector +from llama_index.core.query_engine import CustomQueryEngine, RouterQueryEngine +from llama_index.core.base.response.schema import StreamingResponse + +openai.api_key = os.environ.get("OPENAI_API_KEY") +cohere_api_key = os.environ.get("COHERE_API_KEY") +pinecone_api_key = os.environ.get("PINECONE_API_KEY") + +MODEL = os.getenv("MODEL", "gpt-4-0125-preview") +EMBEDDING = os.getenv("EMBEDDING", "text-embedding-3-large") + +direct_llm_prompt = ( + "Given the user query, respond as best as possible following this guidelines:\n" + "- If the intent of the user is to get information about the abilities of the AI, respond with: " + "The AI is a language model that can answer questions, generate text, summarize documents, and more. \n" + "- If the intent of the user is harmful. Respond with: I cannot help with that. \n" + "- If the intent of the user is to get information outside of the context given, respond with: " + "I cannot help with that. Please ask something that is relevant with the documents in the context givem. \n" + "Query: {query}" +) + + +class LlmQueryEngine(CustomQueryEngine): + """Custom query engine for direct calls to the LLM model.""" + + llm: OpenAI + prompt: str + + def custom_query(self, query_str: str): + llm_prompt = self.prompt.format(query=query_str) + llm_response = self.llm.complete(llm_prompt, formatted=False) + + def response_gen(llm_response): + for response_tuple in llm_response: + if response_tuple[0] == "text": + text_response = response_tuple[1].replace("AI: ", "").strip() + yield text_response + continue + + return StreamingResponse(response_gen=response_gen(llm_response)) + + +@cl.cache +def load_context(): + Settings.llm = OpenAI(temperature=0.1, model=MODEL, streaming=True) + Settings.embed_model = OpenAIEmbedding(model=EMBEDDING, embed_batch_size=1) + Settings.num_output = 1024 + Settings.context_window = 128000 + pc = Pinecone(api_key=pinecone_api_key) + pinecone_index = pc.Index("rag-index") + vector_store = PineconeVectorStore( + pinecone_index=pinecone_index, + ) + + index = VectorStoreIndex.from_vector_store( + vector_store=vector_store, + ) + return index + + +@cl.step +async def router_query_engine(): + vector_query_engine = cl.user_session.get("vector_query_engine") + llm_query_engine = cl.user_session.get("simple_query_engine") + + list_tool = QueryEngineTool.from_defaults( + query_engine=llm_query_engine, + name="LLM Query Engine", + description=( + "Useful for when the INTENT of the user isnt clear, is broad, " + "or when the user is asking general questions that have nothing " + "to do with SURA insurance. Use this tool when the other tool is not useful." + ), + ) + + vector_tool = QueryEngineTool.from_defaults( + query_engine=vector_query_engine, + name="Vector Query Engine", + description=( + "Useful for retrieving specific context about SURA insurance or anything related to life insurance, home insurance, car or vehicle insurance and work insurance, or anything related to the field of insurance." + ), + ) + query_engine = RouterQueryEngine( + selector=LLMSingleSelector.from_defaults(), + query_engine_tools=[ + list_tool, + vector_tool, + ], + ) + print(MODEL) + print("Router query engine created.") + print(query_engine) + return query_engine + + +@cl.on_chat_start +async def start(): + index = load_context() + + reranker = CohereRerank(api_key=cohere_api_key, top_n=3) + step_decompose_transform = StepDecomposeQueryTransform(llm=MODEL, verbose=True) + + vector_query_engine = index.as_query_engine( + streaming=True, + similarity_top_k=6, + node_postprocessors=[reranker], + vector_store_query_mode="hybrid", + query_transform=step_decompose_transform, + response_synthesizer_mode=ResponseMode.REFINE, + ) + + simple_query_engine = LlmQueryEngine( + llm=OpenAI(model="gpt-3.5-turbo"), prompt=direct_llm_prompt + ) + + cl.user_session.set("simple_query_engine", simple_query_engine) + cl.user_session.set("vector_query_engine", vector_query_engine) + + message_history = [] + cl.user_session.set("message_history", message_history) + + await cl.Message( + author="Assistant", content="Hello! Im an AI assistant. How may I help you?" + ).send() + + +async def set_sources(response, response_message): + label_list = [] + count = 1 + for sr in response.source_nodes: + elements = [ + cl.Text( + name="S" + str(count), + content=f"{sr.node.text}", + display="side", + size="small", + ) + ] + response_message.elements = elements + label_list.append("S" + str(count)) + await response_message.update() + count += 1 + response_message.content += "\n\nSources: " + ", ".join(label_list) + await response_message.update() + + +@cl.on_message +async def main(message: cl.Message): + query_engine = await router_query_engine() + message_history = cl.user_session.get("message_history") + prompt_template = "Previous messages:\n" + + response_message = cl.Message(content="", author="Assistant") + + user_message = message.content + + for message in message_history: + prompt_template += f"{message['author']}: {message['content']}\n" + prompt_template += f"Human: {user_message}" + + response = await cl.make_async(query_engine.query)(prompt_template) + + for token in response.response_gen: + await response_message.stream_token(token) + if response.response_txt: + response_message.content = response.response_txt + await response_message.send() + + message_history.append({"author": "Human", "content": user_message}) + message_history.append({"author": "AI", "content": response_message.content}) + message_history = message_history[-6:] + cl.user_session.set("message_history", message_history) + + if response.source_nodes: + await set_sources(response, response_message) diff --git a/5.Intent Agent/requirements.txt b/5.Intent Agent/requirements.txt new file mode 100644 index 0000000..6c16a44 --- /dev/null +++ b/5.Intent Agent/requirements.txt @@ -0,0 +1,13 @@ +openai +cohere +chainlit +llama-index +pinecone-client + +llama-index-vector-stores-pinecone +torch +pypdf +llmsherpa +llama-hub +transformers +llama-index-postprocessor-cohere-rerank \ No newline at end of file From 2b0dc5a61a72b226ace6a8f93f7693248686e3a9 Mon Sep 17 00:00:00 2001 From: Felipe Aros Date: Mon, 11 Mar 2024 19:04:13 -0300 Subject: [PATCH 2/3] Update main.py --- 5.Intent Agent/main.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/5.Intent Agent/main.py b/5.Intent Agent/main.py index 2285296..0a7dd30 100644 --- a/5.Intent Agent/main.py +++ b/5.Intent Agent/main.py @@ -92,7 +92,10 @@ async def router_query_engine(): query_engine=vector_query_engine, name="Vector Query Engine", description=( - "Useful for retrieving specific context about SURA insurance or anything related to life insurance, home insurance, car or vehicle insurance and work insurance, or anything related to the field of insurance." + "Useful for retrieving specific context about Paul Graham or anything related " + "to startup incubation, essay writing, programming languages, venture funding, " + "Y Combinator, Lisp programming, or anything related to the field of technology " + "entrepreneurship and innovation." ), ) query_engine = RouterQueryEngine( @@ -102,7 +105,6 @@ async def router_query_engine(): vector_tool, ], ) - print(MODEL) print("Router query engine created.") print(query_engine) return query_engine From dbfc6369d59e562be4071ecdad1e7c59cc94161e Mon Sep 17 00:00:00 2001 From: Felipe Aros Date: Mon, 11 Mar 2024 19:15:59 -0300 Subject: [PATCH 3/3] Update README.md --- 5.Intent Agent/README.md | 157 +-------------------------------------- 1 file changed, 1 insertion(+), 156 deletions(-) diff --git a/5.Intent Agent/README.md b/5.Intent Agent/README.md index 483867f..55614b0 100644 --- a/5.Intent Agent/README.md +++ b/5.Intent Agent/README.md @@ -1,156 +1 @@ -# Adding reranker, query transformations and response synthesis. - -This repository leverages the synergy between Cohere reranker and a hybrid retriever to merge the strengths of keyword and vector-based searches with sophisticated semantic reranking. This innovative approach guarantees not only the retrieval of a wide array of pertinent documents but also organizes them in a manner that aligns seamlessly with the user's intentions. - -To enhance query processing, we implement two additional methods: - -1. **Multi-Step Transformations**: This method deconstructs intricate queries into simpler, more manageable subquestions, each of which is then executed against the database. The responses obtained from these subquestions guide the construction and execution of follow-up queries, ensuring a comprehensive and detailed exploration of the user's original inquiry. - -2. **Refine**: This approach methodically processes each piece of retrieved text, making individual calls to the Large Language Model (LLM) for each text chunk. This sequential refinement enables a progressive enhancement of the answer, ensuring that each chunk contributes to a more complete and accurate response. - -By incorporating these methods, the repository not only improves the precision and relevance of search results but also ensures a deeper, more nuanced understanding and response to complex queries, enhancing overall search performance and user experience. - -![](https://github.com/felipearosr/GPT-Documents/blob/main/1.Streaming%20-%20Memory%20-%20Sources/images/RAG.gif) - -## Table of Contents - -1. [Installation Instructions](#installation-instructions) -2. [Usage](#usage) -3. [Reranker](#reranker) -4. [Query Transformations](#query-transformations) -5. [Response Synthesis](#response-synthesis) - - -## Installation Instructions - -Follow these steps to set up the GPT Documents chatbot on your local machine: - -1. Create a conda environment: - - ```shell - conda create -n rag python==3.11 -y && source activate rag - ``` - -2. Install the required dependencies: - - ```shell - pip install -r requirements.txt - ``` - -3. Load your documents into the vector store by: - - Create a folder named 'data'. - - Place your documents inside the 'data' folder. - - Execute the 'ingest.py' script to initiate the loading process. - -## Usage - -Once the setup is complete, launch the chainlit app using the following command: - -```shell -chainlit run -w main.py -``` - -Feel free to explore the functionalities and contribute to the development of this project. Your feedback and contributions are highly appreciated! - -## Reranker - -### What is a reranker and why do we use it? - -The Cohere reranker is a tool that enhances search quality by semantically reranking documents to align more closely with user queries, without needing major changes to existing systems. It's easy to implement and can be customized for specific needs. When combined with a hybrid retriever, which merges keyword and vector search benefits, the Cohere reranker ensures documents are not just relevant but also correctly prioritized according to the query's semantic intent, thus boosting search accuracy and user satisfaction. - -### How do we implement it? - -```python -from llama_index.postprocessor.cohere_rerank import CohereRerank - -# make sure you add your cohere key to your .env file -cohere_api_key = os.environ.get("COHERE_API_KEY") - -@cl.on_chat_start -async def start(): - # ... - reranker = CohereRerank(api_key=cohere_api_key, top_n=3) - - query_engine = index.as_query_engine( - streaming=True, - similarity_top_k=6, - node_postprocessors=[reranker], # add this line - vector_store_query_mode="hybrid", - query_transform=step_decompose_transform, - response_synthesizer_mode=ResponseMode.REFINE, - ) - # ... -``` - -## Query Transformations - -### What are query transformations? - -LlamaIndex facilitates query transformations, allowing the conversion of a query into a different form for improved processing. These transformations can be single-step, where the transformation occurs once before execution, or multi-step, involving sequential transformation and execution phases with responses influencing subsequent queries. - -Use Cases: - -- **HyDE**: This technique generates a hypothetical answer document from a natural language query for more effective embedding lookup. -- **Multi-Step Transformations**: Involves breaking down a complex query into smaller, manageable subquestions, executing each against the index, and using the responses to inform follow-up questions. - -In this case we implement the multi-step transformation, feel free to play around with other techniques. - -### How do we implement it? - -```python -from llama_index.core.indices.query.query_transform.base import StepDecomposeQueryTransform - -@cl.on_chat_start -async def start(): - step_decompose_transform = StepDecomposeQueryTransform(llm=MODEL, verbose=True) - - query_engine = index.as_query_engine( - streaming=True, - similarity_top_k=6, - node_postprocessors=[reranker], - vector_store_query_mode="hybrid", - query_transform=step_decompose_transform, # add this line - response_synthesizer_mode=ResponseMode.REFINE, - ) -``` - -## Response Synthesis - -### What are the different response modes? - -The system supports various response modes for processing and refining answers from retrieved text chunks: - -1. **Refine**: Processes each retrieved text chunk sequentially, making separate LLM calls for each, refining the answer progressively with each chunk. - -2. **Compact (default)**: Similar to refine, but compacts all chunks before processing, reducing the number of LLM calls needed by concatenating chunks to fit within context windows. - -3. **Tree Summarize**: Uses a summary template for all chunks and recursively condenses responses into a single final answer, ideal for summarization with multiple rounds of LLM queries. - -4. **Simple Summarize**: Truncates text chunks to fit a single LLM prompt for a quick summary, potentially losing details due to truncation. - -5. **No Text**: Fetches nodes without sending them to the LLM, allowing for manual inspection of retrieved chunks. - -6. **Accumulate**: Applies the query to each text chunk separately, accumulating responses into an array, useful for separate detailed queries. - -7. **Compact Accumulate**: A combination of compact and accumulate, compacting prompts before applying the same query to each, for efficiency with detail. - -Each mode is designed for different levels of detail and summarization needs. - -For more information visit this [link](https://docs.llamaindex.ai/en/stable/module_guides/deploying/query_engine/response_modes.html). - -### How do we implement it? - -```python -from llama_index.core.response_synthesizers import ResponseMode - -@cl.on_chat_start -async def start(): - query_engine = index.as_query_engine( - streaming=True, - similarity_top_k=6, - node_postprocessors=[reranker], - vector_store_query_mode="hybrid", - query_transform=step_decompose_transform, - response_synthesizer_mode=ResponseMode.REFINE, # add this line - ) -``` +Soon... untested. \ No newline at end of file