From 9cc85a4b998238bb8aaf52bc4eba61aa333319b2 Mon Sep 17 00:00:00 2001 From: fciannella Date: Tue, 7 Jan 2025 14:50:25 -0800 Subject: [PATCH 1/5] multimodal retrieval by fciannella --- .../multimodal_retrieval/.dockerignore | 1 + RAG/examples/multimodal_retrieval/README.md | 140 ++++ RAG/examples/multimodal_retrieval/__init__.py | 0 RAG/examples/multimodal_retrieval/agent.py | 348 ++++++++++ .../assets/image_example.png | Bin 0 -> 207710 bytes .../assets/table_example.png | Bin 0 -> 459344 bytes .../multimodal_retrieval/docker-compose.yml | 58 ++ .../multimodal_retrieval/gradio/Dockerfile | 13 + .../multimodal_retrieval/gradio/__init__.py | 0 .../gradio/gradio_interface.py | 634 ++++++++++++++++++ .../gradio/requirements.txt | 3 + .../multimodal_retrieval/ingest/Dockerfile | 22 + .../ingest/requirements.txt | 19 + .../multimodal_retrieval/langgraph.json | 7 + .../nv-mm-retrieval-app/.gitignore | 1 + .../nv-mm-retrieval-app/Dockerfile | 21 + .../nv-mm-retrieval-app/README.md | 79 +++ .../nv-mm-retrieval-app/app/__init__.py | 0 .../nv-mm-retrieval-app/app/server.py | 24 + .../nv-mm-retrieval-app/packages/README.md | 0 .../packages/nv-mm-document-qa/.gitignore | 1 + .../packages/nv-mm-document-qa/LICENSE | 21 + .../packages/nv-mm-document-qa/README.md | 66 ++ .../nv_mm_document_qa/__init__.py | 3 + .../nv_mm_document_qa/chain.py | 86 +++ .../chain_full_collection.py | 65 ++ .../nv_mm_document_qa/chain_sdg_qa.py | 81 +++ .../model_full_collection.py | 21 + .../nv_mm_document_qa/model_images.py | 36 + .../nv_mm_document_qa/model_metadata.py | 35 + .../nv_mm_document_qa/model_sdg_qa.py | 17 + .../nv_mm_document_qa/mongodb_utils.py | 127 ++++ .../packages/nv-mm-document-qa/pyproject.toml | 24 + .../nv-mm-document-qa/tests/__init__.py | 0 .../packages/nv-mm-images/.gitignore | 1 + .../packages/nv-mm-images/LICENSE | 21 + .../packages/nv-mm-images/README.md | 66 ++ .../nv-mm-images/nv_mm_images/__init__.py | 3 + .../nv-mm-images/nv_mm_images/chain.py | 17 + .../nv-mm-images/nv_mm_images/main.py | 84 +++ .../packages/nv-mm-images/pyproject.toml | 24 + .../packages/nv-mm-images/tests/__init__.py | 0 .../packages/nv-mm-ingest-docs/.gitignore | 1 + .../packages/nv-mm-ingest-docs/LICENSE | 21 + .../packages/nv-mm-ingest-docs/README.md | 66 ++ .../nv_mm_ingest_docs/__init__.py | 3 + .../nv_mm_ingest_docs/chain.py | 24 + .../nv_mm_ingest_docs/parse_image.py | 98 +++ .../nv_mm_ingest_docs/url_import.py | 254 +++++++ .../packages/nv-mm-ingest-docs/pyproject.toml | 24 + .../nv-mm-ingest-docs/tests/__init__.py | 0 .../nv-mm-retrieval-app/pyproject.toml | 23 + .../multimodal_retrieval/requirements.txt | 11 + 53 files changed, 2694 insertions(+) create mode 100644 RAG/examples/multimodal_retrieval/.dockerignore create mode 100644 RAG/examples/multimodal_retrieval/README.md create mode 100644 RAG/examples/multimodal_retrieval/__init__.py create mode 100644 RAG/examples/multimodal_retrieval/agent.py create mode 100644 RAG/examples/multimodal_retrieval/assets/image_example.png create mode 100644 RAG/examples/multimodal_retrieval/assets/table_example.png create mode 100644 RAG/examples/multimodal_retrieval/docker-compose.yml create mode 100644 RAG/examples/multimodal_retrieval/gradio/Dockerfile create mode 100644 RAG/examples/multimodal_retrieval/gradio/__init__.py create mode 100644 RAG/examples/multimodal_retrieval/gradio/gradio_interface.py create mode 100644 RAG/examples/multimodal_retrieval/gradio/requirements.txt create mode 100644 RAG/examples/multimodal_retrieval/ingest/Dockerfile create mode 100644 RAG/examples/multimodal_retrieval/ingest/requirements.txt create mode 100644 RAG/examples/multimodal_retrieval/langgraph.json create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/.gitignore create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/Dockerfile create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/README.md create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/app/__init__.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/app/server.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/README.md create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/.gitignore create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/LICENSE create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/README.md create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/__init__.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_full_collection.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_images.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_metadata.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_sdg_qa.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/mongodb_utils.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/pyproject.toml create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/tests/__init__.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/.gitignore create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/LICENSE create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/README.md create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/__init__.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/chain.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/main.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/pyproject.toml create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/tests/__init__.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/.gitignore create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/LICENSE create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/README.md create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/__init__.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/url_import.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/pyproject.toml create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/tests/__init__.py create mode 100644 RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/pyproject.toml create mode 100644 RAG/examples/multimodal_retrieval/requirements.txt diff --git a/RAG/examples/multimodal_retrieval/.dockerignore b/RAG/examples/multimodal_retrieval/.dockerignore new file mode 100644 index 00000000..f46237a5 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/.dockerignore @@ -0,0 +1 @@ +mongodbdata/ \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/README.md b/RAG/examples/multimodal_retrieval/README.md new file mode 100644 index 00000000..e02bef29 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/README.md @@ -0,0 +1,140 @@ +# Introduction + +This is a multimodal retrieval using long context. You will be able to ingest HTML documents and ask questions about the document. The tool will allow you to find answers inside the images and the tables. + +Here is an example: + +[!assets/table_example.png](Finding an answer inside a table) + +[!assets/image_example.png](Finding an answer inside a chart) + +The tool uses an openai vision model or an nvidia vision model (llama v3.2 90B) + + +### Setup details + +There are two setups that need to be spun up: + +- Langgraph that runs the agent +- Mongodb and langserve that run the database and some services that can be tested along with the Gradio UI to test + +The idea is that you have a gradio UI that allows you to ingest html documents and then you can query the agent that is provided by langgraph. + + + +# QuickStart + +In this setup we will launch the langgraph agent in dev mode on the host machine and the rest of the setup will be hosted in docker containers, configured through docker compose. +You can also launch langgraph with the containers with `langgraph up`, in that case you don't need an extra .env.lg file (see below) + +## Langgraph setup in the host machine + +Run this command from the root of the repository (the one with the `langgraph.json` and `docker-compose.yml` files) + +Install a venv: + +```shell +python3 -m venv lb-venv +source ./lg-venv/bin/activate +pip install -r requirements.txt +``` + + +## Create the env files + +You need to create two .env files (one for the docker compose and one for the langgraph agent) + +### .env + +Create a .env file in the root directory of this repository (the one with the `langgraph.json` and `docker-compose.yml` files) + +```shell +MONGO_INITDB_ROOT_USERNAME=admin +MONGO_INITDB_ROOT_PASSWORD=secret +MONGO_HOST=mongodb +MONGO_PORT=27017 +OPENAI_API_KEY= +LANGCHAIN_API_KEY= +LANGSMITH_API_KEY= +LANGGRAPH_CLOUD_LICENSE_KEY= +NVIDIA_API_KEY= +IMAGES_HOST=localhost +AGENTS_HOST= +AGENTS_PORT=2024 +``` + +Normally LANGCHAIN_API_KEY and LANGSMITH_API_KEY have the same value. + +AGENTS_HOST is the IP address of the host where you are running docker. It could be the IP address of your PC for instance. + +### .env.lg + +We need this because we want to launch langgraph in dev mode, so to be able to reach mongodb from inside the langgraph agent we need to set its hostname to the localhost. + +It should be located in the root of the repository (the one with the `langgraph.json` and `docker-compose.yml` files) + +```shell +MONGO_INITDB_ROOT_USERNAME=admin +MONGO_INITDB_ROOT_PASSWORD=secret +MONGO_HOST=localhost +MONGO_PORT=27017 +OPENAI_API_KEY= +LANGCHAIN_API_KEY= +LANGSMITH_API_KEY= +LANGGRAPH_CLOUD_LICENSE_KEY= +NVIDIA_API_KEY= +IMAGES_HOST=localhost +AGENTS_HOST=localhost +AGENTS_PORT=2024 +``` + +# Launch the mongodb and gradio services + +Update the `.env` file adding your API Keys. + +Launch the docker compose services + +```shell +docker compose up --build +``` +then you can connect to `http://localhost:7860` to ingest documents + +# Launch langgraph + +```bash +langgraph dev --host 0.0.0.0 +``` + +## Test Langgraph + +```bash +curl --request POST \ + --url http://localhost:2024/runs/stream \ + --header 'Content-Type: application/json' \ + --data '{ + "assistant_id": "agent", + "input": { + "messages": [ + { + "role": "user", + "content": "What is the harness?" + } + ] + }, + "metadata": {}, + "config": { + "configurable": { + "collection_name": "test", + "document_id": "8eb8f7396e4fe72595e6577c35a7a587" + } + }, + "multitask_strategy": "reject", + "stream_mode": [ + "values" + ] +}' + +``` + + + diff --git a/RAG/examples/multimodal_retrieval/__init__.py b/RAG/examples/multimodal_retrieval/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/RAG/examples/multimodal_retrieval/agent.py b/RAG/examples/multimodal_retrieval/agent.py new file mode 100644 index 00000000..50af6be0 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/agent.py @@ -0,0 +1,348 @@ +import os, json +from pathlib import Path +from datetime import datetime +from langchain_core.tools import tool +from typing_extensions import TypedDict +from langchain_core.runnables import Runnable, RunnableConfig +from langgraph.graph import END, StateGraph, START +from langgraph.prebuilt import tools_condition +from langchain_core.messages import ToolMessage +from langchain_core.runnables import RunnableLambda +from langchain_core.messages import HumanMessage, SystemMessage +from langgraph.prebuilt import ToolNode +# from langgraph.checkpoint.sqlite import SqliteSaver +from langchain_core.runnables import ensure_config +from langgraph.prebuilt import InjectedState +from langchain.schema.output_parser import StrOutputParser +import requests, base64 +from typing_extensions import Annotated + + +from typing import Annotated, Optional + +from langgraph.graph.message import AnyMessage, add_messages + +from langchain_openai import ChatOpenAI +from langchain_nvidia_ai_endpoints import ChatNVIDIA +from langchain_core.prompts import ChatPromptTemplate +from nv_mm_document_qa.chain import chain as fciannella_tme_document_qa_chain +from nv_mm_document_qa.mongodb_utils import get_base64_image +from nv_mm_document_qa.chain_full_collection import chain_document_expert + + +# from fciannella_tme_ingest_docs.openai_parse_image import call_openai_api_for_image +nvidia_ngc_api_key = os.environ["NVIDIA_API_KEY"] + +from openai import OpenAI + +client = OpenAI() + +system_template = """ +Please describe this image in detail. +""" + +def call_image_processing_api(backend_llm, image_base64, system_template, question): + + llm_openai = ChatOpenAI( + model="gpt-4o-mini", + temperature=0, + max_tokens=4095, + top_p=1, + frequency_penalty=0, + presence_penalty=0, + ) + + llm_nvidia = ChatNVIDIA( + model="meta/llama-3.2-90b-vision-instruct", + temperature=0, + max_tokens=4095, + top_p=1, + frequency_penalty=0, + presence_penalty=0, + ) + + if backend_llm == "nvidia": + llm = llm_nvidia + elif backend_llm == "openai": + llm = llm_openai + else: + llm = None + + system_message = SystemMessage(content=system_template) + + _question = f"Can you answer this question from the provided image: {question}" + + # print(image_base64) + + human_message = HumanMessage( + content=[ + {"type": "text", "text": _question}, + { + "type": "image_url", + "image_url": {"url": f"data:image/png;base64,{image_base64}"}, + }, + ] + ) + + messages = [system_message, human_message] + + response = llm.invoke( + messages + ) + + return response.content + +@tool +def find_best_document_id( + question: Optional[str] = None, + ) -> dict: + """ + Use this tool when you only have the collection name and the question at your disposal, but not the document_id. This tool will allow you to find the best document_id for the user question inside the specified collection. + Args: + question (Optional[str]): The question that the user is asking + Returns: + str: The document_id that is the best for the answer asked by the user inside the collection. This is an md5 hash prefixed by a string names openai_ or nvidia_, which determine the name of the vision model that's been used. + """ + + config = ensure_config() + + configuration = config.get("configurable", {}) + collection_name = configuration.get("collection_name", None) + best_documents = chain_document_expert.invoke(({"collection_name": collection_name, "question": question})) + document_id = best_documents["documents"][0]["id"] + return {"document_id": document_id, "collection_name": collection_name} + +@tool +def query_document( + question: Optional[str] = None, + document_id: Optional[str] = None, +) -> dict: + """ + Search an answer to the question in the document. The document is a mix of images and text, and the images are just described. When you query the document, and you think that the answer is in an image, then use the query_image tool to dig deeper into the image. + + Args: + question (Optional[str]): The question that the user is asking + document_id: (Optional[str]): The document_id that has been selected or configured by the user in the form of an md5 hash, prefixed by a string names openai_ or nvidia_, which determine the name of the vision model that's been used. + Returns: + str: The response whether there is an answer or not + """ + config = ensure_config() + + configuration = config.get("configurable", {}) + collection_name = configuration.get("collection_name", None) + input_data = {"question": question, "collection_name": collection_name, "document_id": document_id} + image_instance = fciannella_tme_document_qa_chain.invoke(input_data) + + if image_instance.image_hash: + image_hash = image_instance.image_hash + else: + image_hash = None + + if image_instance.image_description: + image_description = image_instance.image_description + else: + image_description = None + answer = image_instance.answer.answer + + return {"image_hash": image_hash, "description": image_description, "answer": answer, "document_id": document_id } + + +@tool +def query_image( + question: Optional[str] = None, + image_id: Optional[str] = None, + document_id: Optional[str] = None, +) -> dict: + """ + Queries an image each time the description of the image hints at the possibility that the answer to the question is in the image. Use this tool when you think that the answer could be in an image. + + Args: + question (Optional[str]): The question that the user is asking + image_id (Optional[str]): The image identifier in form of an md5 hash + vision_model: (Optional[str]): The backend model to use + document_id: (Optional[str]): The document_id that has been selected or configured by the user in the form of am md5 hash prefixed by a string names openai_ or nvidia_, which determine the name of the vision model that's been used. + Returns: + str: The response whether there is an answer or not + """ + config = ensure_config() + + configuration = config.get("configurable", {}) + # collection_name = configuration.get("collection_name", None) + images_collection_name = "images" + vision_model = configuration.get("vision_model", None) + image_base64 = get_base64_image(images_collection_name, image_id) + + system_template = f"""You are a helpful assistant specialized in analyzing images. You are able to find answer to questions into images, may these be charts, diagrams, or any type of image. If you don't know the answer, try to give a possible answer, don't give up!""" + + response = call_image_processing_api(vision_model, image_base64, system_template, question) + return {"answer": response, "document_id": document_id} + + +def handle_tool_error(state) -> dict: + error = state.get("error") + tool_calls = state["messages"][-1].tool_calls + return { + "messages": [ + ToolMessage( + content=f"Error: {repr(error)}\n please fix your mistakes.", + tool_call_id=tc["id"], + ) + for tc in tool_calls + ] + } + + +def create_tool_node_with_fallback(tools: list) -> dict: + return ToolNode(tools).with_fallbacks( + [RunnableLambda(handle_tool_error)], exception_key="error" + ) + + +def _print_event(event: dict, _printed: set, max_length=1500): + current_state = event.get("dialog_state") + if current_state: + # print("State - Placeholder") + print("Currently in: ", current_state[-1]) + message = event.get("messages") + if message: + if isinstance(message, list): + message = message[-1] + if message.id not in _printed: + msg_repr = message.pretty_repr(html=True) + if len(msg_repr) > max_length: + msg_repr = msg_repr[:max_length] + " ... (truncated)" + print(msg_repr) + _printed.add(message.id) + + +class State(TypedDict): + messages: Annotated[list[AnyMessage], add_messages] + document_id: str + collection_name: str + images_host: str + + +class Assistant: + def __init__(self, runnable: Runnable): + self.runnable = runnable + + def __call__(self, state: State, config: RunnableConfig): + max_iterations = 20 + iteration_count = 0 + result = None + doc_id = None + while iteration_count < max_iterations: + configuration = config.get("configurable", {}) + collection_name = configuration.get("collection_name", None) + vision_model = configuration.get("vision_model", None) + images_host = os.environ["IMAGES_HOST"] + if "document_id" in configuration.keys(): + document_id = configuration.get("document_id", None) + state = {**state, "collection_name": collection_name, "document_id": document_id, "images_host": images_host} + doc_id = "" + elif "document_id" in state.keys() and state["document_id"] != None: + doc_id = state["document_id"] + state = {**state, "collection_name": collection_name, "document_id": doc_id, "images_host": images_host} + pass + else: + doc_id = None + state = {**state, "collection_name": collection_name, "document_id": None, "images_host": images_host} + + result = self.runnable.invoke(state) + # If the LLM happens to return an empty response, we will re-prompt it + # for an actual response. + if not result.tool_calls and ( + not result.content + or isinstance(result.content, list) + and not result.content[0].get("text") + ): + messages = state["messages"] + [("user", "Respond with a real output.")] + state = {**state, "messages": messages} + else: + if result.tool_calls: + if result.tool_calls[0]["name"] == "query_document": + doc_id = result.tool_calls[0]["args"]["document_id"] + print(f"This is the doc id after querying the document: {doc_id}") + state = {**state, "document_id": doc_id, "collection_name": collection_name, "images_host": images_host} + break + return {"messages": result, "document_id": doc_id} + + +primary_assistant_prompt = ChatPromptTemplate.from_messages( + [ + ( + "system", + """You are an assistant who is able to find the answer of a complex question inside a document. + The answer to a question could be also in the images present in the document. + At first check into the text of the image (it's a description after a tag in the form of an md5 hash, representing the identifier of the image). If you think that an image could have the actual answer, based on its description, then you must dig deeper into the image using the corresponding query_image tool. + Each time you find a possible answer inside the description of an image, then you need to use the query_image tool to find the actual final answer. + Also each time you are asked to do a comparison, involving a difference between values on a plot, you should always use the query_image tool to find the answer. + When depends on numeric values taken from an image, please also use the query_image tool to verify the correctedness of the answer. + Provide the final output in markdown and if the answer was in an image then use this url format for the image and show it to the user: http://{images_host}:6001/image/{collection_name}/{document_id}/image_id""" + ), + ("placeholder", "{messages}"), + ] +) + + +_tools = [ + query_document, + query_image, + find_best_document_id, +] + +llm = ChatOpenAI(model="gpt-4o") + +part_1_assistant_runnable = primary_assistant_prompt | llm.bind_tools(_tools) + + + +builder = StateGraph(State) + +# Define nodes: these do the work +builder.add_node("assistant", Assistant(part_1_assistant_runnable)) +builder.add_node("tools", create_tool_node_with_fallback(_tools)) +# Define edges: these determine how the control flow moves +builder.add_edge(START, "assistant") +builder.add_conditional_edges( + "assistant", + tools_condition, +) +builder.add_edge("tools", "assistant") + +agent_graph = builder.compile() + + +def main(): + tutorial_questions = [ + # "Explain the significance of the trade-off between latency and accuracy as depicted in the graph of neural network models' performance on ImageNet.", + # "What is the difference in performance between NVIDIA A100 and NVIDIA H100 (v2.1) on RetinaNet benchmark?", + "What is the difference in performance between NVIDIA A100 and NVIDIA H100 (v3.0) on BERT benchmark?" + ] + + # config = { + # "configurable": { + # "collection_name": "blogs", + # "document_id": "openai_7cc79c984147e038cf95de3a543524cf", + # "vision_model": "openai" + # } + # } + + config = { + "configurable": { + "collection_name": "nvidia_eval_blogs_llama32", + "vision_model": "nvidia" + } + } + + _printed = set() + for question in tutorial_questions: + events = agent_graph.stream( + {"messages": ("user", question)}, config, stream_mode="values" + ) + for event in events: + _print_event(event, _printed) + + +if __name__ == "__main__": + main() diff --git a/RAG/examples/multimodal_retrieval/assets/image_example.png b/RAG/examples/multimodal_retrieval/assets/image_example.png new file mode 100644 index 0000000000000000000000000000000000000000..6613088a1dd756c097bcf1b3fbecfc527d672668 GIT binary patch literal 207710 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

apv^d5Ud;&5W>-H=;6l%tiseUucG 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%0Dp4qC6R(_C0Vthk@Kdr3C?jTEdGrp)%7 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

1hU0M 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"bcA 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

Nw-XW)!1md>x^^bNbewvTwdp|t$n4>2pQwro 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

C3q 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 KMi&e%H~v4$EtEX~ literal 0 HcmV?d00001 diff --git a/RAG/examples/multimodal_retrieval/docker-compose.yml b/RAG/examples/multimodal_retrieval/docker-compose.yml new file mode 100644 index 00000000..fbdd1c99 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/docker-compose.yml @@ -0,0 +1,58 @@ +services: + mongodb: + image: mongo:latest # MongoDB image from Docker Hub + container_name: mongodb + ports: + - "27017:27017" # Map MongoDB port 27017 to the host + volumes: + - mongodb-volume-nv-mm:/data/db # Mount a volume for data persistence + environment: + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} # Admin username + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} # Admin password + + ingest-service: + build: + context: . + dockerfile: ./ingest/Dockerfile # Name this Dockerfile.ingest as Dockerfile.ingest.ingest + container_name: ingest_service + ports: + - "6001:8000" # Expose the service on port 8000 + volumes: + - .:/app # Mount current directory to /app in the container + depends_on: + - mongodb # Ensure MongoDB starts before this service + environment: + MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME} + MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD} + OPENAI_API_KEY: ${OPENAI_API_KEY} + NVIDIA_API_KEY: ${NVIDIA_API_KEY} + MONGO_HOST: mongodb + MONGO_PORT: 27017 + IMAGES_HOST: ${IMAGES_HOST} + + + gradio-service: + build: + context: . # Assuming the Gradio-related files are in the current directory + dockerfile: ./gradio/Dockerfile # Name this Dockerfile.ingest as Dockerfile.ingest.gradio + container_name: gradio_service + ports: + - "7860:7860" # Expose Gradio on port 7860 (Gradio default port) + volumes: + - .:/app # Mount current directory to /app in the container + depends_on: + - ingest-service # Ensure the ingest service starts first + environment: + - MONGO_HOST=mongodb + - MONGO_PORT=27017 + - OPENAI_API_KEY=${OPENAI_API_KEY} + - LANGSMITH_API_KEY=${LANGSMITH_API_KEY} + - IMAGES_HOST=${IMAGES_HOST} + - MONGO_INITDB_ROOT_USERNAME=${MONGO_INITDB_ROOT_USERNAME} + - MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD} + - AGENTS_PORT=${AGENTS_PORT} + - AGENTS_HOST=${AGENTS_HOST} + +volumes: + mongodb-volume-nv-mm: + external: true \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/gradio/Dockerfile b/RAG/examples/multimodal_retrieval/gradio/Dockerfile new file mode 100644 index 00000000..870ca988 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/gradio/Dockerfile @@ -0,0 +1,13 @@ +# Dockerfile.gradio +FROM python:3.12 + +WORKDIR /app + +COPY ./gradio/requirements.txt . + +RUN pip install -r requirements.txt + +COPY . . + +# Specify the Gradio script file +ENTRYPOINT python gradio/gradio_interface.py \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/gradio/__init__.py b/RAG/examples/multimodal_retrieval/gradio/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/RAG/examples/multimodal_retrieval/gradio/gradio_interface.py b/RAG/examples/multimodal_retrieval/gradio/gradio_interface.py new file mode 100644 index 00000000..1e6261ec --- /dev/null +++ b/RAG/examples/multimodal_retrieval/gradio/gradio_interface.py @@ -0,0 +1,634 @@ +import gradio as gr +import requests +import json, os +from pymongo import MongoClient +from langgraph_sdk import get_client +from datetime import datetime + +import asyncio # Import asyncio to run the async function + + +# MongoDB connection setup +agents_host = os.environ["AGENTS_HOST"] +images_host = os.environ["IMAGES_HOST"] +mongodb_user = os.environ["MONGO_INITDB_ROOT_USERNAME"] +mongodb_password = os.environ["MONGO_INITDB_ROOT_PASSWORD"] +mongodb_port = os.environ["MONGO_PORT"] +client = MongoClient(f'mongodb://{mongodb_user}:{mongodb_password}@mongodb:{mongodb_port}/') # Adjust as needed +db = client['tme_urls_db'] # Replace with your database name + + +questions_list = [ + "What is the Max-scale time-to-train records set on the NVIDIA platform and H100 Tensor Core GPUs in the case of Recommendation (DLRMv2) benchmark?", + "What is the Max-scale time-to-train records set on the NVIDIA platform and H100 Tensor Core GPUs in the case of Object detection, heavyweight (Mask R-CNN)?", + "What is the difference in performance between NVIDIA A100 and NVIDIA H100 (v2.1) on RetinaNet benchmark?", + "What is the difference in performance between NVIDIA A100 and NVIDIA H100 (v3.0) on BERT benchmark?", + "What are the takeaways of MLPerf Training v3.0 takeaways?", + "What are the two high-level stages of the neural architecture search AI agent?", + "How many neural architecture candidates are screened before performing bayesian optimization?", + "What is the dimension of output channel filters for stage 1 conv layer?", + "What are the hyperparameters of stage 2 Fused-IRB layer?", + "What does NAS search return?", + "What is H100 v3.0 inference speed-up on RetinaNet?", + "What's the performance difference between NVIDIA T4 and NVIDIA L4 on RNN-T benchmark?", + "While performing network division on multiple nodes, what NVIDIA component connects a front-end node and DGX A100?", + "Did Jetson Orin NX show any speedup when compared to Jetson Xavier NX on 3D-Unet benchmark?", + "Where can we observe a speedup with Jetson AGX Orin v3.0 Performance on RetinaNet, offline, single stream or multi-stream?", + "What components does an IBConnection have?", + "What is the difference between closed division on a single node and network division on Multiple nodes?", + "What is the performance of the network division compared to the closed division on BERT (high accuracy) benchmark?", + "How much throughput can InfiniBand HDR sustain?" +] + +answers_list = [ +"1.61min", +"1.47 min", +"~2.25x", +"~3x", +"""The NVIDIA AI platform delivered record-setting performance in MLPerf Training v3.0, highlighting the exceptional capabilities of the NVIDIA H100 GPU and the NVIDIA AI platform for the full breadth of workloads—from training mature networks like ResNet-50 and BERT to training cutting-edge LLMs like GPT-3 175B. The NVIDIA joint submission with CoreWeave using their publicly available NVIDIA HGX H100 infrastructure showcased that the NVIDIA platform and the H100 GPU deliver great performance at very large scale on publicly-available cloud infrastructure. + +The NVIDIA platform delivers the highest performance, and greatest versatility, and is available everywhere. All software used for NVIDIA MLPerf submissions is available from the MLPerf repository, so you can reproduce these results. All NVIDIA AI software used to achieve these results is also available in the enterprise-grade software suite, NVIDIA AI Enterprise.""", + """At a high level, the neural architecture search (NAS) AI agent is split into two stages: + +Categorizing all possible network architectures by the inference latency. +Using a subset of these networks that fit within the latency budget and optimizing them for accuracy.""", +"~20K", +"[24, 32, 8]", +"[#Filters, Kernel, E, SE, Act, #Layers]", + "At the end of the NAS search, the returned ranked candidates is a list of these best-performing encodings, which are in turn the best-performing GPUNets.", + +"54%", +"2.7x", +"NVIDIA Quantum InfiniBand", +"Yes (bonus, by 2x)", +"Offline", +"IBConfigs, IBDevice and IBResources", +"Open this image: https://developer-blogs.nvidia.com/wp-content/uploads/2023/06/closed-network-nodes-1.png", +"90%", +"200 Gbits/sec"] + +gt_urls = [ + "https://developer.nvidia.com/blog/breaking-mlperf-training-records-with-nvidia-h100-gpus/", + "https://developer.nvidia.com/blog/breaking-mlperf-training-records-with-nvidia-h100-gpus/", + "https://developer.nvidia.com/blog/breaking-mlperf-training-records-with-nvidia-h100-gpus/", + "https://developer.nvidia.com/blog/breaking-mlperf-training-records-with-nvidia-h100-gpus/", + "https://developer.nvidia.com/blog/breaking-mlperf-training-records-with-nvidia-h100-gpus/", + "https://developer.nvidia.com/blog/beating-sota-inference-performance-on-nvidia-gpus-with-gpunet/", + "https://developer.nvidia.com/blog/beating-sota-inference-performance-on-nvidia-gpus-with-gpunet/", + "https://developer.nvidia.com/blog/beating-sota-inference-performance-on-nvidia-gpus-with-gpunet/", + "https://developer.nvidia.com/blog/beating-sota-inference-performance-on-nvidia-gpus-with-gpunet/", + "https://developer.nvidia.com/blog/beating-sota-inference-performance-on-nvidia-gpus-with-gpunet/", + "https://developer.nvidia.com/blog/setting-new-records-in-mlperf-inference-v3-0-with-full-stack-optimizations-for-ai/", + "https://developer.nvidia.com/blog/setting-new-records-in-mlperf-inference-v3-0-with-full-stack-optimizations-for-ai/", + "https://developer.nvidia.com/blog/setting-new-records-in-mlperf-inference-v3-0-with-full-stack-optimizations-for-ai/", + "https://developer.nvidia.com/blog/setting-new-records-in-mlperf-inference-v3-0-with-full-stack-optimizations-for-ai/", + "https://developer.nvidia.com/blog/setting-new-records-in-mlperf-inference-v3-0-with-full-stack-optimizations-for-ai/", + "https://developer.nvidia.com/blog/new-mlperf-inference-network-division-showcases-infiniband-and-gpudirect-rdma-capabilities/", + "https://developer.nvidia.com/blog/new-mlperf-inference-network-division-showcases-infiniband-and-gpudirect-rdma-capabilities/", + "https://developer.nvidia.com/blog/new-mlperf-inference-network-division-showcases-infiniband-and-gpudirect-rdma-capabilities/", + "https://developer.nvidia.com/blog/new-mlperf-inference-network-division-showcases-infiniband-and-gpudirect-rdma-capabilities/", +] + +# Function to ingest documents into MongoDB collection +def ingest_docs(urls_list, collection_name, backend_llm): + url = "http://ingest-service:8000/ingest-docs/invoke" # This URL is fine for Docker Compose internal networking + + payload = { + "input": { + "urls_list": urls_list, + "collection_name": collection_name, + "backend_llm": backend_llm + }, + "config": {}, + "kwargs": {} + } + + headers = { + 'accept': 'application/json', + 'Content-Type': 'application/json' + } + + try: + response = requests.post(url, headers=headers, data=json.dumps(payload)) + if response.status_code == 200: + return "Documents successfully ingested into the collection!" + else: + return f"Error: {response.status_code}, {response.text}" + except Exception as e: + return f"An error occurred: {str(e)}" + + +# Function to load available collection names dynamically +def get_collection_names(): + try: + collections = db.list_collection_names() + # Exclude the 'images' collection + filtered_collections = [collection for collection in collections if collection != 'images'] + return filtered_collections + except Exception as e: + return f"An error occurred while fetching collection names: {str(e)}" + + +# Function to load document URLs and document IDs for a selected collection +def get_document_urls_and_ids(collection_name): + try: + collection = db[collection_name] + # Fetch both the document_id (_id), URL, and backend_llm fields from MongoDB + documents = collection.find({}, {"_id": 1, "url": 1, "backend_llm": 1}) # Adjust "url" based on your document structure + # Set the default value for backend_llm to 'openai' if it is not present + return {str(doc["_id"]): doc.get("backend_llm", "openai") + " " + doc["url"] for doc in documents} + except Exception as e: + return {} # Return an empty dictionary in case of error + + +def document_sdg(collection_name, document_id, vision_model): + url = "http://ingest-service:8000/document-sdg/invoke" # Assuming QA service runs on same container + + payload = { + "input": { + "document_id": document_id, + "collection_name": collection_name, + "vision_model": vision_model + }, + "config": {}, + "kwargs": {} + } + + headers = { + 'accept': 'application/json', + 'Content-Type': 'application/json' + } + + try: + response = requests.post(url, headers=headers, data=json.dumps(payload)) + if response.status_code == 200: + return response.json() # Return the JSON response from the service + else: + return f"Error: {response.status_code}, {response.text}" + except Exception as e: + return f"An error occurred: {str(e)}" + + +# Function to query the document QA service +def document_qa(collection_name, document_id, question): + url = "http://ingest-service:8000/document-qa/invoke" # Assuming QA service runs on same container + + payload = { + "input": { + "document_id": document_id, + "collection_name": collection_name, + "question": question + }, + "config": {}, + "kwargs": {} + } + + headers = { + 'accept': 'application/json', + 'Content-Type': 'application/json' + } + + try: + response = requests.post(url, headers=headers, data=json.dumps(payload)) + if response.status_code == 200: + print(response.json()) + return response.json() # Return the JSON response from the service + else: + return f"Error: {response.status_code}, {response.text}" + except Exception as e: + return f"An error occurred: {str(e)}" + + +def get_run(run_id): + """Function to get run statistics from the API.""" + try: + headers = {"x-api-key": os.environ["LANGSMITH_API_KEY"]} + + response = requests.get( + f"https://api.smith.langchain.com/api/v1/runs/{run_id}", + headers=headers + ) + + # Check if the request was successful + if response.status_code == 200: + # Return the content of the response (e.g., JSON) + return response.json() # or response.text for plain text responses + else: + # Return the status code and error text for non-200 responses + return { + "status_code": response.status_code, + "error_message": response.text + } + + except Exception as e: + # Handle exceptions such as connection errors + return {"error": str(e)} + +def extract_token_usage_and_cost(statistics, run_id): + # Initialize a dictionary to store the results + result = { + "total_tokens": None, + "prompt_tokens": None, + "completion_tokens": None, + "total_cost": None, + "prompt_cost": None, + "completion_cost": None, + "latency_seconds": None, + "latency_milliseconds": None, + "run_id": None + } + + # Extract token and cost details + result["total_tokens"] = statistics.get("total_tokens") + result["prompt_tokens"] = statistics.get("prompt_tokens") + result["completion_tokens"] = statistics.get("completion_tokens") + result["total_cost"] = statistics.get("total_cost") + result["prompt_cost"] = statistics.get("prompt_cost") + result["completion_cost"] = statistics.get("completion_cost") + result["run_id"] = run_id + + # Extract latency if both start_time and end_time are available + start_time = statistics.get("start_time") + end_time = statistics.get("end_time") + + if start_time and end_time: + # Convert start_time and end_time to datetime objects + start_time_dt = datetime.fromisoformat(start_time) + end_time_dt = datetime.fromisoformat(end_time) + + # Calculate latency in seconds and milliseconds + latency = end_time_dt - start_time_dt + result["latency_seconds"] = latency.total_seconds() + result["latency_milliseconds"] = latency.total_seconds() * 1000 + + return result + +def format_statistics(statistics): + """Format the statistics into a readable string format with bold text and newlines.""" + return ( + f""" - **Total Tokens**: {statistics['total_tokens']} + - **Prompt Tokens**: {statistics['prompt_tokens']} + - **Completion Tokens**: {statistics['completion_tokens']} + - **Total Cost**: ${statistics['total_cost']} + - **Prompt Cost**: ${statistics['prompt_cost']} + - **Completion Cost**: ${statistics['completion_cost']} + - **Latency (seconds)**: {statistics['latency_seconds']} + - **Latency (milliseconds)**: {statistics['latency_milliseconds']}""" + ) + + + +async def run_stream_service(collection_name, document_id, question, vision_model): + # Get the client from langgraph_sdk + agents_host = os.environ["AGENTS_HOST"] + agents_port = os.environ["AGENTS_PORT"] + client = get_client(url=f"http://{agents_host}:{agents_port}") + thread = await client.threads.create() + + assistant_id = "agent" + + input = { + "messages": [ + { + "role": "user", + "content": question + } + ] + } + + final_answer = None + collected_chunks = [] # To collect all chunks for logging + run_ids = [] + + if document_id: + config = { + "configurable": { + "collection_name": collection_name, + "document_id": document_id, + "vision_model": vision_model # Add vision_model to the config + } + } + else: + config = { + "configurable": { + "collection_name": collection_name, + "vision_model": vision_model # Add vision_model to the config + } + } + + try: + # Stream response chunks and get the final answer + async for chunk in client.runs.stream( + thread_id=thread["thread_id"], + assistant_id=assistant_id, + input=input, + config=config, + stream_mode="values" + ): + collected_chunks.append({ + "event": chunk.event, # The event type + "data": chunk.data, # The actual data + }) + + # Extract the run_id if available + if chunk.event == "metadata": + run_id = chunk.data.get("run_id") + run_ids.append(run_id) + + # Capture the final answer from the last chunk with event "values" + if chunk.event == "values": + final_answer = chunk.data # Keep updating with the latest "values" event + + except Exception as e: + return "An error occurred", f"An error occurred: {str(e)}" + + # Return the final answer and run_id after streaming + final_response = final_answer['messages'][-1]['content'] if final_answer else "No final answer received" + run_id = run_ids[0] if run_ids else None # Use the first run_id, if available + return final_response, run_id + + + +def compute_statistics(run_id): + if run_id: + run_statistics = get_run(run_id) + extracted_info = extract_token_usage_and_cost(run_statistics, run_id) + formatted_statistics = format_statistics(extracted_info) + return formatted_statistics + else: + return "No run_id was received." + + +# def update_answer_dropdown(question_index): +# # Function to fill the answer field based on selected question index +# return answers_list[question_index] + +def update_answer_and_url(question): + question_index = questions_list.index(question) + return answers_list[question_index], gt_urls[question_index] + +# Create the Gradio interface with three tabs +with gr.Blocks() as interface: + with gr.Tab("Ingest Documents"): + gr.Markdown("## Ingest Documents to MongoDB Collection") + + urls_input = gr.Textbox(label="Enter the URLs (comma separated)", + placeholder="https://example.com/doc1, https://example.com/doc2") + collection_input = gr.Textbox(label="Enter the MongoDB Collection Name", placeholder="collection_name") + + # Add the dropdown for selecting between 'openai' and 'nvidia' + model_dropdown = gr.Dropdown(label="Select Model", choices=["openai", "nvidia"], value="openai") + + submit_button = gr.Button("Ingest Documents") + output_text = gr.Textbox(label="Response") + + # Modify the click function to also capture the selected model from the dropdown + submit_button.click(fn=lambda urls, coll, model: ingest_docs(urls.split(','), coll, model), + inputs=[urls_input, collection_input, model_dropdown], outputs=output_text) + + + with gr.Tab("Agent Stream Service"): + gr.Markdown("## Call the New Agent Stream Service") + + collection_dropdown_stream = gr.Dropdown(label="Select Collection", choices=[], interactive=True) + document_dropdown_stream = gr.Dropdown(label="Select Document URL", choices=[]) + question_input_stream = gr.Textbox(label="Enter your question", placeholder="Type your question here...") + + + # Add a dropdown for vision model selection + + vision_model_dropdown = gr.Dropdown( + label="Select Vision Model", + choices=["openai", "nvidia"], + value="openai", # Optionally set a default value to ensure something is selected + interactive=True + ) + + + stream_button = gr.Button("Run Stream Service") + stream_output_answer = gr.Markdown(label="Final Answer") # Separate markdown box for the answer + # gr.Markdown("---") + # stream_output_stats = gr.Markdown(label="Statistics") # Separate markdown box for statistics + + + def update_collection_dropdown_stream(): + return gr.update(choices=get_collection_names()) + + + def update_document_dropdown_stream(collection_name): + documents = get_document_urls_and_ids(collection_name) + return gr.update(choices=[(url, doc_id) for doc_id, url in documents.items()], value=None) + + + collection_dropdown_stream.change(fn=update_document_dropdown_stream, inputs=collection_dropdown_stream, + outputs=document_dropdown_stream) + + + # Click function for the streaming service with chained statistic computation + async def run_and_compute_statistics(collection_name, document_id, question, vision_model): + final_answer, run_id = await run_stream_service(collection_name, document_id, question, vision_model) + + # Introduce a delay of 3 seconds (adjust as needed) + await asyncio.sleep(3) # Delay execution by 3 seconds + + # Now compute the statistics after the delay + statistics = compute_statistics(run_id) + + # return final_answer, statistics + return final_answer + + + # Trigger both the streaming service and stats calculation when the button is clicked + stream_button.click( + fn=run_and_compute_statistics, + inputs=[collection_dropdown_stream, document_dropdown_stream, question_input_stream, vision_model_dropdown], + # Added vision_model_dropdown + outputs=[stream_output_answer] # Display final answer and stats separately + ) + + interface.load(fn=update_collection_dropdown_stream, outputs=collection_dropdown_stream) + + with gr.Tab("Agent Multi Documents QA"): + gr.Markdown("## Call the New Agent Stream Service for multidocuments") + + collection_dropdown_stream = gr.Dropdown(label="Select Collection", choices=[], interactive=True) + question_input_stream = gr.Textbox(label="Enter your question", placeholder="Type your question here...") + + # Add a dropdown for vision model selection + vision_model_dropdown = gr.Dropdown( + label="Select Vision Model", + choices=["openai", "nvidia"], + value="openai", # Optionally set a default value to ensure something is selected + interactive=True + ) + + stream_button = gr.Button("Run Stream Service") + stream_output_answer = gr.Markdown() # Remove the label argument + # gr.Markdown("---") + # stream_output_stats = gr.Markdown() # Remove the label argument + + + def update_collection_dropdown_stream(): + return gr.update(choices=get_collection_names()) # Ensure get_collection_names() returns a list + + + # async def run_and_compute_statistics(collection_name, question, vision_model): + # # Return the vision model to the output field for testing + # return f"Vision Model: {vision_model}", "" + + + async def run_and_compute_statistics(collection_name, question, vision_model): + # print(f"Collection Name: {collection_name}") + # print(f"Question: {question}") + # print(f"Vision Model: {vision_model}") + + final_answer, run_id = await run_stream_service(collection_name, None, question, vision_model) + + # Introduce a delay of 3 seconds (adjust as needed) + await asyncio.sleep(3) # Delay execution by 3 seconds + + # Now compute the statistics after the delay + statistics = compute_statistics(run_id) + + # return final_answer, statistics + return final_answer + + # Trigger both the streaming service and stats calculation when the button is clicked + stream_button.click( + fn=run_and_compute_statistics, + inputs=[collection_dropdown_stream, question_input_stream, vision_model_dropdown], + # Added vision_model_dropdown + outputs=[stream_output_answer] # Display final answer and stats separately + ) + + interface.load(fn=update_collection_dropdown_stream, outputs=collection_dropdown_stream) + + + with gr.Tab("Agent Multi Documents QA Evaluation"): + gr.Markdown("## Call the New Agent Stream Service for multidocuments") + + collection_dropdown_stream = gr.Dropdown(label="Select Collection", choices=[], interactive=True) + # vision_model_dropdown = gr.Dropdown(label="Select Vision Model", choices=["openai", "nvidia"]) + vision_model_dropdown = gr.Dropdown( + label="Select Vision Model", + choices=["openai", "nvidia"], + value="openai", # Optionally set a default value to ensure something is selected + interactive=True + ) + question_dropdown_stream = gr.Dropdown(label="Select Question", choices=questions_list, value=questions_list[0], interactive=True) + answer_box = gr.Textbox(label="Ground Truth Answer", value=answers_list[0], interactive=False) # Answer box is not editable + url_box = gr.Textbox(label="Ground Truth Url", value=gt_urls[0], interactive=False) # Answer box is not editable + + stream_button = gr.Button("Run QA Agent") + stream_output_answer = gr.Markdown(value="") # Remove the label argument + # gr.Markdown("---") + # stream_output_stats = gr.Markdown(value="") # Remove the label argument + + # Function to update the dropdown when clicked + + def update_collection_dropdown_stream(): + return gr.update(choices=get_collection_names()) # Ensure get_collection_names() returns a list + + # Click function for the streaming service with chained statistic computation + async def run_and_compute_statistics(collection_name, question, vision_model): + print(collection_name, question, vision_model) + final_answer, run_id = await run_stream_service(collection_name, None, question, vision_model) + + # Introduce a delay of 3 seconds (adjust as needed) + await asyncio.sleep(3) + + # Now compute the statistics after the delay + statistics = compute_statistics(run_id) + + # return final_answer, statistics + return final_answer + # When a question is selected, automatically fill the answer box + + question_dropdown_stream.change( + fn=update_answer_and_url, + inputs=[question_dropdown_stream], + outputs=[answer_box, url_box] + ) + + # question_dropdown_stream.change( + # fn=lambda question: update_answer_dropdown(questions_list.index(question)), + # inputs=[question_dropdown_stream], + # outputs=[answer_box] + # ) + + def update_placeholders(): + return "Processing your request...", "Computing statistics..." + + stream_button.click( + fn=update_placeholders, + inputs=[], + outputs=[stream_output_answer], + queue=False # Ensure this update happens immediately without waiting + ) + # Trigger both the streaming service and stats calculation when the button is clicked + stream_button.click( + fn=run_and_compute_statistics, + inputs=[collection_dropdown_stream, question_dropdown_stream, vision_model_dropdown], + outputs=[stream_output_answer] + ) + + # Load the collections when the interface loads + interface.load(fn=update_collection_dropdown_stream, outputs=collection_dropdown_stream) + + + with gr.Tab("QA Synthetic generation"): + gr.Markdown("## Generate Synthetic questions / answers pairs from Documents") + + collection_dropdown = gr.Dropdown(label="Select Collection", choices=[], interactive=True) + document_dropdown = gr.Dropdown(label="Select Document URL", choices=[]) + + # Add a dropdown for vision model selection + # vision_model_dropdown = gr.Dropdown(label="Select Vision Model", choices=["openai", "nvidia"]) + + vision_model_dropdown = gr.Dropdown( + label="Select Vision Model", + choices=["openai", "nvidia"], + value="openai", # Optionally set a default value to ensure something is selected + interactive=True + ) + + generate_button = gr.Button("Generate SDG QA Pair") + + # _qa_output = gr.Textbox(label="Response") # Removed the 'label' argument + qa_output = gr.Markdown(label="Response") # Removed the 'label' argument + + + def update_collection_dropdown(): + return gr.update(choices=get_collection_names()) + + + def update_document_dropdown(collection_name): + documents = get_document_urls_and_ids(collection_name) + return gr.update(choices=[(url, doc_id) for doc_id, url in documents.items()], value=None) + + + collection_dropdown.change( + fn=update_document_dropdown, inputs=collection_dropdown, outputs=document_dropdown + ) + + + def format_qa_output(result): + qa_pairs = result['output']['sdgqa_pairs'][0] + question = qa_pairs['question']['question'] + answer = qa_pairs['answer']['answer'] + return f"### Question:\n{question}\n\n### Answer:\n{answer}" + + + # Trigger both the streaming service and stats calculation when the button is clicked + generate_button.click( + fn=lambda *args: format_qa_output(document_sdg(*args)), + inputs=[collection_dropdown, document_dropdown, vision_model_dropdown], # Added vision_model_dropdown + outputs=qa_output # Display question and answer + ) + + interface.load(fn=update_collection_dropdown, outputs=collection_dropdown) + + +# Launch the Gradio interface +interface.launch(server_name="0.0.0.0", server_port=7860) + diff --git a/RAG/examples/multimodal_retrieval/gradio/requirements.txt b/RAG/examples/multimodal_retrieval/gradio/requirements.txt new file mode 100644 index 00000000..09ad9447 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/gradio/requirements.txt @@ -0,0 +1,3 @@ +gradio +pymongo +langgraph-sdk \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/ingest/Dockerfile b/RAG/examples/multimodal_retrieval/ingest/Dockerfile new file mode 100644 index 00000000..22fe99f7 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/ingest/Dockerfile @@ -0,0 +1,22 @@ +FROM python:3.12 + +RUN apt-get update +RUN apt-get install -y poppler-utils + +WORKDIR /app + +COPY ./ingest/requirements.txt . + +RUN pip install -r requirements.txt + +COPY . . + +RUN pip install -e nv-mm-retrieval-app/packages/nv-mm-ingest-docs +RUN pip install -e nv-mm-retrieval-app/packages/nv-mm-document-qa +RUN pip install -e nv-mm-retrieval-app/packages/nv-mm-images + +ENTRYPOINT cd nv-mm-retrieval-app && uvicorn app.server:app --host 0.0.0.0 --port 8000 + + + + diff --git a/RAG/examples/multimodal_retrieval/ingest/requirements.txt b/RAG/examples/multimodal_retrieval/ingest/requirements.txt new file mode 100644 index 00000000..01e45397 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/ingest/requirements.txt @@ -0,0 +1,19 @@ +langchain +langsmith +langchain-cli +langchain-core +langchain-openai +langchain-nvidia-ai-endpoints +langchain-community +langgraph +langgraph-cli +langgraph-sdk +langserve +bs4 +openai +pymongo +gradio +pillow +weasyprint +pdf2image +httpx==0.27.2 \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/langgraph.json b/RAG/examples/multimodal_retrieval/langgraph.json new file mode 100644 index 00000000..77906c0d --- /dev/null +++ b/RAG/examples/multimodal_retrieval/langgraph.json @@ -0,0 +1,7 @@ +{ + "dependencies": [".", "./nv-mm-retrieval-app/packages/nv-mm-document-qa"], + "graphs": { + "agent": "./agent.py:agent_graph" + }, + "env": ".env.lg" +} \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/.gitignore b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/.gitignore new file mode 100644 index 00000000..bee8a64b --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/Dockerfile b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/Dockerfile new file mode 100644 index 00000000..bbdeea13 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/Dockerfile @@ -0,0 +1,21 @@ +FROM python:3.11-slim + +RUN pip install poetry==1.6.1 + +RUN poetry config virtualenvs.create false + +WORKDIR /code + +COPY ./pyproject.toml ./README.md ./poetry.lock* ./ + +COPY ./package[s] ./packages + +RUN poetry install --no-interaction --no-ansi --no-root + +COPY ./app ./app + +RUN poetry install --no-interaction --no-ansi + +EXPOSE 8080 + +CMD exec uvicorn app.server:app --host 0.0.0.0 --port 8080 diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/README.md b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/README.md new file mode 100644 index 00000000..305b3e33 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/README.md @@ -0,0 +1,79 @@ +# nv-mm-retrieval-app + +## Installation + +Install the LangChain CLI if you haven't yet + +```bash +pip install -U langchain-cli +``` + +## Adding packages + +```bash +# adding packages from +# https://github.com/langchain-ai/langchain/tree/master/templates +langchain app add $PROJECT_NAME + +# adding custom GitHub repo packages +langchain app add --repo $OWNER/$REPO +# or with whole git string (supports other git providers): +# langchain app add git+https://github.com/hwchase17/chain-of-verification + +# with a custom api mount point (defaults to `/{package_name}`) +langchain app add $PROJECT_NAME --api_path=/my/custom/path/rag +``` + +Note: you remove packages by their api path + +```bash +langchain app remove my/custom/path/rag +``` + +## Setup LangSmith (Optional) +LangSmith will help us trace, monitor and debug LangChain applications. +You can sign up for LangSmith [here](https://smith.langchain.com/). +If you don't have access, you can skip this section + + +```shell +export LANGCHAIN_TRACING_V2=true +export LANGCHAIN_API_KEY= +export LANGCHAIN_PROJECT= # if not specified, defaults to "default" +``` + +## Launch LangServe + +```bash +langchain serve +``` + +## Running in Docker + +This project folder includes a Dockerfile that allows you to easily build and host your LangServe app. + +### Building the Image + +To build the image, you simply: + +```shell +docker build . -t my-langserve-app +``` + +If you tag your image with something other than `my-langserve-app`, +note it for use in the next step. + +### Running the Image Locally + +To run the image, you'll need to include any environment variables +necessary for your application. + +In the below example, we inject the `OPENAI_API_KEY` environment +variable with the value set in my local environment +(`$OPENAI_API_KEY`) + +We also expose port 8080 with the `-p 8080:8080` option. + +```shell +docker run -e OPENAI_API_KEY=$OPENAI_API_KEY -p 8080:8080 my-langserve-app +``` diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/app/__init__.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/app/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/app/server.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/app/server.py new file mode 100644 index 00000000..0fcace83 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/app/server.py @@ -0,0 +1,24 @@ +from fastapi import FastAPI +from fastapi.responses import RedirectResponse +from langserve import add_routes + +from nv_mm_ingest_docs.chain import chain as ingest_docs_chain +from nv_mm_ingest_docs import chain as document_qa_chain +from nv_mm_images.main import router as images_routes +from nv_mm_document_qa.chain_sdg_qa import chain as sdgqa_chain + +app = FastAPI() + +add_routes(app, ingest_docs_chain, path="/ingest-docs") +add_routes(app, document_qa_chain, path="/document-qa") +add_routes(app, sdgqa_chain, path="/document-sdg") +app.include_router(images_routes) + +@app.get("/") +async def redirect_root_to_docs(): + return RedirectResponse("/docs") + +if __name__ == "__main__": + import uvicorn + + uvicorn.run(app, host="0.0.0.0", port=8000) \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/README.md b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/README.md new file mode 100644 index 00000000..e69de29b diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/.gitignore b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/.gitignore new file mode 100644 index 00000000..bee8a64b --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/LICENSE b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/LICENSE new file mode 100644 index 00000000..fc0602fe --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 LangChain, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/README.md b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/README.md new file mode 100644 index 00000000..8d3a0ad1 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/README.md @@ -0,0 +1,66 @@ +# nv-mm-document-qa + +TODO: What does this package do + +## Environment Setup + +TODO: What environment variables need to be set (if any) + +## Usage + +To use this package, you should first have the LangChain CLI installed: + +```shell +pip install -U langchain-cli +``` + +To create a new LangChain project and install this as the only package, you can do: + +```shell +langchain app new my-app --package nv-mm-document-qa +``` + +If you want to add this to an existing project, you can just run: + +```shell +langchain app add nv-mm-document-qa +``` + +And add the following code to your `server.py` file: +```python +from nv_mm_document_qa import chain as nv_mm_document_qa_chain + +add_routes(app, nv_mm_document_qa_chain, path="/nv-mm-document-qa") +``` + +(Optional) Let's now configure LangSmith. +LangSmith will help us trace, monitor and debug LangChain applications. +You can sign up for LangSmith [here](https://smith.langchain.com/). +If you don't have access, you can skip this section + + +```shell +export LANGCHAIN_TRACING_V2=true +export LANGCHAIN_API_KEY= +export LANGCHAIN_PROJECT= # if not specified, defaults to "default" +``` + +If you are inside this directory, then you can spin up a LangServe instance directly by: + +```shell +langchain serve +``` + +This will start the FastAPI app with a server is running locally at +[http://localhost:8000](http://localhost:8000) + +We can see all templates at [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) +We can access the playground at [http://127.0.0.1:8000/nv-mm-document-qa/playground](http://127.0.0.1:8000/nv-mm-document-qa/playground) + +We can access the template from code with: + +```python +from langserve.client import RemoteRunnable + +runnable = RemoteRunnable("http://localhost:8000/nv-mm-document-qa") +``` \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/__init__.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/__init__.py new file mode 100644 index 00000000..2188ed47 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/__init__.py @@ -0,0 +1,3 @@ +from nv_mm_document_qa.chain import chain + +__all__ = ["chain"] diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py new file mode 100644 index 00000000..fdcac440 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py @@ -0,0 +1,86 @@ +from langchain.schema.runnable import RunnableParallel, RunnablePassthrough, RunnableLambda +from langchain_openai import ChatOpenAI +from langchain_nvidia_ai_endpoints import ChatNVIDIA +from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder +from pydantic import BaseModel +from langchain_community.chat_message_histories import RedisChatMessageHistory +from langchain.schema.output_parser import StrOutputParser +from langchain.schema.runnable.history import RunnableWithMessageHistory +from langchain.schema.runnable import RunnableParallel, RunnablePassthrough, RunnableLambda +from typing_extensions import TypedDict +from nv_mm_document_qa.mongodb_utils import load_document_by_id +from nv_mm_document_qa.model_images import Image +from nv_mm_document_qa.model_metadata import DocumentMetadata +import os, json +from uuid import uuid4 + +unique_id = uuid4().hex[0:8] + +# llm = ChatOpenAI(model="gpt-4-1106-preview", temperature=0, max_tokens=3000) +llm = ChatOpenAI(model="gpt-4o", temperature=0, max_tokens=3500) +# llm = ChatNVIDIA( +# model="meta/llama-3.2-90b-vision-instruct", +# temperature=0, +# max_tokens=4095, +# top_p=1, +# frequency_penalty=0, +# presence_penalty=0, +# ) + +system_template_metadata = """You are a helpful assistant specialized in extracting metadata from a document.""" + +prompt_metadata = ChatPromptTemplate.from_messages( + [ + ("system", system_template_metadata), + ("human", """Here is the content of a document: {document_text}. \n\n Can you extract metadata as in summary and the list of entities?"""), + ] +) + +def get_context(input_data: dict) -> dict: + # _input_data = json.loads(input_data) + collection_name = input_data.get("collection_name") + document_id = input_data.get("document_id") + question = input_data.get("question") + + document = load_document_by_id(collection_name, document_id) + document_text = document["text"] + # print(document_text) + return {"document_text": document_text, "question": question, "collection_name": collection_name, "document_id": document_id} + +system_template = """You are a helpful assistant specialized in answering questions from a document. You are given the text of the document with the caveat that the images have been replaced with a description of the image. + +Here is an example of how an image shows in the document: + +![image 3e3a6a0d4feb34ba5b04abf81839fea3][The image depicts a wireframe model of a high-speed train on a set of tracks. The wireframe is rendered in a light blue color against a black background, giving it a futuristic and technical appearance. The train is shown in a perspective view, with the front of the train closer to the viewer and the rest of the train extending into the distance. The wireframe outlines the shape and structure of the train, including the wheels, axles, and the track it runs on. The intricate details of the train's design are visible, highlighting the engineering and mechanical components. The overall effect is a detailed and transparent representation of a high-speed train, emphasizing its sleek and aerodynamic design.] + +the 3e3a6a0d4feb34ba5b04abf81839fea3 represent a hash of the image + +In general it has the form: + +![image ][] + +At times the answer to a question can be in an image inside the document. +""" + + +prompt = ChatPromptTemplate.from_messages( + [ + ("system", system_template), + ("human", """Here is the content of a document: {document_text}. \n\n Can you answer this question: {question}"""), + ] +) + +chain = ( + RunnableLambda(get_context) | prompt | llm.with_structured_output(Image) + # | StrOutputParser() +) + +chain_metadata = ( + RunnableLambda(get_context) | prompt_metadata | llm.with_structured_output(DocumentMetadata) +) + +# result = chain.invoke({'question': 'Please describe the relative performance per accelerator', 'collection_name': 'nvidia_eval_blogs', 'document_id': 'openai_84be51268785ee2fd0def64161801cd5'}) +# print(result) + +# result = chain_metadata.invoke({'question': 'How much throughput can InfiniBand HDR sustain?', 'collection_name': 'nvidia_eval_blogs', 'document_id': 'openai_af9f13e35d0bf08bb8e864e2461cc1d7'}) +# print(result) diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py new file mode 100644 index 00000000..e7141556 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py @@ -0,0 +1,65 @@ +import os +import json +from typing_extensions import TypedDict +from langchain_openai import ChatOpenAI +from langchain_community.chat_message_histories import RedisChatMessageHistory +from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder +from nv_mm_document_qa.model_full_collection import BestDocuments, Answer +from nv_mm_document_qa.mongodb_utils import get_document_summaries_markdown + +from langchain.schema.runnable.history import RunnableWithMessageHistory +from langchain.schema.runnable import RunnableParallel, RunnablePassthrough, RunnableLambda +from langchain.callbacks.tracers import LangChainTracer +from langchain.chains.openai_functions import ( + create_structured_output_chain, +) + + +# llm = ChatOpenAI(model="gpt-4-1106-preview", temperature=0, max_tokens=3000) +llm = ChatOpenAI(model="gpt-4o", temperature=0, max_tokens=3000) + +prompt_document_expert = ChatPromptTemplate.from_messages( + [ + ( + "system", + f""" # Extract Best Document Identifier from list of summaries, based on a question coming from the user. You are an expert in getting insights of a document, based on its summaries and you are able to figure the best matches to the question in terms of the summary of the document. + Provide no more than 3 of these documents. + ## Format of the Input + - The input is a markdown file containing second level headers (##) with the chapter index in the form ## Document where document_id is an integer pointing to the index of the document. After the document heading there is the summary of the document which is relevant to understand the content of the document. + ## Format of the output + - The output is going to be the list of the best documents indices and a few of the corresponding summaries that help to answer the question coming from the user. + ## Content + - Here is the input you can work on: + + {{documents_context}} + """, + ), + ( + "human", + "Can you tell me what are the most relevant document ids for this question: {question}" + ), + ("human", "Tip: Make sure to answer in the correct format"), + ] +) + +def get_context(input_data: dict) -> dict: + + collection_name = input_data.get("collection_name") + question = input_data.get("question") + + documents_context = get_document_summaries_markdown(collection_name) + + # print(context) + return {"documents_context": documents_context, + "collection_name": collection_name, + "question": question} + + + +chain_document_expert = ( + RunnableLambda(get_context) | prompt_document_expert | llm.with_structured_output(BestDocuments) | (lambda x: x.dict()) +) + +# result = chain_document_expert.invoke({"collection_name": "nvidia_eval_blogs", "question": "What are the performance optimizations that are used by NVIDIA when it comes to network division?"}) +# # print([doc.dict() for doc in result]) +# print(result) \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py new file mode 100644 index 00000000..cf834cb9 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py @@ -0,0 +1,81 @@ +import os +from langchain_openai import ChatOpenAI +from langchain_nvidia_ai_endpoints import ChatNVIDIA +from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder +from langchain.schema.runnable import RunnableParallel, RunnablePassthrough, RunnableLambda +from nv_mm_document_qa.model_sdg_qa import SDGQA +from nv_mm_document_qa.mongodb_utils import load_document_by_id + + +nvidia_ngc_api_key = os.environ["NVIDIA_API_KEY"] + +# llm = ChatOpenAI(model="gpt-4-1106-preview", temperature=0, max_tokens=3000) + +llm = ChatOpenAI(model="gpt-4o", temperature=0.71, max_tokens=3000) + +system_template = """ +*You are an expert educator specializing in creating challenging and insightful questions for developers in the field of Tec43chincal Documentation.* + +*Your task is to generate a set of complex synthetic questions based on the following technical document written in markdown format. + +*When creating the question, you need to think in terms of pinpointed questions and concise answers, meaning that you don't want to make the question too generic* + +*The questions should:* + +- *Incorporate information from both the main text and the detailed image descriptions.* +- *Make sure that you use at least one image when generating the question.* +- *Cover a range of cognitive levels, including analysis, evaluation, and synthesis.* +- *Encourage critical thinking and the application of concepts in novel situations.* +- *Be clear, concise, and unambiguous.* + +*For each question, provide:* + +1. *The question itself.* No image should be mentioned in the question, although the question must be generated including information from the description of an image. +2. *A detailed answer or solution, including explanations of the reasoning process and any necessary calculations. The image that has been used to generate the question should be provided with its identifier (an md5 hash). The text should include the image as in a markdown file, showing the image with the link http://localhost:6001/image/{collection_name}/{document_id}/image_id* (you need to replace image_id in the url with the identifier of the image that comes from the document, which is the md5 of the image). + +Generate no more than one Question / Answer pairs. + +*Here is the technical document:* + +{document_text} +""" + +prompt = ChatPromptTemplate.from_messages( + [ + ("system", system_template) + ] +) + +def get_context(input_data: dict) -> dict: + global llm + # _input_data = json.loads(input_data) + collection_name = input_data.get("collection_name") + document_id = input_data.get("document_id") + vision_model = input_data.get("vision_model") + + if vision_model == "openai": + llm = ChatOpenAI(model="gpt-4o", temperature=0.71, max_tokens=3000) + else: + print("Using the nvidia model!") + llm = ChatNVIDIA( + model="meta/llama-3.2-90b-vision-instruct", + temperature=0, + max_tokens=4095, + top_p=1, + frequency_penalty=0, + presence_penalty=0, + ) + + document = load_document_by_id(collection_name, document_id) + document_text = document["text"] + # print(document_text) + return {"document_text": document_text, "collection_name": collection_name, "document_id": document_id, "vision_model": vision_model} + + + +chain = ( + RunnableLambda(get_context) | prompt | llm.with_structured_output(SDGQA) | (lambda x: x.dict()) +) + +# result = chain.invoke({"document_id": "openai_7cc79c984147e038cf95de3a543524cf", "collection_name": "blogs"}) +# print(result) \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_full_collection.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_full_collection.py new file mode 100644 index 00000000..93cd32be --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_full_collection.py @@ -0,0 +1,21 @@ +from typing import Any, Dict, List + +# from pydantic import BaseModel, Field +from pydantic import BaseModel, Field + +class Document(BaseModel): + """ + Find the best document id and its corresponding summary answer the provided question + """ + id: str = Field(..., description="Hash identifier of the document") + summary: str = Field(..., description="The summary of the document as is") + +class BestDocuments(BaseModel): + """ + List of the best ducoments to answer the question and their corresponding summaries + """ + documents: List[Document] = Field(..., description="List of best documents") + + +class Answer(BaseModel): + answer: str = Field(..., description="Answer to the question posed by the user") \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_images.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_images.py new file mode 100644 index 00000000..110435c0 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_images.py @@ -0,0 +1,36 @@ +from typing import Optional +# from langchain_core.pydantic_v1 import BaseModel, Field +from pydantic import BaseModel, Field + +# class HashId(BaseModel): +# image_hash: str = Field(description="Hash identifier of the image that contains the answer to the question") + +# class ImageDescription(BaseModel): +# image_description: str = Field(description="Description of the image that contains the answer to the question") + +class Answer(BaseModel): + answer: str = Field(description="The answer to the question asked by the user.") + +class Image(BaseModel): + image_hash: Optional[str] = Field(None, description="Hash identifier of the image relevant to the question in the document. Return this only if there is an image that contains the answer to the question.") + image_description: Optional[str] = Field(None, description="Description of the relevant image in the document. Return this only if there is an image that contains the answer to the question.") + answer: Answer = Field(description="Answer to the question asked by the user and found in the document.") + + +# image_description = 'The image depicts a diagram related to an InfiniBand network architecture, highlighting the components and their interconnections. Here’s a detailed description: 1. **Top Section**: - There are multiple blocks labeled "InfiniBand QP" and "SmartNIC." These represent the InfiniBand queue pairs (QPs) and Smart Network Interface Cards (SmartNICs) that facilitate high-speed data transfer. 2. **Middle Section**: - Below the SmartNICs, there are blocks labeled "IBConnections," "IBDevice," "IBResources," and "IBCfgs." - "IBConnections" likely represents the connections established for communication. - "IBDevice" refers to the actual hardware devices that handle the InfiniBand communication. - "IBResources" may denote the resources allocated for managing these devices. - "IBCfgs" suggests configuration settings for the InfiniBand devices. 3. **Connections**: - Arrows indicate the flow of connections and data between the components, showing how the SmartNICs connect to the IBConnections and subsequently to the IBDevices. 4. **Bottom Section**: - There are several blocks labeled "Buf," which likely represent buffers in memory used for data storage or transfer. 5. **Memory**: - The bottom part of the diagram indicates a memory section where the buffers are located, suggesting that data is temporarily stored here during processing. Overall, the diagram illustrates the architecture and relationships between various components in an InfiniBand network setup, emphasizing the role of SmartNICs and the configuration of IBDevices.' +# +# +# image_instance = Image( +# image_hash="52d0108669c946e6ef028be3546373c9", # Pass as HashId instance +# image_description=image_description, # Pass as ImageDescription instance +# answer=Answer(answer="The image does not provide information about the person's hair...") # Pass as Answer instance +# ) +# # +# image_hash_value = image_instance.image_hash +# image_description_value = image_instance.image_description +# answer_value = image_instance.answer.answer +# # +# # Print the extracted values +# print(f"Image Hash: {image_hash_value}") +# print(f"Image Description: {image_description_value}") +# print(f"Answer: {answer_value}") diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_metadata.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_metadata.py new file mode 100644 index 00000000..d28e3bab --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_metadata.py @@ -0,0 +1,35 @@ +from typing import Optional, List +from pydantic import BaseModel, Field + +class Summary(BaseModel): + summary: str = Field(description="A summary of the document containing the main points of the document. Can be used to search this document among many others.") + +class Entity(BaseModel): + entity_name: str = Field(description="An entity mentioned in the document, which can be a device, a name, or any significant entity.") + +class EntitiesList(BaseModel): + entities: List[Entity] = Field(description="A list of entities mentioned in the document, such as devices, names, or other significant objects.") + +class DocumentMetadata(BaseModel): + summary: Summary = Field(description="Summary of the document.") + # entities_list: EntitiesList = Field(description="List of entities mentioned in the document.") + +# Example usage: +# doc_instance = DocumentMetadata( +# summary=Summary(summary="This document discusses the architecture of a neural network..."), +# entities_list=EntitiesList( +# entities=[ +# Entity(entity_name="Neural Network"), +# Entity(entity_name="Convolutional Layer"), +# Entity(entity_name="Backpropagation") +# ] +# ) +# ) + +# Accessing the values: +# summary_value = doc_instance.summary.summary +# entities_values = [entity.entity_name for entity in doc_instance.entities_list.entities] + +# Print the extracted values +# print(f"Summary: {summary_value}") +# print(f"Entities: {entities_values}") diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_sdg_qa.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_sdg_qa.py new file mode 100644 index 00000000..a196f683 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_sdg_qa.py @@ -0,0 +1,17 @@ +from typing import Optional, List +# from langchain_core.pydantic_v1 import BaseModel, Field +from pydantic import BaseModel, Field + +class Question(BaseModel): + question: str = Field(description="The question generated by the LLM") + +class Answer(BaseModel): + answer: str = Field(description="The answer to the question generated by the LLM.") + +class QuestionAnswerPair(BaseModel): + question: Question + answer: Answer + +class SDGQA(BaseModel): + sdgqa_pairs: List[QuestionAnswerPair] = Field(default_factory=list, description="List of Question and Answer pairs") + diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/mongodb_utils.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/mongodb_utils.py new file mode 100644 index 00000000..2e4ef0a6 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/mongodb_utils.py @@ -0,0 +1,127 @@ +from pymongo import MongoClient +from bson.objectid import ObjectId +import os + +mongo_host = os.environ["MONGO_HOST"] +mongo_user = os.environ["MONGO_INITDB_ROOT_USERNAME"] +mongo_passwd = os.environ["MONGO_INITDB_ROOT_PASSWORD"] + +# MongoDB connection setup +client = MongoClient(f'mongodb://{mongo_user}:{mongo_passwd}@{mongo_host}:27017/') # Adjust as needed +print(mongo_host, mongo_user, mongo_passwd) +db = client['tme_urls_db'] # Replace with your database name +# collection = db['tme_docs'] # Replace with your collection name + +def load_document_by_id(collection_name, document_id): + """Load a MongoDB document by its _id from a specific collection.""" + collection = db[collection_name] # Access the specified collection + + try: + # Try to find the document using its _id + document = collection.find_one({"_id": document_id}) + + if document: + return document + else: + return f"No document found with _id: {document_id}" + + except Exception as e: + return f"An error occurred: {e}" + +def merge_documents(collection_name, best_documents): + markdown_string = "" + for b_doc_id in best_documents: + b_doc_md = load_document_by_id(collection_name, b_doc_id) + + # Append the document ID as a header (##) and the summary as body + markdown_string += f"# {b_doc_id}\n{b_doc_md}\n\n" # Two newlines act as a separator + return markdown_string + + +def get_base64_image(image_collection_name, image_id): + """Retrieve the base64-encoded image from the images collection by its image ID.""" + # Access the 'images' collection in MongoDB + image_collection = db[image_collection_name] # Access the specified image collection + + try: + # Find the image document by its _id (image_id) + image_document = image_collection.find_one({"_id": image_id}) + + if image_document: + # Return the base64-encoded image from the image document + print("Found the image!") + return image_document.get('image_data', f"No base64 image data found for image ID: {image_id}") + + # If no document is found with the given image_id + return f"No image document found with ID: {image_id}" + + except Exception as e: + return f"An error occurred: {e}" + + +# def get_base64_image(collection_name, document_id, image_id): +# """Retrieve the base64-encoded image from a MongoDB document by its _id and image ID.""" +# collection = db[collection_name] # Access the specified collection +# +# try: +# # Convert document_id to ObjectId if needed +# # If your document_id is a string or already an ObjectId, you can use it directly +# print(f"Collection Name: {collection_name}") +# print(f"Document Identifier: {document_id}") +# print(f"Image Indentifier: {image_id}") +# +# document_id = ObjectId(document_id) if ObjectId.is_valid(document_id) else document_id +# +# # Find the document by its _id +# document = collection.find_one({"_id": document_id}) +# +# if document: +# # Assuming images are stored as a list of dictionaries in the 'images' field +# for image in document.get('images', []): +# if image_id in image: +# # Return the base64-encoded image +# return image[image_id] +# +# # If the image_id is not found in the document +# return f"No image found with ID: {image_id} in document {document_id}" +# else: +# return f"No document found with _id: {document_id}" +# +# except Exception as e: +# return f"An error occurred: {e}" + + +def get_document_summaries_markdown(collection_name): + """ + This function retrieves all documents from the given collection that have a 'summary' field + and returns a markdown-formatted string of document IDs as headers and their summaries as the body. + + Args: + collection_name (str): The name of the MongoDB collection. + + Returns: + str: A markdown-formatted string containing document IDs as headers and summaries as the body. + """ + + # Replace this with your MongoDB connection string + collection = db[collection_name] + + # Query for documents that contain a 'summary' field + documents = collection.find({"summary": {"$exists": True}}) + + # Initialize an empty string to store the result + markdown_string = "" + + # Loop through the documents + for document in documents: + document_id = document.get('_id') + summary = document.get('summary', 'No summary available') + + # Append the document ID as a header (##) and the summary as body + markdown_string += f"## {document_id}\n{summary}\n\n" # Two newlines act as a separator + + return markdown_string + +# Example usage: +# markdown_output = get_document_summaries_markdown('your_collection_name') +# print(markdown_output) diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/pyproject.toml b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/pyproject.toml new file mode 100644 index 00000000..b115eaee --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/pyproject.toml @@ -0,0 +1,24 @@ +[build-system] +requires = [ "poetry-core",] +build-backend = "poetry.core.masonry.api" + +[tool.poetry] +name = "nv-mm-document-qa" +version = "0.0.1" +description = "" +authors = [] +readme = "README.md" + +[tool.langserve] +export_module = "nv_mm_document_qa" +export_attr = "chain" + +[tool.poetry.dependencies] +python = ">=3.9,<4.0" +langchain-core = "^0.3.15" +langchain-openai = ">=0.0.1" + +[tool.poetry.group.dev.dependencies] +langchain-cli = ">=0.0.4" +fastapi = "^0.104.0" +sse-starlette = "^1.6.5" diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/tests/__init__.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/.gitignore b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/.gitignore new file mode 100644 index 00000000..bee8a64b --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/LICENSE b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/LICENSE new file mode 100644 index 00000000..fc0602fe --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 LangChain, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/README.md b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/README.md new file mode 100644 index 00000000..a1ef478f --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/README.md @@ -0,0 +1,66 @@ +# nv-mm-images + +TODO: What does this package do + +## Environment Setup + +TODO: What environment variables need to be set (if any) + +## Usage + +To use this package, you should first have the LangChain CLI installed: + +```shell +pip install -U langchain-cli +``` + +To create a new LangChain project and install this as the only package, you can do: + +```shell +langchain app new my-app --package nv-mm-images +``` + +If you want to add this to an existing project, you can just run: + +```shell +langchain app add nv-mm-images +``` + +And add the following code to your `server.py` file: +```python +from nv_mm_images import chain as nv_mm_images_chain + +add_routes(app, nv_mm_images_chain, path="/nv-mm-images") +``` + +(Optional) Let's now configure LangSmith. +LangSmith will help us trace, monitor and debug LangChain applications. +You can sign up for LangSmith [here](https://smith.langchain.com/). +If you don't have access, you can skip this section + + +```shell +export LANGCHAIN_TRACING_V2=true +export LANGCHAIN_API_KEY= +export LANGCHAIN_PROJECT= # if not specified, defaults to "default" +``` + +If you are inside this directory, then you can spin up a LangServe instance directly by: + +```shell +langchain serve +``` + +This will start the FastAPI app with a server is running locally at +[http://localhost:8000](http://localhost:8000) + +We can see all templates at [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) +We can access the playground at [http://127.0.0.1:8000/nv-mm-images/playground](http://127.0.0.1:8000/nv-mm-images/playground) + +We can access the template from code with: + +```python +from langserve.client import RemoteRunnable + +runnable = RemoteRunnable("http://localhost:8000/nv-mm-images") +``` \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/__init__.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/__init__.py new file mode 100644 index 00000000..34c49c5f --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/__init__.py @@ -0,0 +1,3 @@ +from nv_mm_images.chain import chain + +__all__ = ["chain"] diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/chain.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/chain.py new file mode 100644 index 00000000..f5a8ebc6 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/chain.py @@ -0,0 +1,17 @@ +from langchain_core.prompts import ChatPromptTemplate +from langchain_openai import ChatOpenAI + +_prompt = ChatPromptTemplate.from_messages( + [ + ( + "system", + "You are a helpful assistant who speaks like a pirate", + ), + ("human", "{text}"), + ] +) +_model = ChatOpenAI() + +# if you update this, you MUST also update ../pyproject.toml +# with the new `tool.langserve.export_attr` +chain = _prompt | _model diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/main.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/main.py new file mode 100644 index 00000000..552cc2ae --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/main.py @@ -0,0 +1,84 @@ +import os +import uvicorn +from fastapi import BackgroundTasks, FastAPI, UploadFile, WebSocket, WebSocketDisconnect, APIRouter, File +from fastapi.responses import JSONResponse +from fastapi import File, UploadFile +from fastapi.responses import PlainTextResponse +from fastapi import FastAPI, HTTPException +from fastapi.responses import FileResponse +from pymongo import MongoClient +from bson import ObjectId +import base64 +from fastapi.responses import Response +from pymongo import MongoClient +from bson.objectid import ObjectId + + +router = APIRouter() +# app = FastAPI(title="Riva as a service") + + + +# Initialize FastAPI app +app = FastAPI() + +mongodb_user = os.environ["MONGO_INITDB_ROOT_USERNAME"] +mongodb_password = os.environ["MONGO_INITDB_ROOT_PASSWORD"] +mongodb_port = os.environ["MONGO_PORT"] +client = MongoClient(f'mongodb://{mongodb_user}:{mongodb_password}@mongodb:{mongodb_port}/') # Adjust as needed + +# MongoDB connection setup +db = client['tme_urls_db'] # Replace with your database name + + +def get_base64_image(image_collection_name, image_id): + """Retrieve the base64-encoded image from the images collection by its image ID.""" + image_collection = db[image_collection_name] # Access the specified image collection + + try: + # Find the image document by its _id (image_id) + image_document = image_collection.find_one({"_id": image_id}) + + if image_document: + # Return the base64-encoded image from the image document, and None for the error + return image_document.get('image_data'), None + + # If no document is found with the given image_id + return None, f"No image document found with ID: {image_id}" + + except Exception as e: + # If there's an error, return None for the image and the error message + return None, f"An error occurred: {e}" + +@router.get("/image/{collection_name}/{document_id}/{image_id}") +async def get_image(collection_name: str, document_id: str, image_id: str): + # Retrieve the Base64 image using the provided function + image_collection_name = "images" + base64_image, error_message = get_base64_image(image_collection_name, image_id) + + if error_message: + raise HTTPException(status_code=404, detail=error_message) + + try: + # Decode the Base64 image data to bytes + image_bytes = base64.b64decode(base64_image) + + # Return the image as raw bytes in the response + return Response(content=image_bytes) + + except Exception as e: + raise HTTPException(status_code=500, detail="Invalid image format") + + +# Endpoint to return health of the application +@router.get("/v1/health") +async def health(): + # response = await asr.get_health() + # if response.status == health_pb2.HealthCheckResponse.SERVING: + return "Riva service is healthy" + # else: + # return "Riva service is not healthy" + + +if __name__ == "__main__": + uvicorn.run("main:app", host='0.0.0.0', port=8000, reload=True) diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/pyproject.toml b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/pyproject.toml new file mode 100644 index 00000000..b0b507df --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/pyproject.toml @@ -0,0 +1,24 @@ +[build-system] +requires = [ "poetry-core",] +build-backend = "poetry.core.masonry.api" + +[tool.poetry] +name = "nv-mm-images" +version = "0.0.1" +description = "" +authors = [] +readme = "README.md" + +[tool.langserve] +export_module = "nv_mm_images" +export_attr = "chain" + +[tool.poetry.dependencies] +python = ">=3.9,<4.0" +langchain-core = "^0.3.15" +langchain-openai = ">=0.0.1" + +[tool.poetry.group.dev.dependencies] +langchain-cli = ">=0.0.4" +fastapi = "^0.104.0" +sse-starlette = "^1.6.5" diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/tests/__init__.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/.gitignore b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/.gitignore new file mode 100644 index 00000000..bee8a64b --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/LICENSE b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/LICENSE new file mode 100644 index 00000000..fc0602fe --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 LangChain, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/README.md b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/README.md new file mode 100644 index 00000000..d9de86b2 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/README.md @@ -0,0 +1,66 @@ +# nv-mm-ingest-docs + +TODO: What does this package do + +## Environment Setup + +TODO: What environment variables need to be set (if any) + +## Usage + +To use this package, you should first have the LangChain CLI installed: + +```shell +pip install -U langchain-cli +``` + +To create a new LangChain project and install this as the only package, you can do: + +```shell +langchain app new my-app --package nv-mm-ingest-docs +``` + +If you want to add this to an existing project, you can just run: + +```shell +langchain app add nv-mm-ingest-docs +``` + +And add the following code to your `server.py` file: +```python +from nv_mm_ingest_docs import chain as nv_mm_ingest_docs_chain + +add_routes(app, nv_mm_ingest_docs_chain, path="/nv-mm-ingest-docs") +``` + +(Optional) Let's now configure LangSmith. +LangSmith will help us trace, monitor and debug LangChain applications. +You can sign up for LangSmith [here](https://smith.langchain.com/). +If you don't have access, you can skip this section + + +```shell +export LANGCHAIN_TRACING_V2=true +export LANGCHAIN_API_KEY= +export LANGCHAIN_PROJECT= # if not specified, defaults to "default" +``` + +If you are inside this directory, then you can spin up a LangServe instance directly by: + +```shell +langchain serve +``` + +This will start the FastAPI app with a server is running locally at +[http://localhost:8000](http://localhost:8000) + +We can see all templates at [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs) +We can access the playground at [http://127.0.0.1:8000/nv-mm-ingest-docs/playground](http://127.0.0.1:8000/nv-mm-ingest-docs/playground) + +We can access the template from code with: + +```python +from langserve.client import RemoteRunnable + +runnable = RemoteRunnable("http://localhost:8000/nv-mm-ingest-docs") +``` \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/__init__.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/__init__.py new file mode 100644 index 00000000..26011b72 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/__init__.py @@ -0,0 +1,3 @@ +from nv_mm_ingest_docs.chain import chain + +__all__ = ["chain"] diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py new file mode 100644 index 00000000..4214a04d --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py @@ -0,0 +1,24 @@ +from langchain.schema.runnable import RunnableParallel, RunnablePassthrough, RunnableLambda +from nv_mm_ingest_docs.url_import import process_urls_and_save +from nv_mm_document_qa.chain import chain_metadata +from langchain_openai import ChatOpenAI + +llm = ChatOpenAI(model="gpt-4o", temperature=0, max_tokens=3000) + +def import_urls(input_data: dict) -> dict: + # _input_data = json.loads(input_data) + urls_list = input_data.get("urls_list") + # chapter_indices = _input_data.get("best_docs") + collection_name = input_data.get("collection_name") + backend_llm = input_data.get("backend_llm") + imported_documents = process_urls_and_save(urls_list, collection_name, backend_llm) + # print(context) + return {"imported_documents": imported_documents, "collection_name": collection_name, "backend_llm": backend_llm} + +# if you update this, you MUST also update ../pyproject.toml +# with the new `tool.langserve.export_attr` +chain = RunnableLambda(import_urls) + +# result = chain.invoke({"urls_list": ["https://developer.nvidia.com/blog/setting-new-records-in-mlperf-inference-v3-0-with-full-stack-optimizations-for-ai/"], "collection_name": "blogs", "backend_llm": "openai"}) +# print(result) + diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py new file mode 100644 index 00000000..f9715f73 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py @@ -0,0 +1,98 @@ +from langchain_nvidia_ai_endpoints import ChatNVIDIA +from langchain_openai import ChatOpenAI +from langchain_core.messages import HumanMessage, SystemMessage +import requests +import base64 + +system_template = """ +Please describe this image in detail. +""" + +def call_api_for_image(image_base64, system_template=system_template, backend_llm="openai"): + """Calls the OpenAI API to extract text from the base64-encoded image.""" + # print("Parsing image %s" % len(image_base64)) + + llm_openai = ChatOpenAI( + model="gpt-4o-mini", + temperature=0, + max_tokens=4095, + top_p=1, + frequency_penalty=0, + presence_penalty=0, + ) + + llm_nvidia = ChatNVIDIA( + model="meta/llama-3.2-90b-vision-instruct", + temperature=0, + max_tokens=4095, + top_p=1, + frequency_penalty=0, + presence_penalty=0, + ) + + + if backend_llm == "nvidia": + llm = llm_nvidia + # print("I am using the NVIDIA Model") + elif backend_llm == "openai": + llm = llm_openai + # print("I am using the OpenAI Model") + else: + llm = None + + + system_message = SystemMessage(content=system_template) + + human_message = HumanMessage( + content=[ + { + "type": "image_url", + "image_url": {"url": f"data:image/png;base64,{image_base64}"}, + }, + ] + ) + + messages = [system_message, human_message] + + # print(messages) + + + response = llm.invoke( + messages + ) + + # print(response.content) + + return response.content + + + + + + +def get_image_base64(image_url): + try: + # Send a GET request to the image URL + response = requests.get(image_url) + # Check if the request was successful + if response.status_code == 200: + # Encode the image content in base64 + image_base64 = base64.b64encode(response.content).decode('utf-8') + return image_base64 + else: + return f"Error: Unable to fetch image, status code {response.status_code}" + except Exception as e: + return f"An error occurred: {str(e)}" + +def main(): + +# Example usage + + image_url = "https://www.cisco.com/c/dam/en/us/support/docs/smb/switches/cisco-550x-series-stackable-managed-switches/images/gss-cliupgrade-05102017-step5.png" + image_base64 = get_image_base64(image_url) + + response = call_api_for_image(image_base64, system_template=system_template, backend_llm="openai") + print(response) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/url_import.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/url_import.py new file mode 100644 index 00000000..2c6f89ef --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/url_import.py @@ -0,0 +1,254 @@ +import requests +from bs4 import BeautifulSoup +import base64 +import hashlib +from PIL import Image +from io import BytesIO +from pymongo import MongoClient +from weasyprint import HTML +from pdf2image import convert_from_bytes +import io +import os + +from nv_mm_ingest_docs.parse_image import call_api_for_image +from nv_mm_document_qa.chain import chain_metadata + +# mongo_host = os.environ["MONGO_HOST"] +# mongo_user = os.environ["MONGO_INITDB_ROOT_USERNAME"] +# mongo_passwd = os.environ["MONGO_INITDB_ROOT_PASSWORD"] + +mongo_host = "mongodb" +mongo_user = "admin" +mongo_passwd = "secret" + +mongodb_user = os.environ["MONGO_INITDB_ROOT_USERNAME"] +mongodb_password = os.environ["MONGO_INITDB_ROOT_PASSWORD"] +mongodb_port = os.environ["MONGO_PORT"] +client = MongoClient(f'mongodb://{mongodb_user}:{mongodb_password}@mongodb:{mongodb_port}/') # Adjust as needed + +def save_to_mongodb(url, json_data, collection, backend_llm): + """Save the given JSON data into MongoDB with the MD5 hash of the URL as the _id.""" + # Generate the MD5 hash of the URL to use as the _id for the text document + url_hash = generate_md5_hash(url) + document_id = backend_llm + "_" + url_hash + + # Prepare the main document (without images) + main_document = { + "_id": document_id, + "text": json_data['text'], + "url": url, + "backend_llm": backend_llm, + "image_ids": [] # List to store references to image document ids + } + + # Save images as separate documents + image_collection = collection.database['images'] # Use a separate collection for images + for image, description in zip(json_data['images'], json_data['descriptions']): + image_id = list(image.keys())[0] # The MD5 hash of the image is the key + image_data = image[image_id] + image_description = description[image_id] + + # Create an image document + image_document = { + "_id": image_id, + "image_data": image_data, + "description": image_description, + "source_document_id": document_id # Reference to the parent text document + } + + # Insert image document into the "images" collection + image_collection.replace_one( + {"_id": image_id}, + image_document, + upsert=True + ) + + # Add image ID to the main document + main_document['image_ids'].append(image_id) + + # Save the main text document with references to image documents + collection.replace_one( + {"_id": document_id}, + main_document, + upsert=True + ) + + document_metadata = chain_metadata.invoke({"document_id": document_id, "collection_name": collection.name}) + + collection.update_one( + {"_id": document_id}, + {"$set": document_metadata.dict()} + ) + +def generate_md5_hash(url): + """Generate an MD5 hash for the given URL.""" + return hashlib.md5(url.encode('utf-8')).hexdigest() + + +def is_valid_image_format(img_url): + """Check if the image URL is a PNG or JPEG format by inspecting the file extension.""" + return any(img_url.lower().endswith(ext) for ext in ['.png', '.jpg', '.jpeg']) + + +def change_transparent_to_white(image_data): + # Open the image from the binary data + image = Image.open(BytesIO(image_data)) + + # Ensure the image is in RGBA mode (which includes alpha for transparency) + if image.mode != 'RGBA': + image = image.convert('RGBA') + + # Create a new image with a white background (RGB mode) + background = Image.new("RGB", image.size, (255, 255, 255)) + + # Combine the image with the white background using alpha as a mask + background.paste(image, mask=image.split()[3]) # Use the alpha channel as mask + + # Convert the image to bytes + buffer = BytesIO() + background.save(buffer, format="PNG") + return buffer.getvalue() + + +def html_table_to_png(table_html, dpi=300): + html_content = f""" + + + {table_html} + + + """ + + # Convert HTML to PDF in memory + pdf_bytes = HTML(string=html_content).write_pdf() + images = convert_from_bytes(pdf_bytes, dpi=dpi) + image = images[0] + # Convert PDF to image + image_io = io.BytesIO() + image.save(image_io, format='PNG') + return image_io.getvalue() + +def url_to_text_and_images(url, backend_llm): + """Fetch the URL content, process it, and return the JSON.""" + + system_template = """ + Please describe this image in detail. + """ + + response = requests.get(url) + + if response.status_code != 200: + return {'error': f"Unable to fetch the URL, status code: {response.status_code}"} + + html_content = response.content + soup = BeautifulSoup(html_content, 'html.parser') + + image_list = [] + description_list = [] + text_content = "" + + # Process

tags for text and tags for images + for elem in soup.find_all(['p', 'img', 'table']): + if elem.name == 'p': + p_text = elem.get_text(separator=" ", strip=True) + if p_text: + text_content += p_text + "\n\n" + + elif elem.name == 'img': + img_url = elem.get('src') + + # Check if the 'srcset' attribute exists for the image + srcset = elem.get('srcset') + + if srcset: + # Split the srcset into a list of (url, size) tuples + srcset_images = [s.strip().split(' ') for s in srcset.split(',')] + + # print(srcset_images) + # Sort the srcset images by the size in descending order and get the largest one + full_size_url = sorted(srcset_images, key=lambda x: int(x[1][:-1]), reverse=True)[0][0] + # print(full_size_url) + # Use the full-size URL + img_url = full_size_url + + if not img_url.startswith('http'): + img_url = requests.compat.urljoin(url, img_url) + + if is_valid_image_format(img_url): + try: + img_response = requests.get(img_url) + img_data_with_white_bg = change_transparent_to_white(img_response.content) + # print(img_response) + img_base64 = base64.b64encode(img_data_with_white_bg).decode('utf-8') + + md5_hash = hashlib.md5(img_base64.encode('utf-8')).hexdigest() + image_description = call_api_for_image(img_base64, system_template, backend_llm) + + text_content += f"![image {md5_hash}][{image_description}]\n\n" + + image_list.append({md5_hash: img_base64}) + description_list.append({md5_hash: image_description}) + + except Exception as e: + print(f"Error processing image {img_url}: {e}") + + elif elem.name == 'table': + # Process tables + try: + print("processing a table") + table_html = str(elem) + table_image_data = html_table_to_png(table_html) + img_base64 = base64.b64encode(table_image_data).decode('utf-8') + + md5_hash = hashlib.md5(img_base64.encode('utf-8')).hexdigest() + image_description = call_api_for_image(img_base64, system_template, backend_llm) + print(image_description) + + text_content += f"![image {md5_hash}][{image_description}]\n\n" + + image_list.append({md5_hash: img_base64}) + description_list.append({md5_hash: image_description}) + + except Exception as e: + print(f"Error processing table: {e}") + + result = { + 'text': text_content.strip(), + 'images': image_list, + 'descriptions': description_list, + 'url': url, # Add the URL to the JSON result + 'backend_llm': backend_llm + } + + return result + + +def process_urls_and_save(urls, collection_name, backend_llm): + """Process a list of URLs and save their processed data to the specified MongoDB collection.""" + # Access the specified collection in MongoDB + db = client['tme_urls_db'] # Replace with your database name + collection = db[collection_name] # Use the input collection name + all_data = [] + for url in urls: + print(f"Processing {url}...") + json_data = url_to_text_and_images(url, backend_llm) + if 'error' not in json_data: + save_to_mongodb(url, json_data, collection, backend_llm) + print(f"Data for {url} saved to MongoDB collection {collection_name}.") + all_data.append(json_data) + else: + print(f"Error processing {url}: {json_data['error']}") + return {"imported_documents": all_data} + + +# Example usage: + +# urls_list = [ +# "https://developer.nvidia.com/blog/breaking-mlperf-training-records-with-nvidia-h100-gpus/", +# # "https://developer.nvidia.com/blog/beating-sota-inference-performance-on-nvidia-gpus-with-gpunet/", +# # "https://developer.nvidia.com/blog/new-mlperf-inference-network-division-showcases-infiniband-and-gpudirect-rdma-capabilities", +# # "https://developer.nvidia.com/blog/setting-new-records-in-mlperf-inference-v3-0-with-full-stack-optimizations-for-ai" +# ] +# +# collection_name = "test-tables" # Specify the MongoDB collection name +# process_urls_and_save(urls_list, collection_name, "nvidia") diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/pyproject.toml b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/pyproject.toml new file mode 100644 index 00000000..2bd70532 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/pyproject.toml @@ -0,0 +1,24 @@ +[build-system] +requires = [ "poetry-core",] +build-backend = "poetry.core.masonry.api" + +[tool.poetry] +name = "nv-mm-ingest-docs" +version = "0.0.1" +description = "" +authors = [] +readme = "README.md" + +[tool.langserve] +export_module = "nv_mm_ingest_docs" +export_attr = "chain" + +[tool.poetry.dependencies] +python = ">=3.9,<4.0" +langchain-core = "^0.3.15" +langchain-openai = ">=0.0.1" + +[tool.poetry.group.dev.dependencies] +langchain-cli = ">=0.0.4" +fastapi = "^0.104.0" +sse-starlette = "^1.6.5" diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/tests/__init__.py b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/pyproject.toml b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/pyproject.toml new file mode 100644 index 00000000..8c8a2c71 --- /dev/null +++ b/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/pyproject.toml @@ -0,0 +1,23 @@ +[tool.poetry] +name = "nv-mm-retrieval-app" +version = "0.1.0" +description = "" +authors = ["Your Name "] +readme = "README.md" +packages = [ + { include = "app" }, +] + +[tool.poetry.dependencies] +python = "^3.11" +uvicorn = "^0.23.2" +langserve = {extras = ["server"], version = ">=0.0.30"} +pydantic = "<2" + + +[tool.poetry.group.dev.dependencies] +langchain-cli = ">=0.0.15" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" diff --git a/RAG/examples/multimodal_retrieval/requirements.txt b/RAG/examples/multimodal_retrieval/requirements.txt new file mode 100644 index 00000000..7edf118e --- /dev/null +++ b/RAG/examples/multimodal_retrieval/requirements.txt @@ -0,0 +1,11 @@ +langchain +langchain-core +langchain-openai +langchain_nvidia_ai_endpoints +langchain_community +langchain-cli +langgraph-cli +langgraph-sdk +langgraph-api +langsmith +pymongo \ No newline at end of file From 1055aae7ea78c659f106f3bc737082a6f1bf98a9 Mon Sep 17 00:00:00 2001 From: fciannella Date: Tue, 7 Jan 2025 15:11:56 -0800 Subject: [PATCH 2/5] Fixed the images path in the README.md file --- RAG/examples/multimodal_retrieval/README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/RAG/examples/multimodal_retrieval/README.md b/RAG/examples/multimodal_retrieval/README.md index e02bef29..91d66dd4 100644 --- a/RAG/examples/multimodal_retrieval/README.md +++ b/RAG/examples/multimodal_retrieval/README.md @@ -4,9 +4,8 @@ This is a multimodal retrieval using long context. You will be able to ingest HT Here is an example: -[!assets/table_example.png](Finding an answer inside a table) - -[!assets/image_example.png](Finding an answer inside a chart) +![Finding an answer inside a table](assets/table_example.png) +![Finding an answer inside a chart](assets/image_example.png) The tool uses an openai vision model or an nvidia vision model (llama v3.2 90B) From d476f7b6d7b11529503800f37a50ea9de5b13c35 Mon Sep 17 00:00:00 2001 From: fciannella Date: Thu, 9 Jan 2025 17:15:14 -0800 Subject: [PATCH 3/5] Changed the location of the repository --- .../multimodal_retrieval/.dockerignore | 0 .../multimodal_retrieval/README.md | 0 .../multimodal_retrieval/__init__.py | 0 .../multimodal_retrieval/agent.py | 0 .../multimodal_retrieval/assets/image_example.png | Bin .../multimodal_retrieval/assets/table_example.png | Bin .../multimodal_retrieval/docker-compose.yml | 0 .../multimodal_retrieval/gradio/Dockerfile | 0 .../multimodal_retrieval/gradio/__init__.py | 0 .../multimodal_retrieval/gradio/gradio_interface.py | 0 .../multimodal_retrieval/gradio/requirements.txt | 0 .../multimodal_retrieval/ingest/Dockerfile | 0 .../multimodal_retrieval/ingest/requirements.txt | 0 .../multimodal_retrieval/langgraph.json | 0 .../nv-mm-retrieval-app/.gitignore | 0 .../nv-mm-retrieval-app/Dockerfile | 0 .../nv-mm-retrieval-app/README.md | 0 .../nv-mm-retrieval-app/app/__init__.py | 0 .../nv-mm-retrieval-app/app/server.py | 0 .../nv-mm-retrieval-app/packages/README.md | 0 .../packages/nv-mm-document-qa/.gitignore | 0 .../packages/nv-mm-document-qa/LICENSE | 0 .../packages/nv-mm-document-qa/README.md | 0 .../nv-mm-document-qa/nv_mm_document_qa/__init__.py | 0 .../nv-mm-document-qa/nv_mm_document_qa/chain.py | 0 .../nv_mm_document_qa/chain_full_collection.py | 0 .../nv_mm_document_qa/chain_sdg_qa.py | 0 .../nv_mm_document_qa/model_full_collection.py | 0 .../nv_mm_document_qa/model_images.py | 0 .../nv_mm_document_qa/model_metadata.py | 0 .../nv_mm_document_qa/model_sdg_qa.py | 0 .../nv_mm_document_qa/mongodb_utils.py | 0 .../packages/nv-mm-document-qa/pyproject.toml | 0 .../packages/nv-mm-document-qa/tests/__init__.py | 0 .../packages/nv-mm-images/.gitignore | 0 .../packages/nv-mm-images/LICENSE | 0 .../packages/nv-mm-images/README.md | 0 .../packages/nv-mm-images/nv_mm_images/__init__.py | 0 .../packages/nv-mm-images/nv_mm_images/chain.py | 0 .../packages/nv-mm-images/nv_mm_images/main.py | 0 .../packages/nv-mm-images/pyproject.toml | 0 .../packages/nv-mm-images/tests/__init__.py | 0 .../packages/nv-mm-ingest-docs/.gitignore | 0 .../packages/nv-mm-ingest-docs/LICENSE | 0 .../packages/nv-mm-ingest-docs/README.md | 0 .../nv-mm-ingest-docs/nv_mm_ingest_docs/__init__.py | 0 .../nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py | 0 .../nv_mm_ingest_docs/parse_image.py | 0 .../nv_mm_ingest_docs/url_import.py | 0 .../packages/nv-mm-ingest-docs/pyproject.toml | 0 .../packages/nv-mm-ingest-docs/tests/__init__.py | 0 .../nv-mm-retrieval-app/pyproject.toml | 0 .../multimodal_retrieval/requirements.txt | 0 53 files changed, 0 insertions(+), 0 deletions(-) rename {RAG/examples => community}/multimodal_retrieval/.dockerignore (100%) rename {RAG/examples => community}/multimodal_retrieval/README.md (100%) rename {RAG/examples => community}/multimodal_retrieval/__init__.py (100%) rename {RAG/examples => community}/multimodal_retrieval/agent.py (100%) rename {RAG/examples => community}/multimodal_retrieval/assets/image_example.png (100%) rename {RAG/examples => community}/multimodal_retrieval/assets/table_example.png (100%) rename {RAG/examples => community}/multimodal_retrieval/docker-compose.yml (100%) rename {RAG/examples => community}/multimodal_retrieval/gradio/Dockerfile (100%) rename {RAG/examples => community}/multimodal_retrieval/gradio/__init__.py (100%) rename {RAG/examples => community}/multimodal_retrieval/gradio/gradio_interface.py (100%) rename {RAG/examples => community}/multimodal_retrieval/gradio/requirements.txt (100%) rename {RAG/examples => community}/multimodal_retrieval/ingest/Dockerfile (100%) rename {RAG/examples => community}/multimodal_retrieval/ingest/requirements.txt (100%) rename {RAG/examples => community}/multimodal_retrieval/langgraph.json (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/.gitignore (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/Dockerfile (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/README.md (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/app/__init__.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/app/server.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/README.md (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/.gitignore (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/LICENSE (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/README.md (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/__init__.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_full_collection.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_images.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_metadata.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_sdg_qa.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/mongodb_utils.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/pyproject.toml (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/tests/__init__.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/.gitignore (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/LICENSE (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/README.md (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/__init__.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/chain.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/main.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/pyproject.toml (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/tests/__init__.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/.gitignore (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/LICENSE (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/README.md (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/__init__.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/url_import.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/pyproject.toml (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/tests/__init__.py (100%) rename {RAG/examples => community}/multimodal_retrieval/nv-mm-retrieval-app/pyproject.toml (100%) rename {RAG/examples => community}/multimodal_retrieval/requirements.txt (100%) diff --git a/RAG/examples/multimodal_retrieval/.dockerignore b/community/multimodal_retrieval/.dockerignore similarity index 100% rename from RAG/examples/multimodal_retrieval/.dockerignore rename to community/multimodal_retrieval/.dockerignore diff --git a/RAG/examples/multimodal_retrieval/README.md b/community/multimodal_retrieval/README.md similarity index 100% rename from RAG/examples/multimodal_retrieval/README.md rename to community/multimodal_retrieval/README.md diff --git a/RAG/examples/multimodal_retrieval/__init__.py b/community/multimodal_retrieval/__init__.py similarity index 100% rename from RAG/examples/multimodal_retrieval/__init__.py rename to community/multimodal_retrieval/__init__.py diff --git a/RAG/examples/multimodal_retrieval/agent.py b/community/multimodal_retrieval/agent.py similarity index 100% rename from RAG/examples/multimodal_retrieval/agent.py rename to community/multimodal_retrieval/agent.py diff --git a/RAG/examples/multimodal_retrieval/assets/image_example.png b/community/multimodal_retrieval/assets/image_example.png similarity index 100% rename from RAG/examples/multimodal_retrieval/assets/image_example.png rename to community/multimodal_retrieval/assets/image_example.png diff --git a/RAG/examples/multimodal_retrieval/assets/table_example.png b/community/multimodal_retrieval/assets/table_example.png similarity index 100% rename from RAG/examples/multimodal_retrieval/assets/table_example.png rename to community/multimodal_retrieval/assets/table_example.png diff --git a/RAG/examples/multimodal_retrieval/docker-compose.yml b/community/multimodal_retrieval/docker-compose.yml similarity index 100% rename from RAG/examples/multimodal_retrieval/docker-compose.yml rename to community/multimodal_retrieval/docker-compose.yml diff --git a/RAG/examples/multimodal_retrieval/gradio/Dockerfile b/community/multimodal_retrieval/gradio/Dockerfile similarity index 100% rename from RAG/examples/multimodal_retrieval/gradio/Dockerfile rename to community/multimodal_retrieval/gradio/Dockerfile diff --git a/RAG/examples/multimodal_retrieval/gradio/__init__.py b/community/multimodal_retrieval/gradio/__init__.py similarity index 100% rename from RAG/examples/multimodal_retrieval/gradio/__init__.py rename to community/multimodal_retrieval/gradio/__init__.py diff --git a/RAG/examples/multimodal_retrieval/gradio/gradio_interface.py b/community/multimodal_retrieval/gradio/gradio_interface.py similarity index 100% rename from RAG/examples/multimodal_retrieval/gradio/gradio_interface.py rename to community/multimodal_retrieval/gradio/gradio_interface.py diff --git a/RAG/examples/multimodal_retrieval/gradio/requirements.txt b/community/multimodal_retrieval/gradio/requirements.txt similarity index 100% rename from RAG/examples/multimodal_retrieval/gradio/requirements.txt rename to community/multimodal_retrieval/gradio/requirements.txt diff --git a/RAG/examples/multimodal_retrieval/ingest/Dockerfile b/community/multimodal_retrieval/ingest/Dockerfile similarity index 100% rename from RAG/examples/multimodal_retrieval/ingest/Dockerfile rename to community/multimodal_retrieval/ingest/Dockerfile diff --git a/RAG/examples/multimodal_retrieval/ingest/requirements.txt b/community/multimodal_retrieval/ingest/requirements.txt similarity index 100% rename from RAG/examples/multimodal_retrieval/ingest/requirements.txt rename to community/multimodal_retrieval/ingest/requirements.txt diff --git a/RAG/examples/multimodal_retrieval/langgraph.json b/community/multimodal_retrieval/langgraph.json similarity index 100% rename from RAG/examples/multimodal_retrieval/langgraph.json rename to community/multimodal_retrieval/langgraph.json diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/.gitignore b/community/multimodal_retrieval/nv-mm-retrieval-app/.gitignore similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/.gitignore rename to community/multimodal_retrieval/nv-mm-retrieval-app/.gitignore diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/Dockerfile b/community/multimodal_retrieval/nv-mm-retrieval-app/Dockerfile similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/Dockerfile rename to community/multimodal_retrieval/nv-mm-retrieval-app/Dockerfile diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/README.md b/community/multimodal_retrieval/nv-mm-retrieval-app/README.md similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/README.md rename to community/multimodal_retrieval/nv-mm-retrieval-app/README.md diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/app/__init__.py b/community/multimodal_retrieval/nv-mm-retrieval-app/app/__init__.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/app/__init__.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/app/__init__.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/app/server.py b/community/multimodal_retrieval/nv-mm-retrieval-app/app/server.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/app/server.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/app/server.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/README.md b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/README.md similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/README.md rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/README.md diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/.gitignore b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/.gitignore similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/.gitignore rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/.gitignore diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/LICENSE b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/LICENSE similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/LICENSE rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/LICENSE diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/README.md b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/README.md similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/README.md rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/README.md diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/__init__.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/__init__.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/__init__.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/__init__.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_full_collection.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_full_collection.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_full_collection.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_full_collection.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_images.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_images.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_images.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_images.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_metadata.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_metadata.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_metadata.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_metadata.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_sdg_qa.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_sdg_qa.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_sdg_qa.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/model_sdg_qa.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/mongodb_utils.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/mongodb_utils.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/mongodb_utils.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/mongodb_utils.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/pyproject.toml b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/pyproject.toml similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/pyproject.toml rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/pyproject.toml diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/tests/__init__.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/tests/__init__.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/tests/__init__.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/tests/__init__.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/.gitignore b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/.gitignore similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/.gitignore rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/.gitignore diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/LICENSE b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/LICENSE similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/LICENSE rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/LICENSE diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/README.md b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/README.md similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/README.md rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/README.md diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/__init__.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/__init__.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/__init__.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/__init__.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/chain.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/chain.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/chain.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/chain.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/main.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/main.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/main.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/nv_mm_images/main.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/pyproject.toml b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/pyproject.toml similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/pyproject.toml rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/pyproject.toml diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/tests/__init__.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/tests/__init__.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/tests/__init__.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-images/tests/__init__.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/.gitignore b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/.gitignore similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/.gitignore rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/.gitignore diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/LICENSE b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/LICENSE similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/LICENSE rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/LICENSE diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/README.md b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/README.md similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/README.md rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/README.md diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/__init__.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/__init__.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/__init__.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/__init__.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/url_import.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/url_import.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/url_import.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/url_import.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/pyproject.toml b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/pyproject.toml similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/pyproject.toml rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/pyproject.toml diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/tests/__init__.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/tests/__init__.py similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/tests/__init__.py rename to community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/tests/__init__.py diff --git a/RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/pyproject.toml b/community/multimodal_retrieval/nv-mm-retrieval-app/pyproject.toml similarity index 100% rename from RAG/examples/multimodal_retrieval/nv-mm-retrieval-app/pyproject.toml rename to community/multimodal_retrieval/nv-mm-retrieval-app/pyproject.toml diff --git a/RAG/examples/multimodal_retrieval/requirements.txt b/community/multimodal_retrieval/requirements.txt similarity index 100% rename from RAG/examples/multimodal_retrieval/requirements.txt rename to community/multimodal_retrieval/requirements.txt From 2d9a2b2129849a7382d72c9716a230ae9469dc1d Mon Sep 17 00:00:00 2001 From: fciannella Date: Mon, 13 Jan 2025 08:14:49 -0800 Subject: [PATCH 4/5] Removed non essential requirements --- community/multimodal_retrieval/requirements.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/community/multimodal_retrieval/requirements.txt b/community/multimodal_retrieval/requirements.txt index 7edf118e..ea9e1e44 100644 --- a/community/multimodal_retrieval/requirements.txt +++ b/community/multimodal_retrieval/requirements.txt @@ -3,9 +3,7 @@ langchain-core langchain-openai langchain_nvidia_ai_endpoints langchain_community -langchain-cli langgraph-cli langgraph-sdk langgraph-api -langsmith -pymongo \ No newline at end of file +pymongo From 443f1310ea663e6023af7c5191e98b9ca93dcad1 Mon Sep 17 00:00:00 2001 From: fciannella Date: Wed, 15 Jan 2025 12:11:03 -0800 Subject: [PATCH 5/5] Added env Variable for NVIDIA Text model Removed comments from Gradio Interface Removed stats collection from Gradio interface. --- community/multimodal_retrieval/README.md | 25 ++++--- community/multimodal_retrieval/agent.py | 17 +++-- .../multimodal_retrieval/docker-compose.yml | 8 +++ .../multimodal_retrieval/gradio/Dockerfile | 3 + .../gradio/gradio_interface.py | 68 +++++++------------ .../nv_mm_document_qa/chain.py | 49 ++++++++++--- .../chain_full_collection.py | 56 ++++++++++++--- .../nv_mm_document_qa/chain_sdg_qa.py | 34 +++++++++- .../nv_mm_ingest_docs/chain.py | 2 + .../nv_mm_ingest_docs/parse_image.py | 6 +- 10 files changed, 188 insertions(+), 80 deletions(-) diff --git a/community/multimodal_retrieval/README.md b/community/multimodal_retrieval/README.md index 91d66dd4..1fa24476 100644 --- a/community/multimodal_retrieval/README.md +++ b/community/multimodal_retrieval/README.md @@ -41,30 +41,35 @@ pip install -r requirements.txt ## Create the env files -You need to create two .env files (one for the docker compose and one for the langgraph agent) +You need to create two .env files (one for the docker compose and one for the langgraph agent). + +In the below we give the opportunity to use an NVIDIA text model for the pure text based tasks. + +For the Langgraph agent we leave the LLM model to be openai as at the moment it is providing better results with tools binding. ### .env Create a .env file in the root directory of this repository (the one with the `langgraph.json` and `docker-compose.yml` files) ```shell +# .env MONGO_INITDB_ROOT_USERNAME=admin MONGO_INITDB_ROOT_PASSWORD=secret -MONGO_HOST=mongodb +MONGO_HOST=localhost MONGO_PORT=27017 +AGENTS_PORT=2024 OPENAI_API_KEY= LANGCHAIN_API_KEY= LANGSMITH_API_KEY= LANGGRAPH_CLOUD_LICENSE_KEY= NVIDIA_API_KEY= IMAGES_HOST=localhost -AGENTS_HOST= -AGENTS_PORT=2024 +NVIDIA_VISION_MODEL=meta/llama-3.2-90b-vision-instruct +NVIDIA_TEXT_MODEL=meta/llama-3.3-70b-instruct +TEXT_MODEL_PROVIDER=nvidia ``` -Normally LANGCHAIN_API_KEY and LANGSMITH_API_KEY have the same value. - -AGENTS_HOST is the IP address of the host where you are running docker. It could be the IP address of your PC for instance. +Normally LANGCHAIN_API_KEY and LANGSMITH_API_KEY have the same value. ### .env.lg @@ -77,14 +82,16 @@ MONGO_INITDB_ROOT_USERNAME=admin MONGO_INITDB_ROOT_PASSWORD=secret MONGO_HOST=localhost MONGO_PORT=27017 +AGENTS_PORT=2024 OPENAI_API_KEY= LANGCHAIN_API_KEY= LANGSMITH_API_KEY= LANGGRAPH_CLOUD_LICENSE_KEY= NVIDIA_API_KEY= IMAGES_HOST=localhost -AGENTS_HOST=localhost -AGENTS_PORT=2024 +NVIDIA_VISION_MODEL=meta/llama-3.2-90b-vision-instruct +NVIDIA_TEXT_MODEL=meta/llama-3.3-70b-instruct +TEXT_MODEL_PROVIDER=nvidia ``` # Launch the mongodb and gradio services diff --git a/community/multimodal_retrieval/agent.py b/community/multimodal_retrieval/agent.py index 50af6be0..fb3d70d3 100644 --- a/community/multimodal_retrieval/agent.py +++ b/community/multimodal_retrieval/agent.py @@ -1,4 +1,5 @@ import os, json +import logging from pathlib import Path from datetime import datetime from langchain_core.tools import tool @@ -30,6 +31,15 @@ from nv_mm_document_qa.chain_full_collection import chain_document_expert +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s [%(levelname)s] %(message)s", + handlers=[ + logging.FileHandler("../app.log"), + logging.StreamHandler() + ] +) + # from fciannella_tme_ingest_docs.openai_parse_image import call_openai_api_for_image nvidia_ngc_api_key = os.environ["NVIDIA_API_KEY"] @@ -262,7 +272,7 @@ def __call__(self, state: State, config: RunnableConfig): if result.tool_calls: if result.tool_calls[0]["name"] == "query_document": doc_id = result.tool_calls[0]["args"]["document_id"] - print(f"This is the doc id after querying the document: {doc_id}") + logging.info(f"This is the doc id after querying the document: {doc_id}") state = {**state, "document_id": doc_id, "collection_name": collection_name, "images_host": images_host} break return {"messages": result, "document_id": doc_id} @@ -284,7 +294,6 @@ def __call__(self, state: State, config: RunnableConfig): ] ) - _tools = [ query_document, query_image, @@ -295,8 +304,6 @@ def __call__(self, state: State, config: RunnableConfig): part_1_assistant_runnable = primary_assistant_prompt | llm.bind_tools(_tools) - - builder = StateGraph(State) # Define nodes: these do the work @@ -330,7 +337,7 @@ def main(): config = { "configurable": { - "collection_name": "nvidia_eval_blogs_llama32", + "collection_name": "nvidia-docs", "vision_model": "nvidia" } } diff --git a/community/multimodal_retrieval/docker-compose.yml b/community/multimodal_retrieval/docker-compose.yml index fbdd1c99..dcb9179f 100644 --- a/community/multimodal_retrieval/docker-compose.yml +++ b/community/multimodal_retrieval/docker-compose.yml @@ -29,6 +29,11 @@ services: MONGO_HOST: mongodb MONGO_PORT: 27017 IMAGES_HOST: ${IMAGES_HOST} + NVIDIA_VISION_MODEL: ${NVIDIA_VISION_MODEL} + NVIDIA_TEXT_MODEL: ${NVIDIA_TEXT_MODEL} + TEXT_MODEL_PROVIDER: ${TEXT_MODEL_PROVIDER} + AGENTS_PORT: ${AGENTS_PORT} + AGENTS_HOST: ${AGENTS_HOST} gradio-service: @@ -52,6 +57,9 @@ services: - MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD} - AGENTS_PORT=${AGENTS_PORT} - AGENTS_HOST=${AGENTS_HOST} + - NVIDIA_VISION_MODEL=${NVIDIA_VISION_MODEL} + - NVIDIA_TEXT_MODEL=${NVIDIA_TEXT_MODEL} + - TEXT_MODEL_PROVIDER=${TEXT_MODEL_PROVIDER} volumes: mongodb-volume-nv-mm: diff --git a/community/multimodal_retrieval/gradio/Dockerfile b/community/multimodal_retrieval/gradio/Dockerfile index 870ca988..e635b5d3 100644 --- a/community/multimodal_retrieval/gradio/Dockerfile +++ b/community/multimodal_retrieval/gradio/Dockerfile @@ -9,5 +9,8 @@ RUN pip install -r requirements.txt COPY . . +RUN apt-get update +RUN apt-get install -y vim iputils-ping telnet net-tools + # Specify the Gradio script file ENTRYPOINT python gradio/gradio_interface.py \ No newline at end of file diff --git a/community/multimodal_retrieval/gradio/gradio_interface.py b/community/multimodal_retrieval/gradio/gradio_interface.py index 1e6261ec..314611dc 100644 --- a/community/multimodal_retrieval/gradio/gradio_interface.py +++ b/community/multimodal_retrieval/gradio/gradio_interface.py @@ -4,12 +4,13 @@ from pymongo import MongoClient from langgraph_sdk import get_client from datetime import datetime +import subprocess import asyncio # Import asyncio to run the async function # MongoDB connection setup -agents_host = os.environ["AGENTS_HOST"] + images_host = os.environ["IMAGES_HOST"] mongodb_user = os.environ["MONGO_INITDB_ROOT_USERNAME"] mongodb_password = os.environ["MONGO_INITDB_ROOT_PASSWORD"] @@ -18,6 +19,27 @@ db = client['tme_urls_db'] # Replace with your database name + +def get_default_gateway(): + try: + # Run the 'route -n' command + result = subprocess.run(['route', '-n'], stdout=subprocess.PIPE, text=True) + # Parse the output + for line in result.stdout.splitlines(): + parts = line.split() + # Look for the line with Destination as '0.0.0.0' + if len(parts) > 1 and parts[0] == '0.0.0.0': + gateway_ip = parts[1] # The Gateway IP is the second column + return gateway_ip + return None + except Exception as e: + print(f"Error occurred: {e}") + return None + + +agents_host = get_default_gateway() + + questions_list = [ "What is the Max-scale time-to-train records set on the NVIDIA platform and H100 Tensor Core GPUs in the case of Recommendation (DLRMv2) benchmark?", "What is the Max-scale time-to-train records set on the NVIDIA platform and H100 Tensor Core GPUs in the case of Object detection, heavyweight (Mask R-CNN)?", @@ -280,7 +302,8 @@ def format_statistics(statistics): async def run_stream_service(collection_name, document_id, question, vision_model): # Get the client from langgraph_sdk - agents_host = os.environ["AGENTS_HOST"] + # agents_host = os.environ["AGENTS_HOST"] + agents_host = get_default_gateway() agents_port = os.environ["AGENTS_PORT"] client = get_client(url=f"http://{agents_host}:{agents_port}") thread = await client.threads.create() @@ -464,23 +487,11 @@ async def run_and_compute_statistics(collection_name, document_id, question, vis stream_button = gr.Button("Run Stream Service") stream_output_answer = gr.Markdown() # Remove the label argument - # gr.Markdown("---") - # stream_output_stats = gr.Markdown() # Remove the label argument - def update_collection_dropdown_stream(): return gr.update(choices=get_collection_names()) # Ensure get_collection_names() returns a list - - # async def run_and_compute_statistics(collection_name, question, vision_model): - # # Return the vision model to the output field for testing - # return f"Vision Model: {vision_model}", "" - - async def run_and_compute_statistics(collection_name, question, vision_model): - # print(f"Collection Name: {collection_name}") - # print(f"Question: {question}") - # print(f"Vision Model: {vision_model}") final_answer, run_id = await run_stream_service(collection_name, None, question, vision_model) @@ -521,10 +532,6 @@ async def run_and_compute_statistics(collection_name, question, vision_model): stream_button = gr.Button("Run QA Agent") stream_output_answer = gr.Markdown(value="") # Remove the label argument - # gr.Markdown("---") - # stream_output_stats = gr.Markdown(value="") # Remove the label argument - - # Function to update the dropdown when clicked def update_collection_dropdown_stream(): return gr.update(choices=get_collection_names()) # Ensure get_collection_names() returns a list @@ -534,12 +541,6 @@ async def run_and_compute_statistics(collection_name, question, vision_model): print(collection_name, question, vision_model) final_answer, run_id = await run_stream_service(collection_name, None, question, vision_model) - # Introduce a delay of 3 seconds (adjust as needed) - await asyncio.sleep(3) - - # Now compute the statistics after the delay - statistics = compute_statistics(run_id) - # return final_answer, statistics return final_answer # When a question is selected, automatically fill the answer box @@ -550,21 +551,6 @@ async def run_and_compute_statistics(collection_name, question, vision_model): outputs=[answer_box, url_box] ) - # question_dropdown_stream.change( - # fn=lambda question: update_answer_dropdown(questions_list.index(question)), - # inputs=[question_dropdown_stream], - # outputs=[answer_box] - # ) - - def update_placeholders(): - return "Processing your request...", "Computing statistics..." - - stream_button.click( - fn=update_placeholders, - inputs=[], - outputs=[stream_output_answer], - queue=False # Ensure this update happens immediately without waiting - ) # Trigger both the streaming service and stats calculation when the button is clicked stream_button.click( fn=run_and_compute_statistics, @@ -582,9 +568,6 @@ def update_placeholders(): collection_dropdown = gr.Dropdown(label="Select Collection", choices=[], interactive=True) document_dropdown = gr.Dropdown(label="Select Document URL", choices=[]) - # Add a dropdown for vision model selection - # vision_model_dropdown = gr.Dropdown(label="Select Vision Model", choices=["openai", "nvidia"]) - vision_model_dropdown = gr.Dropdown( label="Select Vision Model", choices=["openai", "nvidia"], @@ -594,7 +577,6 @@ def update_placeholders(): generate_button = gr.Button("Generate SDG QA Pair") - # _qa_output = gr.Textbox(label="Response") # Removed the 'label' argument qa_output = gr.Markdown(label="Response") # Removed the 'label' argument diff --git a/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py index fdcac440..a63a62d1 100644 --- a/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py +++ b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain.py @@ -12,20 +12,49 @@ from nv_mm_document_qa.model_images import Image from nv_mm_document_qa.model_metadata import DocumentMetadata import os, json +import logging from uuid import uuid4 +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s [%(levelname)s] %(message)s", + handlers=[ + logging.FileHandler("../app.log"), + logging.StreamHandler() + ] +) + unique_id = uuid4().hex[0:8] -# llm = ChatOpenAI(model="gpt-4-1106-preview", temperature=0, max_tokens=3000) -llm = ChatOpenAI(model="gpt-4o", temperature=0, max_tokens=3500) -# llm = ChatNVIDIA( -# model="meta/llama-3.2-90b-vision-instruct", -# temperature=0, -# max_tokens=4095, -# top_p=1, -# frequency_penalty=0, -# presence_penalty=0, -# ) +nvidia_ngc_api_key = os.environ["NVIDIA_API_KEY"] +text_model_provider = os.environ["TEXT_MODEL_PROVIDER"] +nvidia_text_model = os.environ["NVIDIA_TEXT_MODEL"] + +llm_openai = ChatOpenAI( + model="gpt-4o", + temperature=0, + max_tokens=3500, +) + +llm_nvidia = ChatNVIDIA( + model=nvidia_text_model, + temperature=0, + max_tokens=4095, + top_p=1, + frequency_penalty=0, + presence_penalty=0, +) + +logging.info(f"We are using the following text model: {text_model_provider}") + +if text_model_provider == "nvidia": + llm = llm_nvidia + # print("I am using the NVIDIA Model") +elif text_model_provider == "openai": + llm = llm_openai + # print("I am using the OpenAI Model") +else: + llm = None system_template_metadata = """You are a helpful assistant specialized in extracting metadata from a document.""" diff --git a/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py index e7141556..34719903 100644 --- a/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py +++ b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_full_collection.py @@ -1,22 +1,58 @@ import os -import json -from typing_extensions import TypedDict from langchain_openai import ChatOpenAI -from langchain_community.chat_message_histories import RedisChatMessageHistory +from langchain_nvidia_ai_endpoints import ChatNVIDIA from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder from nv_mm_document_qa.model_full_collection import BestDocuments, Answer from nv_mm_document_qa.mongodb_utils import get_document_summaries_markdown - -from langchain.schema.runnable.history import RunnableWithMessageHistory from langchain.schema.runnable import RunnableParallel, RunnablePassthrough, RunnableLambda -from langchain.callbacks.tracers import LangChainTracer -from langchain.chains.openai_functions import ( - create_structured_output_chain, +import logging + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s [%(levelname)s] %(message)s", + handlers=[ + logging.FileHandler("../app.log"), + logging.StreamHandler() + ] +) + +nvidia_ngc_api_key = os.environ["NVIDIA_API_KEY"] +text_model_provider = os.environ["TEXT_MODEL_PROVIDER"] +nvidia_text_model = os.environ["NVIDIA_TEXT_MODEL"] + +llm_openai = ChatOpenAI( + model="gpt-4o", + temperature=0, + max_tokens=3500, +) + +llm_nvidia = ChatNVIDIA( + model=nvidia_text_model, + temperature=0, + max_tokens=3500, ) +if text_model_provider == "nvidia": + llm = llm_nvidia + # print("I am using the NVIDIA Model") +elif text_model_provider == "openai": + llm = llm_openai + # print("I am using the OpenAI Model") +else: + llm = None + +logging.info(f"We are using the following text model: {text_model_provider}") + +nvidia_vision_model = os.environ["NVIDIA_VISION_MODEL"] -# llm = ChatOpenAI(model="gpt-4-1106-preview", temperature=0, max_tokens=3000) -llm = ChatOpenAI(model="gpt-4o", temperature=0, max_tokens=3000) +if text_model_provider == "nvidia": + llm = llm_nvidia + # print("I am using the NVIDIA Model") +elif text_model_provider == "openai": + llm = llm_openai + # print("I am using the OpenAI Model") +else: + llm = None prompt_document_expert = ChatPromptTemplate.from_messages( [ diff --git a/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py index cf834cb9..6035588c 100644 --- a/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py +++ b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-document-qa/nv_mm_document_qa/chain_sdg_qa.py @@ -1,4 +1,5 @@ import os +import logging from langchain_openai import ChatOpenAI from langchain_nvidia_ai_endpoints import ChatNVIDIA from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder @@ -6,12 +7,41 @@ from nv_mm_document_qa.model_sdg_qa import SDGQA from nv_mm_document_qa.mongodb_utils import load_document_by_id +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s [%(levelname)s] %(message)s", + handlers=[ + logging.FileHandler("../app.log"), + logging.StreamHandler() + ] +) nvidia_ngc_api_key = os.environ["NVIDIA_API_KEY"] +text_model_provider = os.environ["TEXT_MODEL_PROVIDER"] +nvidia_text_model = os.environ["NVIDIA_TEXT_MODEL"] + +llm_openai = ChatOpenAI( + model="gpt-4o", + temperature=0, + max_tokens=3500, +) + +llm_nvidia = ChatNVIDIA( + model=nvidia_text_model, + temperature=0, + max_tokens=3500, +) -# llm = ChatOpenAI(model="gpt-4-1106-preview", temperature=0, max_tokens=3000) +if text_model_provider == "nvidia": + llm = llm_nvidia + # print("I am using the NVIDIA Model") +elif text_model_provider == "openai": + llm = llm_openai + # print("I am using the OpenAI Model") +else: + llm = None -llm = ChatOpenAI(model="gpt-4o", temperature=0.71, max_tokens=3000) +logging.info(f"We are using the following text model: {text_model_provider}") system_template = """ *You are an expert educator specializing in creating challenging and insightful questions for developers in the field of Tec43chincal Documentation.* diff --git a/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py index 4214a04d..59f4f137 100644 --- a/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py +++ b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/chain.py @@ -3,6 +3,8 @@ from nv_mm_document_qa.chain import chain_metadata from langchain_openai import ChatOpenAI + + llm = ChatOpenAI(model="gpt-4o", temperature=0, max_tokens=3000) def import_urls(input_data: dict) -> dict: diff --git a/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py index f9715f73..d863c3ba 100644 --- a/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py +++ b/community/multimodal_retrieval/nv-mm-retrieval-app/packages/nv-mm-ingest-docs/nv_mm_ingest_docs/parse_image.py @@ -3,6 +3,10 @@ from langchain_core.messages import HumanMessage, SystemMessage import requests import base64 +import os + +nvidia_vision_model = os.environ["NVIDIA_VISION_MODEL"] +nvidia_text_model = os.environ["NVIDIA_TEXT_MODEL"] system_template = """ Please describe this image in detail. @@ -22,7 +26,7 @@ def call_api_for_image(image_base64, system_template=system_template, backend_ll ) llm_nvidia = ChatNVIDIA( - model="meta/llama-3.2-90b-vision-instruct", + model=nvidia_vision_model, temperature=0, max_tokens=4095, top_p=1,