From 56119bd4b0f3a15155a349f74cf48de4889d95ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Gil=20L=C3=B3pez?= Date: Sun, 11 Aug 2024 12:59:06 +0200 Subject: [PATCH 1/2] Improve multimodal report generation notebook --- .../multimodal_report_generation.ipynb | 1438 +++++++++++++++-- 1 file changed, 1314 insertions(+), 124 deletions(-) diff --git a/examples/multimodal/multimodal_report_generation.ipynb b/examples/multimodal/multimodal_report_generation.ipynb index a789bf4..b966d75 100644 --- a/examples/multimodal/multimodal_report_generation.ipynb +++ b/examples/multimodal/multimodal_report_generation.ipynb @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "id": "70ccdd53-e68a-4199-aacb-cfe71ad1ff0b", "metadata": {}, "outputs": [], @@ -34,6 +34,26 @@ "nest_asyncio.apply()" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "3fe68fc4", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import openai\n", + "\n", + "# Configure OpenAI API key\n", + "os.environ[\"OPENAI_API_KEY\"] = \"your-api-key-here\" # Replace with actual API key\n", + "openai.api_key = os.getenv(\"OPENAI_API_KEY\")\n", + "\n", + "# Or\n", + "\n", + "from dotenv import load_dotenv\n", + "load_dotenv()" + ] + }, { "cell_type": "markdown", "id": "225c5556-a789-4386-a1ee-cce01dbeb6cf", @@ -48,7 +68,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "id": "0eabee1f-290a-4c85-b362-54f45c8559ae", "metadata": {}, "outputs": [], @@ -58,10 +78,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "id": "aaeb245c-730b-4c34-ad68-708fdde0e6cb", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:opentelemetry.instrumentation.instrumentor:Attempting to instrument while already instrumented\n" + ] + } + ], "source": [ "# setup Arize Phoenix for logging/observability\n", "import llama_index.core\n", @@ -86,14 +114,42 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "id": "8bce3407-a7d2-47e8-9eaf-ab297a94750c", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Ya existe el subdirectorio o el archivo data.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Ya existe el subdirectorio o el archivo data_images.\n", + "\"wget\" no se reconoce como un comando interno o externo,\n", + "programa o archivo por lotes ejecutable.\n" + ] + } + ], "source": [ - "!mkdir data\n", - "!mkdir data_images\n", - "!wget \"https://static.conocophillips.com/files/2023-conocophillips-aim-presentation.pdf\" -O data/conocophillips.pdf" + "import subprocess\n", + "\n", + "# Function to download files\n", + "def download_file(url, output_path):\n", + " try:\n", + " subprocess.run([\"wget\", url, \"-O\", output_path], check=True)\n", + " except subprocess.CalledProcessError:\n", + " print(\"wget is not available. Trying with curl...\")\n", + " subprocess.run([\"curl\", \"-L\", url, \"-o\", output_path], check=True)\n", + "\n", + "# Create necessary directories and download the file\n", + "os.makedirs(\"data\", exist_ok=True)\n", + "os.makedirs(\"data_images\", exist_ok=True)\n", + "download_file(\"https://static.conocophillips.com/files/2023-conocophillips-aim-presentation.pdf\", \"data/conocophillips.pdf\")\n" ] }, { @@ -108,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 38, "id": "16e2071d-bbc2-4707-8ae7-cb4e1fecafd3", "metadata": {}, "outputs": [], @@ -138,7 +194,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 40, "id": "570089e5-238a-4dcc-af65-96e7393c2b4d", "metadata": {}, "outputs": [], @@ -154,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 41, "id": "ef82a985-4088-4bb7-9a21-0318e1b9207d", "metadata": {}, "outputs": [ @@ -162,79 +218,972 @@ "name": "stdout", "output_type": "stream", "text": [ - "Parsing PDF file...\n", - "Started parsing the file under job_id 412ac275-abe2-4585-be43-5680e7754740\n" + "Parsing slide deck...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: POST https://api.cloud.llamaindex.ai/api/parsing/upload \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Started parsing the file under job_id 4a3feff4-396d-4fea-995c-3fb574ff51fc\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/json \"HTTP/1.1 200 OK\"\n" + ] + } + ], + "source": [ + "print(f\"Parsing slide deck...\")\n", + "md_json_objs = parser.get_json_result(\"data/conocophillips.pdf\")\n", + "md_json_list = md_json_objs[0][\"pages\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "5318fb7b-fe6a-4a8a-b82e-4ed7b4512c37", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# Commitment to Disciplined Reinvestment Rate\n", + "\n", + "Disciplined Reinvestment Rate is the Foundation for Superior Returns on and of Capital, while Driving Durable CFO Growth\n", + "\n", + "| Metric | Value |\n", + "|--------|-------|\n", + "| 10-Year Reinvestment Rate | ~50% |\n", + "| CFO CAGR 2024-2032 | ~6% |\n", + "| Mid-Cycle Planning Price | at $60/BBL WTI |\n", + "\n", + "| Period | Industry Growth Focus | ConocoPhillips Strategy Reset | Reinvestment Rate |\n", + "|--------|------------------------|-------------------------------|-------------------|\n", + "| 2012-2016 | >100% Reinvestment Rate | - | ~$75/BBL WTI Average |\n", + "| 2017-2022 | - | <60% Reinvestment Rate | ~$63/BBL WTI Average |\n", + "| 2023E | - | - | at $80/BBL WTI |\n", + "| 2024-2028 | - | - | at $60/BBL WTI (with $80/BBL WTI option shown) |\n", + "| 2029-2032 | - | - | at $60/BBL WTI (with $80/BBL WTI option shown) |\n", + "\n", + "*Chart shows ConocoPhillips Average Annual Reinvestment Rate (%) over time, with historic rates in grey and projected rates in blue.*\n", + "\n", + "Reinvestment rate and cash from operations (CFO) are non-GAAP measures. Definitions and reconciliations are included in the Appendix.\n" + ] + } + ], + "source": [ + "print(md_json_list[10][\"md\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "7a46a73e-c6e2-4b0b-bd10-31b0d3e4b70f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dict_keys(['page', 'md', 'images', 'items'])\n" + ] + } + ], + "source": [ + "print(md_json_list[1].keys())" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "eeadb16c-97eb-4622-9551-b34d7f90d72f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 1: [{'name': 'page-0.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-0.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 2: [{'name': 'page-1.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-1.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 3: [{'name': 'page-2.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-2.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 4: [{'name': 'page-3.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-3.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 5: [{'name': 'page-4.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-4.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 6: [{'name': 'page-5.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-5.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 7: [{'name': 'page-6.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-6.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 8: [{'name': 'page-7.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-7.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 9: [{'name': 'page-8.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-8.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 10: [{'name': 'page-9.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-9.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 11: [{'name': 'page-10.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-10.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 12: [{'name': 'page-11.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-11.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 13: [{'name': 'page-12.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-12.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 14: [{'name': 'page-13.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-13.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 15: [{'name': 'page-14.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-14.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 16: [{'name': 'page-15.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-15.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 17: [{'name': 'page-16.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-16.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 18: [{'name': 'page-17.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-17.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 19: [{'name': 'page-18.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-18.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 20: [{'name': 'page-19.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-19.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 21: [{'name': 'page-20.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-20.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 22: [{'name': 'page-21.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-21.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 23: [{'name': 'page-22.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-22.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 24: [{'name': 'page-23.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-23.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 25: [{'name': 'page-24.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-24.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 26: [{'name': 'page-25.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-25.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 27: [{'name': 'page-26.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-26.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 28: [{'name': 'page-27.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-27.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 29: [{'name': 'page-28.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-28.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 30: [{'name': 'page-29.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-29.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 31: [{'name': 'page-30.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-30.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 32: [{'name': 'page-31.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-31.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 33: [{'name': 'page-32.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-32.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 34: [{'name': 'page-33.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-33.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 35: [{'name': 'page-34.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-34.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 36: [{'name': 'page-35.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-35.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 37: [{'name': 'page-36.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-36.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 38: [{'name': 'page-37.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-37.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 39: [{'name': 'page-38.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-38.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 40: [{'name': 'page-39.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-39.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 41: [{'name': 'page-40.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-40.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 42: [{'name': 'page-41.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-41.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 43: [{'name': 'page-42.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-42.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 44: [{'name': 'page-43.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-43.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 45: [{'name': 'page-44.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-44.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 46: [{'name': 'page-45.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-45.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 47: [{'name': 'page-46.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-46.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 48: [{'name': 'page-47.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-47.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 49: [{'name': 'page-48.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-48.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 50: [{'name': 'page-49.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-49.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 51: [{'name': 'page-50.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" ] - } - ], - "source": [ - "print(f\"Parsing slide deck...\")\n", - "md_json_objs = parser.get_json_result(\"data/conocophillips.pdf\")\n", - "md_json_list = md_json_objs[0][\"pages\"]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5318fb7b-fe6a-4a8a-b82e-4ed7b4512c37", - "metadata": {}, - "outputs": [ + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-50.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ - "# Commitment to Disciplined Reinvestment Rate\n", - "\n", - "Disciplined Reinvestment Rate is the Foundation for Superior Returns on and of Capital, while Driving Durable CFO Growth\n", - "\n", - "| Metric | Value |\n", - "|--------|-------|\n", - "| 10-Year Reinvestment Rate | ~50% |\n", - "| CFO CAGR 2024-2032 | ~6% |\n", - "| Mid-Cycle Planning Price | at $60/BBL WTI |\n", - "\n", - "| Period | Industry Growth Focus | ConocoPhillips Strategy Reset | Reinvestment Rate |\n", - "|--------|------------------------|-------------------------------|-------------------|\n", - "| 2012-2016 | >100% Reinvestment Rate | - | ~$75/BBL WTI Average |\n", - "| 2017-2022 | - | <60% Reinvestment Rate | ~$63/BBL WTI Average |\n", - "| 2023E | - | - | at $80/BBL WTI |\n", - "| 2024-2028 | - | - | at $60/BBL WTI (with $80/BBL WTI option shown) |\n", - "| 2029-2032 | - | - | at $60/BBL WTI (with $80/BBL WTI option shown) |\n", - "\n", - "*Chart shows ConocoPhillips Average Annual Reinvestment Rate (%) over time, with historic rates in grey and projected rates in blue.*\n", - "\n", - "Reinvestment rate and cash from operations (CFO) are non-GAAP measures. Definitions and reconciliations are included in the Appendix.\n" + "> Image for page 52: [{'name': 'page-51.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" ] - } - ], - "source": [ - "print(md_json_list[10][\"md\"])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7a46a73e-c6e2-4b0b-bd10-31b0d3e4b70f", - "metadata": {}, - "outputs": [ + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-51.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ - "dict_keys(['page', 'md', 'images', 'items'])\n" + "> Image for page 53: [{'name': 'page-52.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-52.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 54: [{'name': 'page-53.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-53.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 55: [{'name': 'page-54.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-54.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 56: [{'name': 'page-55.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-55.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 57: [{'name': 'page-56.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-56.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 58: [{'name': 'page-57.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-57.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 59: [{'name': 'page-58.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-58.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 60: [{'name': 'page-59.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-59.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 61: [{'name': 'page-60.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-60.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 62: [{'name': 'page-61.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/4a3feff4-396d-4fea-995c-3fb574ff51fc/result/image/page-61.jpg \"HTTP/1.1 200 OK\"\n" ] } ], - "source": [ - "print(md_json_list[1].keys())" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "eeadb16c-97eb-4622-9551-b34d7f90d72f", - "metadata": {}, - "outputs": [], "source": [ "image_dicts = parser.get_images(md_json_objs, download_path=\"data_images\")" ] @@ -261,7 +1210,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 45, "id": "18c24174-05ce-417f-8dd2-79c3f375db03", "metadata": {}, "outputs": [], @@ -272,7 +1221,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 46, "id": "8e331dfe-a627-4e23-8c57-70ab1d9342e4", "metadata": {}, "outputs": [], @@ -297,7 +1246,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 47, "id": "346fe5ef-171e-4a54-9084-7a7805103a13", "metadata": {}, "outputs": [], @@ -305,33 +1254,31 @@ "from copy import deepcopy\n", "from pathlib import Path\n", "\n", - "\n", "# attach image metadata to the text nodes\n", "def get_text_nodes(json_dicts, image_dir=None):\n", - " \"\"\"Split docs into nodes, by separator.\"\"\"\n", " nodes = []\n", - "\n", " image_files = _get_sorted_image_files(image_dir) if image_dir is not None else None\n", - " md_texts = [d[\"md\"] for d in json_dicts]\n", + " md_texts = [d.get(\"md\", \"\") for d in json_dicts] # Use get() with a default value\n", "\n", " for idx, md_text in enumerate(md_texts):\n", - " chunk_metadata = {\"page_num\": idx + 1}\n", - " if image_files is not None:\n", - " image_file = image_files[idx]\n", - " chunk_metadata[\"image_path\"] = str(image_file)\n", - " chunk_metadata[\"parsed_text_markdown\"] = md_text\n", - " node = TextNode(\n", - " text=\"\",\n", - " metadata=chunk_metadata,\n", - " )\n", - " nodes.append(node)\n", + " if md_text: # Check if the text is not empty\n", + " chunk_metadata = {\"page_num\": idx + 1}\n", + " if image_files is not None and idx < len(image_files):\n", + " image_file = image_files[idx]\n", + " chunk_metadata[\"image_path\"] = str(image_file)\n", + " chunk_metadata[\"parsed_text_markdown\"] = md_text\n", + " node = TextNode(\n", + " text=md_text,\n", + " metadata=chunk_metadata,\n", + " )\n", + " nodes.append(node)\n", "\n", " return nodes" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 48, "id": "f591669c-5a8e-491d-9cef-0b754abbf26f", "metadata": {}, "outputs": [], @@ -342,7 +1289,89 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 49, + "id": "a8bf1436", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[TextNode(id_='15117b1b-0927-4302-8750-bd8ac174418d', embedding=None, metadata={'page_num': 1, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-0.jpg', 'parsed_text_markdown': '# 2023 Analyst & Investor Meeting\\n\\n[ConocoPhillips logo]'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# 2023 Analyst & Investor Meeting\\n\\n[ConocoPhillips logo]', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='913c7210-9945-4e2e-b744-e18807e6214f', embedding=None, metadata={'page_num': 2, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-1.jpg', 'parsed_text_markdown': \"# Today's Agenda\\n\\n| Topic | Speaker | Position |\\n|-------|---------|----------|\\n| Opening | Ryan Lance | Chairman and CEO |\\n| Strategy and Portfolio | Dominic Macklon | EVP, Strategy, Sustainability and Technology |\\n| Alaska and International | Andy O'Brien | SVP, Global Operations |\\n| LNG and Commercial | Bill Bullock | EVP and CFO |\\n| Lower 48 | Nick Olds | EVP, Lower 48 |\\n| Financial Plan | Bill Bullock | EVP and CFO |\\n| Closing | Ryan Lance | Chairman and CEO |\\n| 10-Minute Break | | |\\n| Q&A Session | | |\"}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text=\"# Today's Agenda\\n\\n| Topic | Speaker | Position |\\n|-------|---------|----------|\\n| Opening | Ryan Lance | Chairman and CEO |\\n| Strategy and Portfolio | Dominic Macklon | EVP, Strategy, Sustainability and Technology |\\n| Alaska and International | Andy O'Brien | SVP, Global Operations |\\n| LNG and Commercial | Bill Bullock | EVP and CFO |\\n| Lower 48 | Nick Olds | EVP, Lower 48 |\\n| Financial Plan | Bill Bullock | EVP and CFO |\\n| Closing | Ryan Lance | Chairman and CEO |\\n| 10-Minute Break | | |\\n| Q&A Session | | |\", mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='54418998-8991-4c77-8ef3-ecd9d94ce348', embedding=None, metadata={'page_num': 3, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-2.jpg', 'parsed_text_markdown': '# Cautionary Statement\\n\\nThis presentation provides management\\'s current operational plan for ConocoPhillips over roughly the next decade, for the assets currently in our portfolio, and is subject to multiple assumptions, including, unless otherwise specifically noted:\\n• an oil price of $60/BBL West Texas Intermediate in 2022 dollars, escalating at 2.25% annually;\\n• an oil price of $65/BBL Brent in 2022 dollars, escalating at 2.25% annually;\\n• a gas price of $3.75/MMBTU Henry Hub in 2022 dollars, escalating at 2.25% annually;\\n• an international gas price of $8/MMBTU Title Transfer Facility & Japan Korea Marker in 2022 dollars, escalating at 2.25% annually;\\n• cost and capital escalation in line with price escalation; planning case at $60/BBL WTI assumes capital de-escalation from levels observed in 2022;\\n• all production compound annual growth rates (CAGR) are calculated for the 10-year period 2023 – 2032;\\n• inclusion of carbon tax in the cash flow forecasts for assets where a tax is currently assessed. If no carbon tax exists for the asset, it is not included in the cash flow forecasts;\\n• Cost of Supply displayed in WTI, includes carbon tax where carbon policy exists and a proxy carbon price for assets without existing carbon policies. Please refer to the Cost of Supply definition in the Appendix for additional information on how carbon costs are included in the Cost of Supply calculation.\\n\\nAs a result, this presentation contains forward-looking statements as defined under the federal securities laws. Forward-looking statements relate to future events, plans and anticipated results of operations, business strategies, and other aspects of our operations or operating results. Graphics that project into a future date constitute forward-looking statements. Also, words and phrases such as \"anticipate,\" \"estimate,\" \"believe,\" \"budget,\" \"continue,\" \"could,\" \"intend,\" \"may,\" \"plan,\" \"potential,\" \"predict,\" \"seek,\" \"should,\" \"will,\" \"would,\" \"expect,\" \"objective,\" \"projection,\" \"forecast,\" \"goal,\" \"guidance,\" \"outlook,\" \"effort,\" \"target\" and other similar words can be used to identify forward-looking statements. However, the absence of these words does not mean that the statements are not forward-looking.\\n\\nWhere, in any forward-looking statement, the company expresses an expectation or belief as to future results, such expectation or belief is based on management\\'s good faith plans and objectives under the assumptions set forth above (unless noted otherwise) and believed to be reasonable as of April 12, 2023, the date of this presentation. These statements are not guarantees of future performance and involve certain risks and uncertainties and are subject to change as management is continually assessing factors beyond our control that may or may not be currently known. Given the foregoing and the extended time horizon of this presentation, actual outcomes and results will likely differ from what is expressed or forecast in the forward-looking statements, and such differences may be material. Factors that could cause actual results or events to differ materially from what is presented include changes in commodity prices, including a prolonged decline in these prices relative to historical or future expected levels; global and regional changes in the demand, supply, prices, differentials or other market conditions affecting oil and gas, including changes resulting from any ongoing military conflict, including the conflict between Russia and Ukraine and the global response to such conflict, security threats on facilities and infrastructure, or from a public health crisis or from the imposition or lifting of crude oil production quotas or other actions that might be imposed by OPEC and other producing countries and the resulting company or third-party actions in response to such changes; insufficient liquidity or other factors, such as those listed herein, that could impact our ability to repurchase shares and declare and pay dividends such that we suspend our share repurchase program and reduce, suspend, or totally eliminate dividend payments in the future whether variable or fixed; changes in expected levels of oil and gas reserves or production; potential failures or delays in achieving expected reserve or production levels from existing and future oil and gas developments, including due to operating hazards, drilling risks or unsuccessful exploratory activities; unexpected cost increases, inflationary pressures or technical difficulties in constructing, maintaining or modifying company facilities; legislative and regulatory initiatives addressing global climate change or other environmental concerns; public health crises, including pandemics (such as COVID-19) and epidemics and any impacts or related company or governmental policies or actions; investment in and development of competing or alternative energy sources; potential failures or delays in delivering on our current or future low-carbon strategy, including our inability to develop new technologies; disruptions or interruptions impacting the transportation for our oil and gas production; international monetary conditions and exchange rate fluctuations; changes in international trade relationships or governmental policies, including the imposition of price caps or the imposition of trade restrictions or tariffs on any materials or products (such as aluminum and steel) used in the operation of our business, including any sanctions imposed as a result of any ongoing military conflict, including the conflict between Russia and Ukraine; our ability to collect payments when due from the government of Venezuela or PDVSA; our ability to complete any announced or any future dispositions or acquisitions on time, if at all; the possibility that regulatory approvals for any announced or any future dispositions or acquisitions will not be received on a timely basis, if at all, or that such approvals may require modification to the terms of the transactions or our remaining business; business disruptions following any announced or future dispositions or acquisitions, including the diversion of management time and attention; the ability to deploy net proceeds from our announced or any future dispositions in the manner and timeframe we anticipate, if at all; potential liability for remedial actions under existing or future environmental regulations; potential liability resulting from pending or future litigation, including litigation related directly or indirectly to our transaction with Concho Resources Inc.; the impact of competition and consolidation in the oil and gas industry; limited access to capital or significantly higher cost of capital related to illiquidity or uncertainty in the domestic or international financial markets; general domestic and international economic and political conditions or developments, including as a result of any ongoing military conflict, including the conflict between Russia and Ukraine; changes in fiscal regime or tax, environmental and other laws applicable to our business; and disruptions resulting from accidents, extraordinary weather events, civil unrest, political events, war, terrorism, cyber attacks or information technology failures, constraints or disruptions; and other economic, business, competitive and/or regulatory factors affecting our business generally as set forth in our filings with the Securities and Exchange Commission. Unless legally required, ConocoPhillips expressly disclaims any obligation to update any forward-looking statements, whether as a result of new information, future events or otherwise. We assume no duty to update these statements as of any future date and neither future distribution of this material nor the continued availability of this material in archive form on our website should be deemed to constitute an update or re-affirmation of these figures as of any future date. Any future update of these figures will be provided only through a public disclosure indicating that fact.\\n\\nUse of Non-GAAP Financial Information – This presentation includes non-GAAP financial measures, which help facilitate comparison of company operating performance across periods and with peer companies. Any historical non-GAAP measures included herein will be accompanied by a reconciliation to the nearest corresponding GAAP measure both at the end of this presentation and on our website at www.conocophillips.com/nongaap. For forward-looking non-GAAP measures, we are unable to provide a reconciliation to the most comparable GAAP financial measures because the information needed to reconcile these measures is dependent on future events, many of which are outside management\\'s control as described above. Additionally, estimating such GAAP measures and providing a meaningful reconciliation consistent with our accounting policies for future periods is extremely difficult and requires a level of precision that is unavailable for these future periods and cannot be accomplished without unreasonable effort. Forward-looking non-GAAP measures are estimated consistent with the relevant definitions and assumptions.\\n\\nCautionary Note to U.S. Investors – The SEC permits oil and gas companies, in their filings with the SEC, to disclose only proved, probable and possible reserves. We use terms and metrics such as \"resource\" or \"Estimated Ultimate Recovery (EUR)\" in this presentation that we are prohibited from using in filings with the SEC under the SEC\\'s guidelines. U.S. investors are urged to consider closely the oil and gas disclosures in our Form 10-K and other reports and filings with the SEC. Copies are available from the SEC and from the ConocoPhillips website.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Cautionary Statement\\n\\nThis presentation provides management\\'s current operational plan for ConocoPhillips over roughly the next decade, for the assets currently in our portfolio, and is subject to multiple assumptions, including, unless otherwise specifically noted:\\n• an oil price of $60/BBL West Texas Intermediate in 2022 dollars, escalating at 2.25% annually;\\n• an oil price of $65/BBL Brent in 2022 dollars, escalating at 2.25% annually;\\n• a gas price of $3.75/MMBTU Henry Hub in 2022 dollars, escalating at 2.25% annually;\\n• an international gas price of $8/MMBTU Title Transfer Facility & Japan Korea Marker in 2022 dollars, escalating at 2.25% annually;\\n• cost and capital escalation in line with price escalation; planning case at $60/BBL WTI assumes capital de-escalation from levels observed in 2022;\\n• all production compound annual growth rates (CAGR) are calculated for the 10-year period 2023 – 2032;\\n• inclusion of carbon tax in the cash flow forecasts for assets where a tax is currently assessed. If no carbon tax exists for the asset, it is not included in the cash flow forecasts;\\n• Cost of Supply displayed in WTI, includes carbon tax where carbon policy exists and a proxy carbon price for assets without existing carbon policies. Please refer to the Cost of Supply definition in the Appendix for additional information on how carbon costs are included in the Cost of Supply calculation.\\n\\nAs a result, this presentation contains forward-looking statements as defined under the federal securities laws. Forward-looking statements relate to future events, plans and anticipated results of operations, business strategies, and other aspects of our operations or operating results. Graphics that project into a future date constitute forward-looking statements. Also, words and phrases such as \"anticipate,\" \"estimate,\" \"believe,\" \"budget,\" \"continue,\" \"could,\" \"intend,\" \"may,\" \"plan,\" \"potential,\" \"predict,\" \"seek,\" \"should,\" \"will,\" \"would,\" \"expect,\" \"objective,\" \"projection,\" \"forecast,\" \"goal,\" \"guidance,\" \"outlook,\" \"effort,\" \"target\" and other similar words can be used to identify forward-looking statements. However, the absence of these words does not mean that the statements are not forward-looking.\\n\\nWhere, in any forward-looking statement, the company expresses an expectation or belief as to future results, such expectation or belief is based on management\\'s good faith plans and objectives under the assumptions set forth above (unless noted otherwise) and believed to be reasonable as of April 12, 2023, the date of this presentation. These statements are not guarantees of future performance and involve certain risks and uncertainties and are subject to change as management is continually assessing factors beyond our control that may or may not be currently known. Given the foregoing and the extended time horizon of this presentation, actual outcomes and results will likely differ from what is expressed or forecast in the forward-looking statements, and such differences may be material. Factors that could cause actual results or events to differ materially from what is presented include changes in commodity prices, including a prolonged decline in these prices relative to historical or future expected levels; global and regional changes in the demand, supply, prices, differentials or other market conditions affecting oil and gas, including changes resulting from any ongoing military conflict, including the conflict between Russia and Ukraine and the global response to such conflict, security threats on facilities and infrastructure, or from a public health crisis or from the imposition or lifting of crude oil production quotas or other actions that might be imposed by OPEC and other producing countries and the resulting company or third-party actions in response to such changes; insufficient liquidity or other factors, such as those listed herein, that could impact our ability to repurchase shares and declare and pay dividends such that we suspend our share repurchase program and reduce, suspend, or totally eliminate dividend payments in the future whether variable or fixed; changes in expected levels of oil and gas reserves or production; potential failures or delays in achieving expected reserve or production levels from existing and future oil and gas developments, including due to operating hazards, drilling risks or unsuccessful exploratory activities; unexpected cost increases, inflationary pressures or technical difficulties in constructing, maintaining or modifying company facilities; legislative and regulatory initiatives addressing global climate change or other environmental concerns; public health crises, including pandemics (such as COVID-19) and epidemics and any impacts or related company or governmental policies or actions; investment in and development of competing or alternative energy sources; potential failures or delays in delivering on our current or future low-carbon strategy, including our inability to develop new technologies; disruptions or interruptions impacting the transportation for our oil and gas production; international monetary conditions and exchange rate fluctuations; changes in international trade relationships or governmental policies, including the imposition of price caps or the imposition of trade restrictions or tariffs on any materials or products (such as aluminum and steel) used in the operation of our business, including any sanctions imposed as a result of any ongoing military conflict, including the conflict between Russia and Ukraine; our ability to collect payments when due from the government of Venezuela or PDVSA; our ability to complete any announced or any future dispositions or acquisitions on time, if at all; the possibility that regulatory approvals for any announced or any future dispositions or acquisitions will not be received on a timely basis, if at all, or that such approvals may require modification to the terms of the transactions or our remaining business; business disruptions following any announced or future dispositions or acquisitions, including the diversion of management time and attention; the ability to deploy net proceeds from our announced or any future dispositions in the manner and timeframe we anticipate, if at all; potential liability for remedial actions under existing or future environmental regulations; potential liability resulting from pending or future litigation, including litigation related directly or indirectly to our transaction with Concho Resources Inc.; the impact of competition and consolidation in the oil and gas industry; limited access to capital or significantly higher cost of capital related to illiquidity or uncertainty in the domestic or international financial markets; general domestic and international economic and political conditions or developments, including as a result of any ongoing military conflict, including the conflict between Russia and Ukraine; changes in fiscal regime or tax, environmental and other laws applicable to our business; and disruptions resulting from accidents, extraordinary weather events, civil unrest, political events, war, terrorism, cyber attacks or information technology failures, constraints or disruptions; and other economic, business, competitive and/or regulatory factors affecting our business generally as set forth in our filings with the Securities and Exchange Commission. Unless legally required, ConocoPhillips expressly disclaims any obligation to update any forward-looking statements, whether as a result of new information, future events or otherwise. We assume no duty to update these statements as of any future date and neither future distribution of this material nor the continued availability of this material in archive form on our website should be deemed to constitute an update or re-affirmation of these figures as of any future date. Any future update of these figures will be provided only through a public disclosure indicating that fact.\\n\\nUse of Non-GAAP Financial Information – This presentation includes non-GAAP financial measures, which help facilitate comparison of company operating performance across periods and with peer companies. Any historical non-GAAP measures included herein will be accompanied by a reconciliation to the nearest corresponding GAAP measure both at the end of this presentation and on our website at www.conocophillips.com/nongaap. For forward-looking non-GAAP measures, we are unable to provide a reconciliation to the most comparable GAAP financial measures because the information needed to reconcile these measures is dependent on future events, many of which are outside management\\'s control as described above. Additionally, estimating such GAAP measures and providing a meaningful reconciliation consistent with our accounting policies for future periods is extremely difficult and requires a level of precision that is unavailable for these future periods and cannot be accomplished without unreasonable effort. Forward-looking non-GAAP measures are estimated consistent with the relevant definitions and assumptions.\\n\\nCautionary Note to U.S. Investors – The SEC permits oil and gas companies, in their filings with the SEC, to disclose only proved, probable and possible reserves. We use terms and metrics such as \"resource\" or \"Estimated Ultimate Recovery (EUR)\" in this presentation that we are prohibited from using in filings with the SEC under the SEC\\'s guidelines. U.S. investors are urged to consider closely the oil and gas disclosures in our Form 10-K and other reports and filings with the SEC. Copies are available from the SEC and from the ConocoPhillips website.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='4a133afe-0271-4292-a14f-60c5805e8a8a', embedding=None, metadata={'page_num': 4, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-3.jpg', 'parsed_text_markdown': '# Opening\\n\\nRyan Lance\\nChairman and CEO'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Opening\\n\\nRyan Lance\\nChairman and CEO', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='59d32557-eaa0-4caf-94bd-4222b9311ac2', embedding=None, metadata={'page_num': 5, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-4.jpg', 'parsed_text_markdown': \"# ConocoPhillips Remains the Must-Own E&P Company\\n\\n## The Macro\\n\\n| Oil Price ($/BBL WTI) |\\n|------------------------|\\n| [Graph showing oil price fluctuations from 2019 to 2024+] |\\n| $60/BBL WTI Mid-Cycle Planning Price |\\n\\n## What You'll Hear Today\\n\\n- We are committed to delivering superior returns on and of capital through the cycles\\n\\n- We have a deep, durable and diverse portfolio\\n\\n- We are progressing our 2050 Net-Zero ambition and accelerating our 2030 GHG emissions intensity reduction target\"}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text=\"# ConocoPhillips Remains the Must-Own E&P Company\\n\\n## The Macro\\n\\n| Oil Price ($/BBL WTI) |\\n|------------------------|\\n| [Graph showing oil price fluctuations from 2019 to 2024+] |\\n| $60/BBL WTI Mid-Cycle Planning Price |\\n\\n## What You'll Hear Today\\n\\n- We are committed to delivering superior returns on and of capital through the cycles\\n\\n- We have a deep, durable and diverse portfolio\\n\\n- We are progressing our 2050 Net-Zero ambition and accelerating our 2030 GHG emissions intensity reduction target\", mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='14e1a3f9-7c23-4308-9293-2cc0abec5a89', embedding=None, metadata={'page_num': 6, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-5.jpg', 'parsed_text_markdown': \"# We Are Committed to Our Returns-Focused Value Proposition\\n\\n## Triple Mandate Aligned to Business Realities\\n\\n| Segment | Description |\\n|---------|-------------|\\n| Meet Transition Pathway Demand | |\\n| Deliver Competitive Returns | |\\n| Achieve Net-Zero Emissions Ambition¹ | |\\n\\n## Foundational Principles\\n\\n| Principle | Description |\\n|-----------|-------------|\\n| Balance Sheet Strength | |\\n| Disciplined Investments | |\\n| Peer-Leading Distributions | |\\n| ESG Excellence | |\\n\\n### Deliver Superior Returns Through Cycles\\n\\n## Clear and Consistent Priorities\\n\\n1. Sustain production and pay dividend\\n2. Annual dividend growth\\n3. 'A'-rated balance sheet\\n4. >30% of CFO shareholder payout\\n5. Disciplined investment to enhance returns\\n\\n¹Scope 1 and 2 emissions on a gross operated and net equity basis.\\n²Cash from operations (CFO) is a non-GAAP measure defined in the Appendix.\"}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text=\"# We Are Committed to Our Returns-Focused Value Proposition\\n\\n## Triple Mandate Aligned to Business Realities\\n\\n| Segment | Description |\\n|---------|-------------|\\n| Meet Transition Pathway Demand | |\\n| Deliver Competitive Returns | |\\n| Achieve Net-Zero Emissions Ambition¹ | |\\n\\n## Foundational Principles\\n\\n| Principle | Description |\\n|-----------|-------------|\\n| Balance Sheet Strength | |\\n| Disciplined Investments | |\\n| Peer-Leading Distributions | |\\n| ESG Excellence | |\\n\\n### Deliver Superior Returns Through Cycles\\n\\n## Clear and Consistent Priorities\\n\\n1. Sustain production and pay dividend\\n2. Annual dividend growth\\n3. 'A'-rated balance sheet\\n4. >30% of CFO shareholder payout\\n5. Disciplined investment to enhance returns\\n\\n¹Scope 1 and 2 emissions on a gross operated and net equity basis.\\n²Cash from operations (CFO) is a non-GAAP measure defined in the Appendix.\", mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='b1e64136-052a-4196-be05-b945b62e3bf3', embedding=None, metadata={'page_num': 7, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-6.jpg', 'parsed_text_markdown': '# We Are Continuously Improving\\n\\n| Metric | 2016
$43/BBL WTI | 2019
$57/BBL WTI | 2022
$94/BBL WTI | Foundational Principles |\\n|--------|---------------------|---------------------|---------------------|-------------------------|\\n| Return on Capital Employed | -4% | 10% | 27% | Peer-Leading Distributions and Returns |\\n| Return of Capital¹ | $1.11/share | $4.45/share | $11.73/share | |\\n| Net Debt | $24B | $7B | $7B | Balance Sheet Strength |\\n| Cash From Operations \\\\| Free Cash Flow | $5B \\\\| $0B | $12B \\\\| $5B | $29B \\\\| $18B | |\\n| Resource <$40/BBL WTI | ~10 BBOE | ~15 BBOE | ~20 BBOE | Disciplined Investments |\\n| Production | 1.6 MMBOED | 1.3 MMBOED | 1.7 MMBOED | |\\n| Emissions Intensity² (kg CO₂e/BOE) | ~39 | ~36 | ~22 | ESG Excellence |\\n\\n¹Defined in the Appendix and presented on a per-share basis using average outstanding diluted shares. ²Gross operated GHG emissions (Scope 1 and 2). 2022 is a preliminary estimate.\\nCash from operations (CFO), free cash flow (FCF), net debt and return on capital employed (ROCE) are non-GAAP measures. Definitions and reconciliations are included in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# We Are Continuously Improving\\n\\n| Metric | 2016
$43/BBL WTI | 2019
$57/BBL WTI | 2022
$94/BBL WTI | Foundational Principles |\\n|--------|---------------------|---------------------|---------------------|-------------------------|\\n| Return on Capital Employed | -4% | 10% | 27% | Peer-Leading Distributions and Returns |\\n| Return of Capital¹ | $1.11/share | $4.45/share | $11.73/share | |\\n| Net Debt | $24B | $7B | $7B | Balance Sheet Strength |\\n| Cash From Operations \\\\| Free Cash Flow | $5B \\\\| $0B | $12B \\\\| $5B | $29B \\\\| $18B | |\\n| Resource <$40/BBL WTI | ~10 BBOE | ~15 BBOE | ~20 BBOE | Disciplined Investments |\\n| Production | 1.6 MMBOED | 1.3 MMBOED | 1.7 MMBOED | |\\n| Emissions Intensity² (kg CO₂e/BOE) | ~39 | ~36 | ~22 | ESG Excellence |\\n\\n¹Defined in the Appendix and presented on a per-share basis using average outstanding diluted shares. ²Gross operated GHG emissions (Scope 1 and 2). 2022 is a preliminary estimate.\\nCash from operations (CFO), free cash flow (FCF), net debt and return on capital employed (ROCE) are non-GAAP measures. Definitions and reconciliations are included in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='fcc28389-4328-4b8a-9f14-28714ae9d53d', embedding=None, metadata={'page_num': 8, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-7.jpg', 'parsed_text_markdown': '# We Have a Compelling 10-Year Plan that Sets us Apart\\n\\n## 10-Year Plan ($B)\\n2023-2032\\n\\n| Sources | Uses |\\n|----------------------------------------|-------------------------------------|\\n| CFO at $80/BBL WTI Upside Sensitivity | Additional Distributions |\\n| CFO at $60/BBL WTI Mid-Cycle Planning Price | 30% of CFO Distribution Commitment |\\n| Cash¹ | Capital |\\n| | Cash¹ |\\n\\n## Peer leading ROCE improving through time\\n\\n## Top quartile ordinary dividend growth\\n\\n## >90% market cap² distributed\\n\\n## ~$35/BBL WTI FCF Breakeven³\\n\\n## ~6% CFO CAGR, ~11% FCF CAGR\\n\\n## Unhedged for price upside\\n\\n¹Cash includes cash, cash equivalents, restricted cash and short-term investments. ²Market cap of ~$121B at March 31, 2023, close. ³Average over the next 10 years.\\nCAGRs calculated from FY2024 at $60/BBL WTI. Cash from operations (CFO), free cash flow (FCF) and return on capital employed (ROCE) are non-GAAP measures. Definitions are included in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# We Have a Compelling 10-Year Plan that Sets us Apart\\n\\n## 10-Year Plan ($B)\\n2023-2032\\n\\n| Sources | Uses |\\n|----------------------------------------|-------------------------------------|\\n| CFO at $80/BBL WTI Upside Sensitivity | Additional Distributions |\\n| CFO at $60/BBL WTI Mid-Cycle Planning Price | 30% of CFO Distribution Commitment |\\n| Cash¹ | Capital |\\n| | Cash¹ |\\n\\n## Peer leading ROCE improving through time\\n\\n## Top quartile ordinary dividend growth\\n\\n## >90% market cap² distributed\\n\\n## ~$35/BBL WTI FCF Breakeven³\\n\\n## ~6% CFO CAGR, ~11% FCF CAGR\\n\\n## Unhedged for price upside\\n\\n¹Cash includes cash, cash equivalents, restricted cash and short-term investments. ²Market cap of ~$121B at March 31, 2023, close. ³Average over the next 10 years.\\nCAGRs calculated from FY2024 at $60/BBL WTI. Cash from operations (CFO), free cash flow (FCF) and return on capital employed (ROCE) are non-GAAP measures. Definitions are included in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='89b5c2a2-cbdc-4d8f-9a0e-a4658a24bcb3', embedding=None, metadata={'page_num': 9, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-8.jpg', 'parsed_text_markdown': '# Strategy and Portfolio\\n\\nDominic Macklon\\nEVP, Strategy, Sustainability and Technology'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Strategy and Portfolio\\n\\nDominic Macklon\\nEVP, Strategy, Sustainability and Technology', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='9035ce63-bcad-485e-b528-e604c63ef121', embedding=None, metadata={'page_num': 10, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-9.jpg', 'parsed_text_markdown': '# Strategy Powers Our Returns-Focused Value Proposition\\n\\n| Rigorous Capital Allocation Framework | Differentiated Portfolio Depth, Durability and Diversity | Valued Role in the Energy Transition |\\n|---------------------------------------|--------------------------------------------------|-----------------------------------|\\n| Commitment to disciplined reinvestment rate | ~20 BBOE, <$40/BBL WTI low Cost of Supply resource base | Accelerating GHG-intensity reduction target through 2030 |\\n| Cost of Supply analysis informs investment decisions | Leading Lower 48 unconventional position, complemented with premium Alaska and International assets | Built attractive LNG portfolio |\\n| Balance of short-cycle, flexible unconventional with select longer-cycle, low-decline conventional | Strong track record of active portfolio management | Evaluating longer term low-carbon options in hydrogen and CCS |\\n\\nReinvestment rate is a non-GAAP measure defined in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Strategy Powers Our Returns-Focused Value Proposition\\n\\n| Rigorous Capital Allocation Framework | Differentiated Portfolio Depth, Durability and Diversity | Valued Role in the Energy Transition |\\n|---------------------------------------|--------------------------------------------------|-----------------------------------|\\n| Commitment to disciplined reinvestment rate | ~20 BBOE, <$40/BBL WTI low Cost of Supply resource base | Accelerating GHG-intensity reduction target through 2030 |\\n| Cost of Supply analysis informs investment decisions | Leading Lower 48 unconventional position, complemented with premium Alaska and International assets | Built attractive LNG portfolio |\\n| Balance of short-cycle, flexible unconventional with select longer-cycle, low-decline conventional | Strong track record of active portfolio management | Evaluating longer term low-carbon options in hydrogen and CCS |\\n\\nReinvestment rate is a non-GAAP measure defined in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='239cd5f7-d5a6-4667-8b7c-60dca5a04508', embedding=None, metadata={'page_num': 11, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-10.jpg', 'parsed_text_markdown': '# Commitment to Disciplined Reinvestment Rate\\n\\nDisciplined Reinvestment Rate is the Foundation for Superior Returns on and of Capital, while Driving Durable CFO Growth\\n\\n| Metric | Value |\\n|--------|-------|\\n| 10-Year Reinvestment Rate | ~50% |\\n| CFO CAGR 2024-2032 | ~6% |\\n| Mid-Cycle Planning Price | at $60/BBL WTI |\\n\\n| Period | Industry Growth Focus | ConocoPhillips Strategy Reset | Reinvestment Rate |\\n|--------|------------------------|-------------------------------|-------------------|\\n| 2012-2016 | >100% Reinvestment Rate | - | ~$75/BBL WTI Average |\\n| 2017-2022 | - | <60% Reinvestment Rate | ~$63/BBL WTI Average |\\n| 2023E | - | - | at $80/BBL WTI |\\n| 2024-2028 | - | - | at $60/BBL WTI (with $80/BBL WTI option shown) |\\n| 2029-2032 | - | - | at $60/BBL WTI (with $80/BBL WTI option shown) |\\n\\n*Chart shows ConocoPhillips Average Annual Reinvestment Rate (%) over time, with historic rates in grey and projected rates in blue.*\\n\\nReinvestment rate and cash from operations (CFO) are non-GAAP measures. Definitions and reconciliations are included in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Commitment to Disciplined Reinvestment Rate\\n\\nDisciplined Reinvestment Rate is the Foundation for Superior Returns on and of Capital, while Driving Durable CFO Growth\\n\\n| Metric | Value |\\n|--------|-------|\\n| 10-Year Reinvestment Rate | ~50% |\\n| CFO CAGR 2024-2032 | ~6% |\\n| Mid-Cycle Planning Price | at $60/BBL WTI |\\n\\n| Period | Industry Growth Focus | ConocoPhillips Strategy Reset | Reinvestment Rate |\\n|--------|------------------------|-------------------------------|-------------------|\\n| 2012-2016 | >100% Reinvestment Rate | - | ~$75/BBL WTI Average |\\n| 2017-2022 | - | <60% Reinvestment Rate | ~$63/BBL WTI Average |\\n| 2023E | - | - | at $80/BBL WTI |\\n| 2024-2028 | - | - | at $60/BBL WTI (with $80/BBL WTI option shown) |\\n| 2029-2032 | - | - | at $60/BBL WTI (with $80/BBL WTI option shown) |\\n\\n*Chart shows ConocoPhillips Average Annual Reinvestment Rate (%) over time, with historic rates in grey and projected rates in blue.*\\n\\nReinvestment rate and cash from operations (CFO) are non-GAAP measures. Definitions and reconciliations are included in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='3d869ba3-a2ac-4b45-b9b5-4abf10fd5e3a', embedding=None, metadata={'page_num': 12, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-11.jpg', 'parsed_text_markdown': '# Cost of Supply Analysis Informs Investment Decisions\\n\\n## Cost of Supply = Our North Star\\n$/BBL WTI Oil Price Required to Achieve a Point-Forward 10% Return\\n\\n### Fully Burdened Metric\\nWith All Components Rigorously Calculated For Each Entity\\n\\n| Component | Description |\\n|-----------|-------------|\\n| Capital | Facilities, Wells |\\n| OPEX | G&A, Transport, Lifting |\\n| Royalty | |\\n| Taxes | |\\n| Product Mix | |\\n| Differential to WTI | |\\n| WTI CoS | <$40/BBL |\\n\\nLow Cost of Supply Wins\\n\\n*Reflective of a typical Permian development well.*'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Cost of Supply Analysis Informs Investment Decisions\\n\\n## Cost of Supply = Our North Star\\n$/BBL WTI Oil Price Required to Achieve a Point-Forward 10% Return\\n\\n### Fully Burdened Metric\\nWith All Components Rigorously Calculated For Each Entity\\n\\n| Component | Description |\\n|-----------|-------------|\\n| Capital | Facilities, Wells |\\n| OPEX | G&A, Transport, Lifting |\\n| Royalty | |\\n| Taxes | |\\n| Product Mix | |\\n| Differential to WTI | |\\n| WTI CoS | <$40/BBL |\\n\\nLow Cost of Supply Wins\\n\\n*Reflective of a typical Permian development well.*', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='34262432-ca78-4b9e-a026-feb22f83c0bb', embedding=None, metadata={'page_num': 13, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-12.jpg', 'parsed_text_markdown': '# Secondary Investment Criteria Reinforce Resilient, Durable Returns\\n\\n## Investment Criteria\\n\\n### Primary Criteria\\n- Disciplined Reinvestment Rate (Returns of capital)\\n- Cost of Supply (Returns on capital)\\n\\n### Secondary Criteria\\n- Balance of short-cycle, flexible unconventional with longer-cycle, low-decline conventional\\n- Product mix and market exposure\\n- Predictable execution\\n\\n## Balanced, Diversified, Disciplined Production Growth\\n\\n### Production Mix¹\\n| Oil | NGL | North American Gas | International Gas |\\n|-----|-----|---------------------|-------------------|\\n| ~55% | ~15% | ~15% | ~15% |\\n\\n### Production (MBOED)\\n\\n| Year | Unconventional (Lower 48 + Montney) | Conventional | LNG + Surmont | Total | 10-Year Production CAGR |\\n|------|-------------------------------------|--------------|----------------|-------|--------------------------|\\n| 2023E | ~1000 | ~500 | ~300 | ~1800 | ~4-5% |\\n| 2032 | ~1700 | ~650 | ~400 | ~2750 | |\\n\\n- Unconventional (Lower 48 + Montney): ~6% CAGR\\n- Conventional: ~3% CAGR\\n- LNG + Surmont: ~2% CAGR\\n\\n¹Average anticipated production mix from 2023-2032; oil includes bitumen.\\nReinvestment rate is a non-GAAP measure defined in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Secondary Investment Criteria Reinforce Resilient, Durable Returns\\n\\n## Investment Criteria\\n\\n### Primary Criteria\\n- Disciplined Reinvestment Rate (Returns of capital)\\n- Cost of Supply (Returns on capital)\\n\\n### Secondary Criteria\\n- Balance of short-cycle, flexible unconventional with longer-cycle, low-decline conventional\\n- Product mix and market exposure\\n- Predictable execution\\n\\n## Balanced, Diversified, Disciplined Production Growth\\n\\n### Production Mix¹\\n| Oil | NGL | North American Gas | International Gas |\\n|-----|-----|---------------------|-------------------|\\n| ~55% | ~15% | ~15% | ~15% |\\n\\n### Production (MBOED)\\n\\n| Year | Unconventional (Lower 48 + Montney) | Conventional | LNG + Surmont | Total | 10-Year Production CAGR |\\n|------|-------------------------------------|--------------|----------------|-------|--------------------------|\\n| 2023E | ~1000 | ~500 | ~300 | ~1800 | ~4-5% |\\n| 2032 | ~1700 | ~650 | ~400 | ~2750 | |\\n\\n- Unconventional (Lower 48 + Montney): ~6% CAGR\\n- Conventional: ~3% CAGR\\n- LNG + Surmont: ~2% CAGR\\n\\n¹Average anticipated production mix from 2023-2032; oil includes bitumen.\\nReinvestment rate is a non-GAAP measure defined in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='70ce5e94-c019-4413-b857-e6f125fac10c', embedding=None, metadata={'page_num': 14, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-13.jpg', 'parsed_text_markdown': '# Our Differentiated Portfolio: Deep, Durable and Diverse\\n\\n## ~20 BBOE of Resource\\nUnder $40/BBL Cost of Supply\\n\\n~$32/BBL\\nAverage Cost of Supply\\n\\n### Diverse Production Base\\n10-Year Plan Cumulative Production (BBOE)\\n\\n| WTI Cost of Supply ($/BBL) | Resource (BBOE) |\\n|----------------------------|-----------------|\\n| $50 | 0 |\\n| $40 | 15 |\\n| $30 | 5 |\\n| $20 | 2 |\\n| $10 | 1 |\\n| $0 | 0 |\\n\\n| Region/Asset | Production Share |\\n|-----------------|------------------|\\n| Lower 48 | Large |\\n| Eagle Ford | Medium |\\n| Bakken | Small |\\n| Permian | Large |\\n| Alaska | Medium |\\n| GKA | Small |\\n| GPA | Small |\\n| GWA | Small |\\n| WNS | Small |\\n| EMENA | Medium |\\n| Norway | Small |\\n| Qatar | Small |\\n| Libya | Small |\\n| Asia Pacific | Medium |\\n| APLNG | Small |\\n| Malaysia | Small |\\n| China | Small |\\n| Canada | Medium |\\n| Montney | Small |\\n| Surmont | Small |\\n\\nCosts assume a mid-cycle price environment of $60/BBL WTI.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Our Differentiated Portfolio: Deep, Durable and Diverse\\n\\n## ~20 BBOE of Resource\\nUnder $40/BBL Cost of Supply\\n\\n~$32/BBL\\nAverage Cost of Supply\\n\\n### Diverse Production Base\\n10-Year Plan Cumulative Production (BBOE)\\n\\n| WTI Cost of Supply ($/BBL) | Resource (BBOE) |\\n|----------------------------|-----------------|\\n| $50 | 0 |\\n| $40 | 15 |\\n| $30 | 5 |\\n| $20 | 2 |\\n| $10 | 1 |\\n| $0 | 0 |\\n\\n| Region/Asset | Production Share |\\n|-----------------|------------------|\\n| Lower 48 | Large |\\n| Eagle Ford | Medium |\\n| Bakken | Small |\\n| Permian | Large |\\n| Alaska | Medium |\\n| GKA | Small |\\n| GPA | Small |\\n| GWA | Small |\\n| WNS | Small |\\n| EMENA | Medium |\\n| Norway | Small |\\n| Qatar | Small |\\n| Libya | Small |\\n| Asia Pacific | Medium |\\n| APLNG | Small |\\n| Malaysia | Small |\\n| China | Small |\\n| Canada | Medium |\\n| Montney | Small |\\n| Surmont | Small |\\n\\nCosts assume a mid-cycle price environment of $60/BBL WTI.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='3c167ef6-d9c7-4c2a-92bb-5070ec137d23', embedding=None, metadata={'page_num': 15, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-14.jpg', 'parsed_text_markdown': '# Strong Track Record of Active Portfolio Management\\n\\n| Metric | 2016 | 2022 |\\n|--------|------|------|\\n| Production | 1.6 MMBOED | 1.7 MMBOED |\\n| Resource <$40/BBL WTI | ~10 BBOE | ~20 BBOE |\\n| Average Cost of Supply | <$40/BBL WTI | ~$32/BBL WTI |\\n| Resource Life | >18 years | >30 years |\\n| Emissions Intensity¹ | ~39 kg CO₂e/BOE | ~22 kg CO₂e/BOE |\\n\\nTimeline of Key Events:\\n- 2017: San Juan Exit, Canada Cenovus Transaction\\n- 2018: WNS and GKA Working Interest Consolidations\\n- 2019: U.K. Exit\\n- 2020: Montney Acreage Acquisition, Niobrara and Australia-West Exits\\n- 2021: Concho and Shell Permian Acquisitions\\n- 2022: APLNG Acquisition, Indonesia Exit\\n\\n## Cost of Supply Framework Drives Disciplined Transactions\\n~$25B of Both Acquisitions and Divestitures Since 2016²\\n\\n¹Gross operated GHG emissions (Scope 1 and 2), 2022 is a preliminary estimate. ²Dispositions include contingent payment proceeds and sale of CVE shares.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Strong Track Record of Active Portfolio Management\\n\\n| Metric | 2016 | 2022 |\\n|--------|------|------|\\n| Production | 1.6 MMBOED | 1.7 MMBOED |\\n| Resource <$40/BBL WTI | ~10 BBOE | ~20 BBOE |\\n| Average Cost of Supply | <$40/BBL WTI | ~$32/BBL WTI |\\n| Resource Life | >18 years | >30 years |\\n| Emissions Intensity¹ | ~39 kg CO₂e/BOE | ~22 kg CO₂e/BOE |\\n\\nTimeline of Key Events:\\n- 2017: San Juan Exit, Canada Cenovus Transaction\\n- 2018: WNS and GKA Working Interest Consolidations\\n- 2019: U.K. Exit\\n- 2020: Montney Acreage Acquisition, Niobrara and Australia-West Exits\\n- 2021: Concho and Shell Permian Acquisitions\\n- 2022: APLNG Acquisition, Indonesia Exit\\n\\n## Cost of Supply Framework Drives Disciplined Transactions\\n~$25B of Both Acquisitions and Divestitures Since 2016²\\n\\n¹Gross operated GHG emissions (Scope 1 and 2), 2022 is a preliminary estimate. ²Dispositions include contingent payment proceeds and sale of CVE shares.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='e9cf46a6-86a5-4d0d-9564-d47584ff5971', embedding=None, metadata={'page_num': 16, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-15.jpg', 'parsed_text_markdown': \"# Accelerating Our GHG-Intensity Reduction Target Through 2030\\n\\n## Emissions Reduction Opportunities\\n\\n- Methane Venting and Flaring\\n- Electrification\\n- Optimization and Efficiency\\n- Strategic Pilots and Studies\\n\\n## Pathway to Net-Zero¹\\n\\n| Time Frame | Goals |\\n|------------|-------|\\n| Near-Term (2025) | • Zero routine flaring by 2025² |\\n| Medium-Term (2030) | • NEW: Reduce GHG intensity 50-60% (from 40-50%)³
• Near-zero methane intensity target <1.5 kg CO₂e/BOE |\\n| Long-Term (2050) | • Net-zero emissions ambition¹ |\\n\\n### Emissions Intensity (kg CO₂e/BOE) Graph\\n\\nThe graph shows a declining trend in emissions intensity from 2016 to 2050:\\n- Gross Operated and Net Equity emissions start around 40-50 kg CO₂e/BOE in 2016\\n- By 2022E, there's a significant drop, especially in Gross Operated emissions\\n- The graph projects a 50% reduction by 2030\\n- It further shows a 60% reduction target extending to 2050\\n- The ultimate goal is reaching net-zero emissions by 2050\\n\\n# Progressing Toward Net-Zero Ambition\\n\\n¹Scope 1 and 2 emissions on a gross operated and net equity basis. ²In line with the World Bank Zero Routine Flaring initiative. ConocoPhillips premise is five years earlier than World Bank 2030 goal.\\n³Reduction from a 2016 baseline.\"}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text=\"# Accelerating Our GHG-Intensity Reduction Target Through 2030\\n\\n## Emissions Reduction Opportunities\\n\\n- Methane Venting and Flaring\\n- Electrification\\n- Optimization and Efficiency\\n- Strategic Pilots and Studies\\n\\n## Pathway to Net-Zero¹\\n\\n| Time Frame | Goals |\\n|------------|-------|\\n| Near-Term (2025) | • Zero routine flaring by 2025² |\\n| Medium-Term (2030) | • NEW: Reduce GHG intensity 50-60% (from 40-50%)³
• Near-zero methane intensity target <1.5 kg CO₂e/BOE |\\n| Long-Term (2050) | • Net-zero emissions ambition¹ |\\n\\n### Emissions Intensity (kg CO₂e/BOE) Graph\\n\\nThe graph shows a declining trend in emissions intensity from 2016 to 2050:\\n- Gross Operated and Net Equity emissions start around 40-50 kg CO₂e/BOE in 2016\\n- By 2022E, there's a significant drop, especially in Gross Operated emissions\\n- The graph projects a 50% reduction by 2030\\n- It further shows a 60% reduction target extending to 2050\\n- The ultimate goal is reaching net-zero emissions by 2050\\n\\n# Progressing Toward Net-Zero Ambition\\n\\n¹Scope 1 and 2 emissions on a gross operated and net equity basis. ²In line with the World Bank Zero Routine Flaring initiative. ConocoPhillips premise is five years earlier than World Bank 2030 goal.\\n³Reduction from a 2016 baseline.\", mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='11edb9ee-c446-47d4-84f3-4eacfe5748f5', embedding=None, metadata={'page_num': 17, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-16.jpg', 'parsed_text_markdown': '# LNG: A Crucial Fuel for Energy Transition\\n\\n| U.S. Electric Power Sector Emissions Drop with Shift from Coal to Natural Gas¹ |\\n|-----------------------------------------------------------------------------|\\n| Year | Coal (% Share of Electricity Generation) | Gas (% Share of Electricity Generation) | CO₂ Emissions (Million Metric Tons) |\\n|------|------------------------------------------|----------------------------------------|-------------------------------------|\\n| 2001 | 51% | 17% | ~2,500 |\\n| 2021 | 20% | 40% | ~1,750 |\\n\\nNote: The graph shows a >30% Reduction in CO₂ emissions from 2001 to 2021.\\n\\n| Global Coal Consumption² Has Yet to Definitively Peak |\\n|------------------------------------------------------|\\n| Year | MT (Million Tonnes) |\\n|------|---------------------|\\n| 2000 | ~4,600 |\\n| 2010 | ~7,000 |\\n| 2020 | ~7,800 |\\n\\n| U.S. LNG Reduces Carbon Intensity of Electricity³ |\\n|--------------------------------------------------|\\n| Source | kg CO₂e per MWh |\\n|-------------------------|------------------|\\n| Germany, Domestic Coal | ~1,150 |\\n| Germany, U.S. Permian LNG | ~580 |\\n\\nNote: >40% Reduction in lifecycle GHG emissions when switching from domestic coal to imported LNG\\n\\n| Strong LNG Growth Outlook⁴ |\\n|---------------------------|\\n| Year | Operational (MTPA) | Under Construction (MTPA) | MTPA Supply Gap |\\n|------|---------------------|---------------------------|-----------------|\\n| 2022 | ~400 | ~100 | - |\\n| 2050 | ~450 | - | >300 |\\n\\nNote: MTPA = Million Tonnes Per Annum\\n\\nSources:\\n1. U.S. EIA Power Plant Operations Report\\n2. IEA, Global Coal Consumption, 2000-2025\\n3. ICF International, Update to the Life-Cycle Analysis of GHG Emissions for US LNG Exports\\n4. Source Wood Mackenzie Q4 2022\\n\\nConocoPhillips 17'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# LNG: A Crucial Fuel for Energy Transition\\n\\n| U.S. Electric Power Sector Emissions Drop with Shift from Coal to Natural Gas¹ |\\n|-----------------------------------------------------------------------------|\\n| Year | Coal (% Share of Electricity Generation) | Gas (% Share of Electricity Generation) | CO₂ Emissions (Million Metric Tons) |\\n|------|------------------------------------------|----------------------------------------|-------------------------------------|\\n| 2001 | 51% | 17% | ~2,500 |\\n| 2021 | 20% | 40% | ~1,750 |\\n\\nNote: The graph shows a >30% Reduction in CO₂ emissions from 2001 to 2021.\\n\\n| Global Coal Consumption² Has Yet to Definitively Peak |\\n|------------------------------------------------------|\\n| Year | MT (Million Tonnes) |\\n|------|---------------------|\\n| 2000 | ~4,600 |\\n| 2010 | ~7,000 |\\n| 2020 | ~7,800 |\\n\\n| U.S. LNG Reduces Carbon Intensity of Electricity³ |\\n|--------------------------------------------------|\\n| Source | kg CO₂e per MWh |\\n|-------------------------|------------------|\\n| Germany, Domestic Coal | ~1,150 |\\n| Germany, U.S. Permian LNG | ~580 |\\n\\nNote: >40% Reduction in lifecycle GHG emissions when switching from domestic coal to imported LNG\\n\\n| Strong LNG Growth Outlook⁴ |\\n|---------------------------|\\n| Year | Operational (MTPA) | Under Construction (MTPA) | MTPA Supply Gap |\\n|------|---------------------|---------------------------|-----------------|\\n| 2022 | ~400 | ~100 | - |\\n| 2050 | ~450 | - | >300 |\\n\\nNote: MTPA = Million Tonnes Per Annum\\n\\nSources:\\n1. U.S. EIA Power Plant Operations Report\\n2. IEA, Global Coal Consumption, 2000-2025\\n3. ICF International, Update to the Life-Cycle Analysis of GHG Emissions for US LNG Exports\\n4. Source Wood Mackenzie Q4 2022\\n\\nConocoPhillips 17', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='84cedf2b-5a2e-47d5-8cfa-d763dc58708d', embedding=None, metadata={'page_num': 18, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-17.jpg', 'parsed_text_markdown': '# 10-Year Plan Reflects Durable Returns-Focused Value Proposition\\n\\n| Capital ($B) | 2023E | 2024-2028 Average | 2029-2032 Average |\\n|--------------|-------|-------------------|-------------------|\\n| Value | ~$11B | ~10.5 | ~10.5 |\\n\\n| Production (MBOED) | 2023E | 2024-2028 Average | 2029-2032 Average |\\n|--------------------|-------|-------------------|-------------------|\\n| Value | ~1800 | ~2100 | ~2600 |\\n\\nNote: ~4-5% 10-Year Production CAGR\\n\\n| FCF ($B) | 2023E | 2024-2028 Average | 2029-2032 Average |\\n|--------------------|-------|-------------------|-------------------|\\n| $60/BBL WTI | ~11 | ~15 | ~16 |\\n| $80/BBL WTI | - | ~6 (Upside) | ~9 (Upside) |\\n\\nAdditional Information:\\n- > $115B FCF Over the Next 10 Years at $60/BBL WTI\\n- ~$35/BBL WTI FCF Breakeven Average Over the Next 10 Years\\n\\nFree cash flow (FCF) is a non-GAAP measure defined in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# 10-Year Plan Reflects Durable Returns-Focused Value Proposition\\n\\n| Capital ($B) | 2023E | 2024-2028 Average | 2029-2032 Average |\\n|--------------|-------|-------------------|-------------------|\\n| Value | ~$11B | ~10.5 | ~10.5 |\\n\\n| Production (MBOED) | 2023E | 2024-2028 Average | 2029-2032 Average |\\n|--------------------|-------|-------------------|-------------------|\\n| Value | ~1800 | ~2100 | ~2600 |\\n\\nNote: ~4-5% 10-Year Production CAGR\\n\\n| FCF ($B) | 2023E | 2024-2028 Average | 2029-2032 Average |\\n|--------------------|-------|-------------------|-------------------|\\n| $60/BBL WTI | ~11 | ~15 | ~16 |\\n| $80/BBL WTI | - | ~6 (Upside) | ~9 (Upside) |\\n\\nAdditional Information:\\n- > $115B FCF Over the Next 10 Years at $60/BBL WTI\\n- ~$35/BBL WTI FCF Breakeven Average Over the Next 10 Years\\n\\nFree cash flow (FCF) is a non-GAAP measure defined in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='0e501eb5-d59a-44cd-8435-d1a031bfc208', embedding=None, metadata={'page_num': 19, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-18.jpg', 'parsed_text_markdown': \"# Alaska and International\\n\\nAndy O'Brien\\nSVP, Global Operations\"}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text=\"# Alaska and International\\n\\nAndy O'Brien\\nSVP, Global Operations\", mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='1517cfae-be06-4ff1-af41-161b0d292112', embedding=None, metadata={'page_num': 20, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-19.jpg', 'parsed_text_markdown': '# Alaska and International: Our Unique Diversification Advantage\\n\\n| Portfolio Diversification | High-Margin Production Growth | Significant Free Cash Flow |\\n|---------------------------|--------------------------------|----------------------------|\\n| ~9 BBOE, <$40/BBL WTI Cost of Supply resource base | World-class Qatar LNG resource expansion builds upon 20-year relationship | Low reinvestment rate underpins distribution capacity |\\n| Leveraging existing infrastructure across conventional assets | Progressing Montney unconventional toward development mode | High-value, Brent-linked production |\\n| Low-decline, low capital-intensity LNG and Surmont | Investing for the future with the high-margin Willow project | Delivering value with additional APLNG shareholding interest |\\n\\nFree cash flow (FCF) and reinvestment rate are non-GAAP measures defined in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Alaska and International: Our Unique Diversification Advantage\\n\\n| Portfolio Diversification | High-Margin Production Growth | Significant Free Cash Flow |\\n|---------------------------|--------------------------------|----------------------------|\\n| ~9 BBOE, <$40/BBL WTI Cost of Supply resource base | World-class Qatar LNG resource expansion builds upon 20-year relationship | Low reinvestment rate underpins distribution capacity |\\n| Leveraging existing infrastructure across conventional assets | Progressing Montney unconventional toward development mode | High-value, Brent-linked production |\\n| Low-decline, low capital-intensity LNG and Surmont | Investing for the future with the high-margin Willow project | Delivering value with additional APLNG shareholding interest |\\n\\nFree cash flow (FCF) and reinvestment rate are non-GAAP measures defined in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='1d3d0e59-2a0f-412a-8c8c-f4960fd29660', embedding=None, metadata={'page_num': 21, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-20.jpg', 'parsed_text_markdown': '# Low Capital Intensity Production Growth\\n\\n## Material Low Cost of Supply Resource Base\\n### Leveraging Existing Infrastructure\\n\\n| Resource (BBOE) | WTI Cost of Supply ($/BBL) |\\n|-----------------|----------------------------|\\n| 0 | ~10-20 |\\n| 3 | ~25-30 |\\n| 6 | ~30-35 |\\n| 9 | ~35-40 |\\n\\n- ~$30/BBL Average Cost of Supply\\n\\n### Production Mix¹\\nOil ~60% NGL ~5% North American Gas ~5% International Gas ~30%\\n\\n## Capital-Efficient Production Growth\\n### Underpins Growing Distribution Capacity\\n\\n| Year Range | LNG | Surmont | Montney | Conventional International | Alaska | Total Production (MBOED) |\\n|----------------|-----|---------|---------|----------------------------|--------|--------------------------|\\n| 2023E | ~220| ~50 | ~50 | ~250 | ~150 | ~750 |\\n| 2024-2028 Avg | ~250| ~75 | ~100 | ~250 | ~175 | ~850 |\\n| 2029-2032 Avg | ~300| ~100 | ~150 | ~250 | ~200 | ~1100 |\\n\\n### 4% CAGR at ~40% Reinvestment Rate\\nOver the Next 10 Years at $60/BBL WTI\\n\\n¹Average product mix from 2023-2032, oil includes bitumen.\\n²Reinvestment rate is a non-GAAP measure defined in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Low Capital Intensity Production Growth\\n\\n## Material Low Cost of Supply Resource Base\\n### Leveraging Existing Infrastructure\\n\\n| Resource (BBOE) | WTI Cost of Supply ($/BBL) |\\n|-----------------|----------------------------|\\n| 0 | ~10-20 |\\n| 3 | ~25-30 |\\n| 6 | ~30-35 |\\n| 9 | ~35-40 |\\n\\n- ~$30/BBL Average Cost of Supply\\n\\n### Production Mix¹\\nOil ~60% NGL ~5% North American Gas ~5% International Gas ~30%\\n\\n## Capital-Efficient Production Growth\\n### Underpins Growing Distribution Capacity\\n\\n| Year Range | LNG | Surmont | Montney | Conventional International | Alaska | Total Production (MBOED) |\\n|----------------|-----|---------|---------|----------------------------|--------|--------------------------|\\n| 2023E | ~220| ~50 | ~50 | ~250 | ~150 | ~750 |\\n| 2024-2028 Avg | ~250| ~75 | ~100 | ~250 | ~175 | ~850 |\\n| 2029-2032 Avg | ~300| ~100 | ~150 | ~250 | ~200 | ~1100 |\\n\\n### 4% CAGR at ~40% Reinvestment Rate\\nOver the Next 10 Years at $60/BBL WTI\\n\\n¹Average product mix from 2023-2032, oil includes bitumen.\\n²Reinvestment rate is a non-GAAP measure defined in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='46c842a6-37ef-4cd6-8b20-214d90c5eec1', embedding=None, metadata={'page_num': 22, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-21.jpg', 'parsed_text_markdown': \"# LNG: Expanding World-Class Assets\\n\\n![Image of an LNG tanker docked at a port in Qatar]\\n\\n## Expanding LNG Production\\n\\n| Year Range | APLNG | QG3 | Qatar Expansion | Total Production (MBOED) |\\n|------------|-------|-----|-----------------|--------------------------|\\n| 2023E | ~135 | ~85 | 0 | ~220 |\\n| 2024-2028 Average | ~130 | ~100 | ~10 | ~240 |\\n| 2029-2032 Average | ~120 | ~80 | ~80 | ~280 |\\n\\n## Qatargas 3\\n- Legacy position supplying Asian and European markets\\n\\n## North Field Expansion Projects\\n- Building on our 20-year relationship with Qatar\\n- Awarded 2 MTPA net; NFE first LNG in 2026 and NFS in 2027\\n- NFE and NFS add trains 15-20 in Qatar's LNG portfolio\\n\\n## APLNG\\n- 90% of volumes under long-term contracts\\n- Increased shareholding interest by 10% in 1Q 2022; expecting to recoup ~50% of purchase price by end of 2Q 2023\\n- Acquiring up to an additional 2.49% shareholding interest and preparing to take over upstream operatorship upon Origin Sale¹\\n\\n## Growing Reliable LNG Cash Flows\\n\\n¹Subject to EIG closing its announced acquisition of Origin Energy (the current upstream operator); EIG's transaction with Origin, as well as ConocoPhillips' shareholding acquisition are subject to Australian regulatory approvals and other customary closing conditions. The 2.49% purchase is also subject to shareholder's pre-emptive rights.\"}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text=\"# LNG: Expanding World-Class Assets\\n\\n![Image of an LNG tanker docked at a port in Qatar]\\n\\n## Expanding LNG Production\\n\\n| Year Range | APLNG | QG3 | Qatar Expansion | Total Production (MBOED) |\\n|------------|-------|-----|-----------------|--------------------------|\\n| 2023E | ~135 | ~85 | 0 | ~220 |\\n| 2024-2028 Average | ~130 | ~100 | ~10 | ~240 |\\n| 2029-2032 Average | ~120 | ~80 | ~80 | ~280 |\\n\\n## Qatargas 3\\n- Legacy position supplying Asian and European markets\\n\\n## North Field Expansion Projects\\n- Building on our 20-year relationship with Qatar\\n- Awarded 2 MTPA net; NFE first LNG in 2026 and NFS in 2027\\n- NFE and NFS add trains 15-20 in Qatar's LNG portfolio\\n\\n## APLNG\\n- 90% of volumes under long-term contracts\\n- Increased shareholding interest by 10% in 1Q 2022; expecting to recoup ~50% of purchase price by end of 2Q 2023\\n- Acquiring up to an additional 2.49% shareholding interest and preparing to take over upstream operatorship upon Origin Sale¹\\n\\n## Growing Reliable LNG Cash Flows\\n\\n¹Subject to EIG closing its announced acquisition of Origin Energy (the current upstream operator); EIG's transaction with Origin, as well as ConocoPhillips' shareholding acquisition are subject to Australian regulatory approvals and other customary closing conditions. The 2.49% purchase is also subject to shareholder's pre-emptive rights.\", mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='154d2b71-84d5-4eb7-837b-e8bb3550ee4c', embedding=None, metadata={'page_num': 23, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-22.jpg', 'parsed_text_markdown': '# Surmont: Leveraging Low Capital Intensity for Decades of Flat Production\\n\\n## Optimizing the Machine\\n\\n- Record 2H 2022 production\\n- Low sustaining capital requirements\\n- Advantaged operating cost due to top-quartile steam-oil ratio\\n\\n### Production (MBOED)¹\\n\\n| Year | Production |\\n|------|------------|\\n| 2016 | ~25 |\\n| 2018 | ~70 |\\n| 2020 | ~70 |\\n| 2022 | ~80 |\\n\\n*LAST NEW PAD* marked in 2016\\n*RECORD PRODUCTION* marked in 2022\\n\\nProduction Records Achieved Through Optimization\\n\\n## First New Pad Drilled Since 2016 Developed at <$15/BBL WTI CoS\\n\\n24 Well Pairs with 25 MBOED Gross Peak Rate\\n\\n[Image of Pad 267 showing an aerial view of an industrial facility in a snowy forested area]\\n\\n### Average Well Cost² ($MM)\\n\\n| Pad | Cost |\\n|------------|------|\\n| 2016 Pads | ~6 |\\n| Pad 267 | ~4 |\\n\\nDecreased 30%\\n\\nRaises Production Plateau into 2030s\\n\\n## Transformative Emissions Reduction³ Opportunities\\n\\n- 1/3 through current technology pilots\\n- 1/3 through new technologies\\n- CCS and offsets to achieve net-zero\\n\\n### Emissions Reduction Pathway (Net MMTeCO₂e)\\n\\n[Graph showing declining emissions from 2023 to 2050]\\n\\n- CURRENT TECH\\n- NEW TECH\\n- CCS & OFFSETS\\n\\nMultiple Options for Emissions Reduction\\n\\n¹Net before royalty shown to remove price related royalty impacts. ²Includes drill, completions and facilities (excluding pipelines). ³Net equity Scope 1 and 2 emissions.\\n\\nConocoPhillips 23'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Surmont: Leveraging Low Capital Intensity for Decades of Flat Production\\n\\n## Optimizing the Machine\\n\\n- Record 2H 2022 production\\n- Low sustaining capital requirements\\n- Advantaged operating cost due to top-quartile steam-oil ratio\\n\\n### Production (MBOED)¹\\n\\n| Year | Production |\\n|------|------------|\\n| 2016 | ~25 |\\n| 2018 | ~70 |\\n| 2020 | ~70 |\\n| 2022 | ~80 |\\n\\n*LAST NEW PAD* marked in 2016\\n*RECORD PRODUCTION* marked in 2022\\n\\nProduction Records Achieved Through Optimization\\n\\n## First New Pad Drilled Since 2016 Developed at <$15/BBL WTI CoS\\n\\n24 Well Pairs with 25 MBOED Gross Peak Rate\\n\\n[Image of Pad 267 showing an aerial view of an industrial facility in a snowy forested area]\\n\\n### Average Well Cost² ($MM)\\n\\n| Pad | Cost |\\n|------------|------|\\n| 2016 Pads | ~6 |\\n| Pad 267 | ~4 |\\n\\nDecreased 30%\\n\\nRaises Production Plateau into 2030s\\n\\n## Transformative Emissions Reduction³ Opportunities\\n\\n- 1/3 through current technology pilots\\n- 1/3 through new technologies\\n- CCS and offsets to achieve net-zero\\n\\n### Emissions Reduction Pathway (Net MMTeCO₂e)\\n\\n[Graph showing declining emissions from 2023 to 2050]\\n\\n- CURRENT TECH\\n- NEW TECH\\n- CCS & OFFSETS\\n\\nMultiple Options for Emissions Reduction\\n\\n¹Net before royalty shown to remove price related royalty impacts. ²Includes drill, completions and facilities (excluding pipelines). ³Net equity Scope 1 and 2 emissions.\\n\\nConocoPhillips 23', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='0e778517-86ed-4e95-8239-d4d9ae7e93ef', embedding=None, metadata={'page_num': 24, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-23.jpg', 'parsed_text_markdown': '# Montney: Building Another Core Unconventional Business\\n\\n## Appraisal Defined Optimal Plan\\n\\n- Concluded testing of multiple well configurations and completion designs\\n- Recent strong well results lead to high-graded, two-layer development plan\\n\\n### Cost of Supply Improvement\\n($/BBL WTI)\\n\\n| Current Pads | Development Phase |\\n|--------------|-------------------|\\n| 40 | 32 |\\n\\nDriving to Mid-$30s CoS\\n\\nHigh-Graded Resource of 1.8 BBOE at Mid-$30s CoS\\n\\n## Moving to Development Phase\\n\\n- Adding second rig in 2024\\n- Running one continuous frac crew\\n- Refining completion design\\n- CPF2 start-up expected in 3Q 2023\\n\\n[Image of CPF2 facility]\\n\\nLeveraging Unconventional Expertise\\n\\n## Significant Production Growth\\n\\n- 60% liquids production, priced off WTI\\n- Long-term commercial offtake secured\\n\\n### Production\\n(MBOED)\\n\\n| 2023E | 2024-2028 Average | 2029-2032 Average |\\n|-------|-------------------|-------------------|\\n| 25 | 75 | 140 |\\n\\n20% CAGR Over 10 Years'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Montney: Building Another Core Unconventional Business\\n\\n## Appraisal Defined Optimal Plan\\n\\n- Concluded testing of multiple well configurations and completion designs\\n- Recent strong well results lead to high-graded, two-layer development plan\\n\\n### Cost of Supply Improvement\\n($/BBL WTI)\\n\\n| Current Pads | Development Phase |\\n|--------------|-------------------|\\n| 40 | 32 |\\n\\nDriving to Mid-$30s CoS\\n\\nHigh-Graded Resource of 1.8 BBOE at Mid-$30s CoS\\n\\n## Moving to Development Phase\\n\\n- Adding second rig in 2024\\n- Running one continuous frac crew\\n- Refining completion design\\n- CPF2 start-up expected in 3Q 2023\\n\\n[Image of CPF2 facility]\\n\\nLeveraging Unconventional Expertise\\n\\n## Significant Production Growth\\n\\n- 60% liquids production, priced off WTI\\n- Long-term commercial offtake secured\\n\\n### Production\\n(MBOED)\\n\\n| 2023E | 2024-2028 Average | 2029-2032 Average |\\n|-------|-------------------|-------------------|\\n| 25 | 75 | 140 |\\n\\n20% CAGR Over 10 Years', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='73980de0-e37c-4c08-aa47-937c686d8e19', embedding=None, metadata={'page_num': 25, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-24.jpg', 'parsed_text_markdown': '# International Conventional: Steady Cash Flow Generator\\n\\n![Offshore oil platform labeled Eldfisk](image)\\n\\n## Production (MBOED)\\n\\n| Year Range | Production |\\n|----------------|------------|\\n| 2023E | ~230 |\\n| 2024-2028 Average | ~240 |\\n| 2029-2032 Average | ~200 |\\n\\n## Brent-Linked Oil and International Gas\\n\\n### Norway – 115 MBOED\\n- Four subsea tie backs on track for onstream in 2024\\n- Greater Ekofisk Area license extended through 2048\\n\\n### Libya – 50 MBOED\\n- Increased working interest to ~20% in Waha Concession\\n- Long-term optionality\\n\\n### Malaysia – 40 MBOED\\n- Low Cost of Supply projects offsetting decline\\n\\n### China – 30 MBOED\\n- Production sharing contract terms aligned to 2039\\n- Progressing offshore windfarm in China\\n\\n## ~$1B Per Year Free Cash Flow\\nOver the Next 10 Years at $60/BBL WTI\\n\\nCountry production numbers quoted are 2023 estimates.\\nFree cash flow (FCF) is a non-GAAP measure defined in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# International Conventional: Steady Cash Flow Generator\\n\\n![Offshore oil platform labeled Eldfisk](image)\\n\\n## Production (MBOED)\\n\\n| Year Range | Production |\\n|----------------|------------|\\n| 2023E | ~230 |\\n| 2024-2028 Average | ~240 |\\n| 2029-2032 Average | ~200 |\\n\\n## Brent-Linked Oil and International Gas\\n\\n### Norway – 115 MBOED\\n- Four subsea tie backs on track for onstream in 2024\\n- Greater Ekofisk Area license extended through 2048\\n\\n### Libya – 50 MBOED\\n- Increased working interest to ~20% in Waha Concession\\n- Long-term optionality\\n\\n### Malaysia – 40 MBOED\\n- Low Cost of Supply projects offsetting decline\\n\\n### China – 30 MBOED\\n- Production sharing contract terms aligned to 2039\\n- Progressing offshore windfarm in China\\n\\n## ~$1B Per Year Free Cash Flow\\nOver the Next 10 Years at $60/BBL WTI\\n\\nCountry production numbers quoted are 2023 estimates.\\nFree cash flow (FCF) is a non-GAAP measure defined in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='c292922b-7deb-463b-9467-d0b53023760a', embedding=None, metadata={'page_num': 26, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-25.jpg', 'parsed_text_markdown': '# Alaska Conventional: Legacy World-Class Basin\\n\\n## Leveraging Existing Infrastructure\\n\\n- Largest producer, with 40+ years of experience across significant infrastructure\\n- Robust inventory of projects with a ~$25/BBL Cost of Supply for over a decade\\n\\n## Disciplined Development Plan\\n\\n| Capex per Year | Details |\\n|----------------|---------|\\n| ~$1B | New pads filling existing capacity (e.g., Nuna, E News) |\\n| | Drilling from existing pads (e.g., Coyote, Fiord West Kuparuk, Torok) |\\n\\n## 100% of Production Priced at Brent+\\n\\n| Year | Production (MBOED) |\\n|------|---------------------|\\n| 2023E | ~200 |\\n| 2024-2028 Average | ~225 |\\n| 2029-2032 Average | ~240 |\\n\\n## 40+ Years Later, ~2-3% Production Growth Over the Next 10 Years\\n\\n[Map of Alaska showing Western North Slope, Greater Kuparuk Area, and Prudhoe Bay Non-operated areas with various project locations, pipeline systems, and future projects marked]\\n\\n| Map Legend |\\n|------------|\\n| Central Processing Facility (CPF)/Project |\\n| ConocoPhillips Interest Acreage |\\n| Opportunity Reservoir Extent |\\n| Pipeline System |\\n| Future Project |'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Alaska Conventional: Legacy World-Class Basin\\n\\n## Leveraging Existing Infrastructure\\n\\n- Largest producer, with 40+ years of experience across significant infrastructure\\n- Robust inventory of projects with a ~$25/BBL Cost of Supply for over a decade\\n\\n## Disciplined Development Plan\\n\\n| Capex per Year | Details |\\n|----------------|---------|\\n| ~$1B | New pads filling existing capacity (e.g., Nuna, E News) |\\n| | Drilling from existing pads (e.g., Coyote, Fiord West Kuparuk, Torok) |\\n\\n## 100% of Production Priced at Brent+\\n\\n| Year | Production (MBOED) |\\n|------|---------------------|\\n| 2023E | ~200 |\\n| 2024-2028 Average | ~225 |\\n| 2029-2032 Average | ~240 |\\n\\n## 40+ Years Later, ~2-3% Production Growth Over the Next 10 Years\\n\\n[Map of Alaska showing Western North Slope, Greater Kuparuk Area, and Prudhoe Bay Non-operated areas with various project locations, pipeline systems, and future projects marked]\\n\\n| Map Legend |\\n|------------|\\n| Central Processing Facility (CPF)/Project |\\n| ConocoPhillips Interest Acreage |\\n| Opportunity Reservoir Extent |\\n| Pipeline System |\\n| Future Project |', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='ba5a3f26-0a44-4b18-81ab-97440cc9ef93', embedding=None, metadata={'page_num': 27, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-26.jpg', 'parsed_text_markdown': '# Willow: Building on Our Long History\\n\\n[Map of Alaska showing Western North Slope, Greater Kuparuk Area, and Prudhoe Bay with various facilities and pipelines marked]\\n\\n## Significant Opportunity Without \"Mega-Project\" Risks\\n\\n- Extensive Definition\\n - 100% FEED complete at FID\\n- Simple Governance\\n - 100% ConocoPhillips owned\\n- Limited Complexity\\n - No \"first-of-a-kind\" designs\\n- Proven Execution Model\\n - Executed similar drill site, pipeline and road scope over past five years with proven North Slope contractors\\n - Modular facilities designed and built in U.S. by top-tier Gulf Coast contractors\\n\\n## Legacy Infrastructure vs Willow\\n\\n| Infrastructure | Legacy Infrastructure | Willow |\\n|----------------|------------------------|--------|\\n| Central Processing Facilities | 13 | 1 |\\n| Drill Sites | ~120 | 3 |\\n| Miles of Corridor Road and Pipelines | ~410 | ~26 |'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Willow: Building on Our Long History\\n\\n[Map of Alaska showing Western North Slope, Greater Kuparuk Area, and Prudhoe Bay with various facilities and pipelines marked]\\n\\n## Significant Opportunity Without \"Mega-Project\" Risks\\n\\n- Extensive Definition\\n - 100% FEED complete at FID\\n- Simple Governance\\n - 100% ConocoPhillips owned\\n- Limited Complexity\\n - No \"first-of-a-kind\" designs\\n- Proven Execution Model\\n - Executed similar drill site, pipeline and road scope over past five years with proven North Slope contractors\\n - Modular facilities designed and built in U.S. by top-tier Gulf Coast contractors\\n\\n## Legacy Infrastructure vs Willow\\n\\n| Infrastructure | Legacy Infrastructure | Willow |\\n|----------------|------------------------|--------|\\n| Central Processing Facilities | 13 | 1 |\\n| Drill Sites | ~120 | 3 |\\n| Miles of Corridor Road and Pipelines | ~410 | ~26 |', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='602f3b3e-bd7b-4b69-93dc-56e02d4b8944', embedding=None, metadata={'page_num': 28, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-27.jpg', 'parsed_text_markdown': '# Willow: Delivering Competitive Returns Into the Next Decade\\n\\n## Capex of $1-1.5B per Year from 2024-2028\\n\\n| Component | Description |\\n|-----------|-------------|\\n| Total Investment | $7-7.5B to First Oil |\\n| Central processing facility | Largest portion |\\n| Infrastructure, roads, pipelines, power and pads | Second largest portion |\\n| Drill sites and drilling | Smallest portion |\\n\\n## Key Construction Milestones\\n\\n| Year | Milestone |\\n|------|-----------|\\n| 2023 | Winter road and pipeline construction |\\n| | Operation center fabrication and delivery |\\n| | Central processing facility procurement |\\n| 2024-2026 | Central processing facility fabrication and delivery |\\n| 2025-2027 | Complete tie-ins to new drill sites and existing infrastructure |\\n| | Commence drilling program |\\n| 2029 | First Oil |\\n\\n## Volume Ramp and Strong Margins Drive FCF\\n\\n- Pre-drilling strategy fills facility at startup\\n- Premium-quality light crude compared to current Alaska average\\n- Leverages existing pipeline infrastructure\\n\\n### Production (MBOED)\\n\\n| Year | Legacy Alaska | Willow |\\n|------|---------------|--------|\\n| 2023E | ~200 | 0 |\\n| 2024-2028 Average | ~250 | 0 |\\n| 2029-2032 Average | ~250 | ~150 |\\n\\nFree cash flow (FCF) is a non-GAAP measure defined in the Appendix'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Willow: Delivering Competitive Returns Into the Next Decade\\n\\n## Capex of $1-1.5B per Year from 2024-2028\\n\\n| Component | Description |\\n|-----------|-------------|\\n| Total Investment | $7-7.5B to First Oil |\\n| Central processing facility | Largest portion |\\n| Infrastructure, roads, pipelines, power and pads | Second largest portion |\\n| Drill sites and drilling | Smallest portion |\\n\\n## Key Construction Milestones\\n\\n| Year | Milestone |\\n|------|-----------|\\n| 2023 | Winter road and pipeline construction |\\n| | Operation center fabrication and delivery |\\n| | Central processing facility procurement |\\n| 2024-2026 | Central processing facility fabrication and delivery |\\n| 2025-2027 | Complete tie-ins to new drill sites and existing infrastructure |\\n| | Commence drilling program |\\n| 2029 | First Oil |\\n\\n## Volume Ramp and Strong Margins Drive FCF\\n\\n- Pre-drilling strategy fills facility at startup\\n- Premium-quality light crude compared to current Alaska average\\n- Leverages existing pipeline infrastructure\\n\\n### Production (MBOED)\\n\\n| Year | Legacy Alaska | Willow |\\n|------|---------------|--------|\\n| 2023E | ~200 | 0 |\\n| 2024-2028 Average | ~250 | 0 |\\n| 2029-2032 Average | ~250 | ~150 |\\n\\nFree cash flow (FCF) is a non-GAAP measure defined in the Appendix', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='d514ad4d-5611-45da-a2f5-47c8fe1b9588', embedding=None, metadata={'page_num': 29, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-28.jpg', 'parsed_text_markdown': '# Alaska and International: Our Unique Diversification Advantage\\n\\n| Capital ($B) | | | |\\n|--------------|-----------|-----------|-----------|\\n| Year | 2023E | 2024-2028 | 2029-2032 |\\n| | | Average | Average |\\n| Value | 3.7 | 4.4 | 3.0 |\\n\\n| Production (MBOED) | | | |\\n|--------------------|-----------|-----------|-----------|\\n| Year | 2023E | 2024-2028 | 2029-2032 |\\n| | | Average | Average |\\n| Value | 750 | 870 | 1080 |\\n\\n| FCF ($B) | | | |\\n|--------------------|-----------|-----------|-----------|\\n| Year | 2023E | 2024-2028 | 2029-2032 |\\n| | | Average | Average |\\n| Value | 5.5 | 6.5 | 15.0 |\\n\\nFCF ($B) 2024-2028 Average and 2029-2032 Average are split into two components:\\n- 2024-2028 Average: $3.5B (Mid-Cycle Planning Price at $60/BBL WTI) + $3.0B (Upside Sensitivity)\\n- 2029-2032 Average: $6.0B (Mid-Cycle Planning Price at $60/BBL WTI) + $9.0B (Upside Sensitivity at $80/BBL WTI)\\n\\n> $50B FCF and ~40% Reinvestment Rate\\nOver the Next 10 Years at $60/BBL WTI\\n\\nFree cash flow (FCF) and reinvestment rate are non-GAAP measures defined in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Alaska and International: Our Unique Diversification Advantage\\n\\n| Capital ($B) | | | |\\n|--------------|-----------|-----------|-----------|\\n| Year | 2023E | 2024-2028 | 2029-2032 |\\n| | | Average | Average |\\n| Value | 3.7 | 4.4 | 3.0 |\\n\\n| Production (MBOED) | | | |\\n|--------------------|-----------|-----------|-----------|\\n| Year | 2023E | 2024-2028 | 2029-2032 |\\n| | | Average | Average |\\n| Value | 750 | 870 | 1080 |\\n\\n| FCF ($B) | | | |\\n|--------------------|-----------|-----------|-----------|\\n| Year | 2023E | 2024-2028 | 2029-2032 |\\n| | | Average | Average |\\n| Value | 5.5 | 6.5 | 15.0 |\\n\\nFCF ($B) 2024-2028 Average and 2029-2032 Average are split into two components:\\n- 2024-2028 Average: $3.5B (Mid-Cycle Planning Price at $60/BBL WTI) + $3.0B (Upside Sensitivity)\\n- 2029-2032 Average: $6.0B (Mid-Cycle Planning Price at $60/BBL WTI) + $9.0B (Upside Sensitivity at $80/BBL WTI)\\n\\n> $50B FCF and ~40% Reinvestment Rate\\nOver the Next 10 Years at $60/BBL WTI\\n\\nFree cash flow (FCF) and reinvestment rate are non-GAAP measures defined in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='4f8f4637-ca26-402d-a44c-d18407820599', embedding=None, metadata={'page_num': 30, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-29.jpg', 'parsed_text_markdown': '# LNG and Commercial\\n\\nBill Bullock\\nEVP and CFO'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# LNG and Commercial\\n\\nBill Bullock\\nEVP and CFO', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='5c067e8f-5ade-4a9c-890c-732190ed9690', embedding=None, metadata={'page_num': 31, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-30.jpg', 'parsed_text_markdown': '# LNG Opportunities Underpinned by Strong Commercial Acumen\\n\\n| Rapidly Growing LNG Market | Adding North America to Low-Cost LNG Footprint | Extensive Commercial Footprint |\\n|----------------------------|------------------------------------------------|--------------------------------|\\n| ![Ship icon](ship_icon.png) | ![LNG tank icon](lng_tank_icon.png) | ![Globe icon](globe_icon.png) |\\n| Robust demand in Asia and Europe driven by energy security and the energy transition | Port Arthur is a premier LNG development | Global market presence |\\n| Qatar and Australia are foundational LNG investments | Long-term optionality on the Gulf and West Coasts | Second-largest natural gas marketer in North America¹ |\\n| North American gas production fuels LNG supply growth | Offtake margins enhanced by diversion capability | 60+ years experience with LNG |\\n\\n¹Natural Gas Intelligence North American Marketer Rankings as of Q3 2022, published in December 2022.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# LNG Opportunities Underpinned by Strong Commercial Acumen\\n\\n| Rapidly Growing LNG Market | Adding North America to Low-Cost LNG Footprint | Extensive Commercial Footprint |\\n|----------------------------|------------------------------------------------|--------------------------------|\\n| ![Ship icon](ship_icon.png) | ![LNG tank icon](lng_tank_icon.png) | ![Globe icon](globe_icon.png) |\\n| Robust demand in Asia and Europe driven by energy security and the energy transition | Port Arthur is a premier LNG development | Global market presence |\\n| Qatar and Australia are foundational LNG investments | Long-term optionality on the Gulf and West Coasts | Second-largest natural gas marketer in North America¹ |\\n| North American gas production fuels LNG supply growth | Offtake margins enhanced by diversion capability | 60+ years experience with LNG |\\n\\n¹Natural Gas Intelligence North American Marketer Rankings as of Q3 2022, published in December 2022.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='3a8c60d5-3308-4f12-810b-997e60b06f4f', embedding=None, metadata={'page_num': 32, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-31.jpg', 'parsed_text_markdown': '# Attractive Global LNG Portfolio\\n\\n## Key LNG Supply and Demand Markets by 2035 (MTPA)¹\\n\\n[A world map showing supply and demand figures for different regions]\\n\\n- Supply (in green):\\n - North America: 64\\n - West Coast Optionality²: 212\\n - Qatar: 141\\n - Australia Pacific LNG: 77\\n - Rest of World: 71\\n\\n- Demand (in blue):\\n - North America: 437\\n - European Re-Gas: 128\\n\\n## ConocoPhillips Global Net LNG Exposure (MTPA)\\n\\n| Year | APLNG | QG3 | NFE/NFS | PA LNG³ |\\n|------|-------|-----|---------|---------|\\n| 2023 | ~7 | 0 | 0 | 0 |\\n| 2028 | ~7 | ~1 | ~1 | ~3 |\\n| 2032 | ~8 | ~1 | ~1 | ~4 |\\n\\n## ConocoPhillips Net LNG Capital Spend ($B)\\n\\n| Period | Spend |\\n|--------------|-------|\\n| 2023E | ~1.7 |\\n| 2024-2028 Average | ~0.5 |\\n| 2029-2032 Average | ~0.2 |\\n\\nCumulative Capital: ~$3.7B\\n\\n## ConocoPhillips Assets at Nexus of Supply and Demand\\n\\n- Asia and Europe to remain significant demand centers\\n- Qatar and Australia provide reliable LNG\\n- North America dominates LNG supply growth\\n\\n¹Wood Mackenzie Q4 2022, North America as marginal supplier. ²Offtake and/or equity at Energia Costa Azul (ECA) Phase 2 and offtake from ECA Phase 1.\\n³5 MTPA offtake and access to excess cargoes when Phase 1 liquefaction exceeds the 10.5 MTPA contracted under long term SPAs.\\n\\nConocoPhillips 32'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Attractive Global LNG Portfolio\\n\\n## Key LNG Supply and Demand Markets by 2035 (MTPA)¹\\n\\n[A world map showing supply and demand figures for different regions]\\n\\n- Supply (in green):\\n - North America: 64\\n - West Coast Optionality²: 212\\n - Qatar: 141\\n - Australia Pacific LNG: 77\\n - Rest of World: 71\\n\\n- Demand (in blue):\\n - North America: 437\\n - European Re-Gas: 128\\n\\n## ConocoPhillips Global Net LNG Exposure (MTPA)\\n\\n| Year | APLNG | QG3 | NFE/NFS | PA LNG³ |\\n|------|-------|-----|---------|---------|\\n| 2023 | ~7 | 0 | 0 | 0 |\\n| 2028 | ~7 | ~1 | ~1 | ~3 |\\n| 2032 | ~8 | ~1 | ~1 | ~4 |\\n\\n## ConocoPhillips Net LNG Capital Spend ($B)\\n\\n| Period | Spend |\\n|--------------|-------|\\n| 2023E | ~1.7 |\\n| 2024-2028 Average | ~0.5 |\\n| 2029-2032 Average | ~0.2 |\\n\\nCumulative Capital: ~$3.7B\\n\\n## ConocoPhillips Assets at Nexus of Supply and Demand\\n\\n- Asia and Europe to remain significant demand centers\\n- Qatar and Australia provide reliable LNG\\n- North America dominates LNG supply growth\\n\\n¹Wood Mackenzie Q4 2022, North America as marginal supplier. ²Offtake and/or equity at Energia Costa Azul (ECA) Phase 2 and offtake from ECA Phase 1.\\n³5 MTPA offtake and access to excess cargoes when Phase 1 liquefaction exceeds the 10.5 MTPA contracted under long term SPAs.\\n\\nConocoPhillips 32', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='30cdeb24-884f-4a6c-9589-349d758808d7', embedding=None, metadata={'page_num': 33, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-32.jpg', 'parsed_text_markdown': '# Port Arthur is a Premier LNG Development\\n\\n[Image showing a map of the United States with highlighted areas and an aerial view of a coastal industrial facility]\\n\\n## FID of Port Arthur Phase 1\\n\\n- FERC-approved and construction-ready with high-quality operator and EPC contractor\\n- ConocoPhillips to manage gas supply\\n- Near Gulf Coast infrastructure and fastest growing low-cost, low-GHG gas basins\\n- ConocoPhillips participation launched project\\n\\n## Strategic Optionality\\n\\n- Access to low-cost uncontracted excess capacity\\n- Secured long-term optionality on the Gulf and West Coasts¹\\n- Prioritizing market development and offtake over additional equity\\n- Evaluating development of CCS projects at Port Arthur facility\\n\\n## Low-Cost Offtake Secured\\n\\n- 5 MTPA offtake from Port Arthur Phase 1²\\n- Top tier liquefaction fee³\\n- Marketing currently underway; receiving significant customer interest\\n\\n¹Offtake and/or equity on up to six additional trains at Port Arthur, offtake and/or equity at ECA Phase 2, and offtake from ECA Phase 1.\\n²20-year agreement.\\n³Wood Mackenzie Q4 2022, contract fixed liquefaction fees.\\n\\nConocoPhillips 33'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Port Arthur is a Premier LNG Development\\n\\n[Image showing a map of the United States with highlighted areas and an aerial view of a coastal industrial facility]\\n\\n## FID of Port Arthur Phase 1\\n\\n- FERC-approved and construction-ready with high-quality operator and EPC contractor\\n- ConocoPhillips to manage gas supply\\n- Near Gulf Coast infrastructure and fastest growing low-cost, low-GHG gas basins\\n- ConocoPhillips participation launched project\\n\\n## Strategic Optionality\\n\\n- Access to low-cost uncontracted excess capacity\\n- Secured long-term optionality on the Gulf and West Coasts¹\\n- Prioritizing market development and offtake over additional equity\\n- Evaluating development of CCS projects at Port Arthur facility\\n\\n## Low-Cost Offtake Secured\\n\\n- 5 MTPA offtake from Port Arthur Phase 1²\\n- Top tier liquefaction fee³\\n- Marketing currently underway; receiving significant customer interest\\n\\n¹Offtake and/or equity on up to six additional trains at Port Arthur, offtake and/or equity at ECA Phase 2, and offtake from ECA Phase 1.\\n²20-year agreement.\\n³Wood Mackenzie Q4 2022, contract fixed liquefaction fees.\\n\\nConocoPhillips 33', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='87d1d1d0-bd4b-4911-90ab-89573b37901b', embedding=None, metadata={'page_num': 34, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-33.jpg', 'parsed_text_markdown': '# ConocoPhillips Commercial Advantage\\n\\n## Port Arthur LNG Marketing Example: Sale into Germany\\n\\n- ConocoPhillips holds re-gas capacity in Germany\\'s first onshore LNG terminal for portion of Port Arthur LNG\\n- Captures Trading Hub Europe (THE) price with diversion capability when other international prices exceed THE\\n- Managed and marketed by experienced ConocoPhillips commercial organization\\n\\n[Image: Map of Europe with a blue marker indicating \"European Re-Gas\" location, and an image of an LNG terminal with a ship docked]\\n\\n## Global Marketing Presence: >10 BCFD and >1 MMBOD¹\\n\\n[Image: Trading floor with multiple people working at computer stations]\\n\\nLocations:\\n- London\\n- Singapore\\n- Houston\\n- Calgary\\n- Beijing\\n- Tokyo\\n\\n| Category | Metric | Description |\\n|----------|--------|-------------|\\n| Global Gas, Power and LNG | 9x Equity | Gas marketed globally |\\n| | 6.0 GWh | Power marketed |\\n| | ~1 MTPA | Spot sales into Asia |\\n| LNG Licensing² | 113 MTPA | Utilizing Optimized Cascade® Process |\\n| | 2nd Largest | Global LNG technology provider |\\n| Global Crude and NGL | 25 Cargoes | Marketed globally per month |\\n| | 45% | Brent-linked |\\n| | 180 MBOD | North American export capacity |\\n\\n¹FY2022 data unless otherwise footnoted. ²Based on total global installed production capacity of 113 MTPA associated with 26 licensed LNG trains in operation.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# ConocoPhillips Commercial Advantage\\n\\n## Port Arthur LNG Marketing Example: Sale into Germany\\n\\n- ConocoPhillips holds re-gas capacity in Germany\\'s first onshore LNG terminal for portion of Port Arthur LNG\\n- Captures Trading Hub Europe (THE) price with diversion capability when other international prices exceed THE\\n- Managed and marketed by experienced ConocoPhillips commercial organization\\n\\n[Image: Map of Europe with a blue marker indicating \"European Re-Gas\" location, and an image of an LNG terminal with a ship docked]\\n\\n## Global Marketing Presence: >10 BCFD and >1 MMBOD¹\\n\\n[Image: Trading floor with multiple people working at computer stations]\\n\\nLocations:\\n- London\\n- Singapore\\n- Houston\\n- Calgary\\n- Beijing\\n- Tokyo\\n\\n| Category | Metric | Description |\\n|----------|--------|-------------|\\n| Global Gas, Power and LNG | 9x Equity | Gas marketed globally |\\n| | 6.0 GWh | Power marketed |\\n| | ~1 MTPA | Spot sales into Asia |\\n| LNG Licensing² | 113 MTPA | Utilizing Optimized Cascade® Process |\\n| | 2nd Largest | Global LNG technology provider |\\n| Global Crude and NGL | 25 Cargoes | Marketed globally per month |\\n| | 45% | Brent-linked |\\n| | 180 MBOD | North American export capacity |\\n\\n¹FY2022 data unless otherwise footnoted. ²Based on total global installed production capacity of 113 MTPA associated with 26 licensed LNG trains in operation.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='59f60c5e-209c-4941-a937-9e37c77523c4', embedding=None, metadata={'page_num': 35, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-34.jpg', 'parsed_text_markdown': '# Lower 48\\n\\nNick Olds\\nEVP, Lower 48'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Lower 48\\n\\nNick Olds\\nEVP, Lower 48', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='8c39389b-e2e9-4878-bb43-6c296641c90d', embedding=None, metadata={'page_num': 36, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-35.jpg', 'parsed_text_markdown': '# Premier Lower 48 Assets Underpin Our Returns-Focused Strategy\\n\\n| Industry Leader Focused on Maximizing Returns | Production and Free Cash Flow Growth into the Next Decade | Delivering Continuous Improvements |\\n|-----------------------------------------------|----------------------------------------------------------|-----------------------------------|\\n| Largest Lower 48 unconventional producer with deep, durable and diverse unconventional portfolio | Permian premising ~7% production growth, doubling free cash flow by end of decade | Accelerating technology across four core basins to enhance value |\\n| Disciplined development optimizing returns and recovery | Eagle Ford and Bakken delivering material free cash flow | Delivering on emissions reductions and sustainable development |\\n\\nFree cash flow (FCF) is a non-GAAP measure defined in the Appendix'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Premier Lower 48 Assets Underpin Our Returns-Focused Strategy\\n\\n| Industry Leader Focused on Maximizing Returns | Production and Free Cash Flow Growth into the Next Decade | Delivering Continuous Improvements |\\n|-----------------------------------------------|----------------------------------------------------------|-----------------------------------|\\n| Largest Lower 48 unconventional producer with deep, durable and diverse unconventional portfolio | Permian premising ~7% production growth, doubling free cash flow by end of decade | Accelerating technology across four core basins to enhance value |\\n| Disciplined development optimizing returns and recovery | Eagle Ford and Bakken delivering material free cash flow | Delivering on emissions reductions and sustainable development |\\n\\nFree cash flow (FCF) is a non-GAAP measure defined in the Appendix', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='0d30d17d-0b4a-4586-a09d-c12639e36592', embedding=None, metadata={'page_num': 37, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-36.jpg', 'parsed_text_markdown': '# Deep, Durable and Diverse Portfolio with Significant Growth Runway\\n\\n## 2022 Lower 48 Unconventional Production¹ (MBOED)\\n\\n| Company | Production |\\n|---------------|------------|\\n| ConocoPhillips| ~1000 |\\n| Company 2 | ~900 |\\n| Company 3 | ~850 |\\n| Company 4 | ~800 |\\n| Company 5 | ~700 |\\n| Company 6 | ~650 |\\n| Company 7 | ~600 |\\n| Company 8 | ~350 |\\n| Company 9 | ~300 |\\n\\n## Net Remaining Well Inventory²\\n\\n| Company | Well Inventory |\\n|---------------|----------------|\\n| ConocoPhillips| ~13000 |\\n| Company 2 | ~11000 |\\n| Company 3 | ~11000 |\\n| Company 4 | ~9000 |\\n| Company 5 | ~8000 |\\n| Company 6 | ~7500 |\\n| Company 7 | ~6000 |\\n| Company 8 | ~3500 |\\n| Company 9 | ~3000 |\\n\\n## WTI Cost of Supply ($/BBL) vs Resource (BBOE)\\n\\n| Resource (BBOE) | Delaware Basin | Midland Basin | Eagle Ford | Bakken | Other |\\n|-----------------|----------------|---------------|------------|--------|-------|\\n| 0-2 | ~$15 | ~$15 | ~$15 | ~$20 | ~$12 |\\n| 2-4 | ~$34 | - | - | - | - |\\n| 4-6 | ~$34 | - | - | - | - |\\n| 6-8 | ~$35 | - | - | - | - |\\n| 8-10 | ~$35 | ~$40 | ~$38 | - | - |\\n| 10+ | - | ~$40 | - | - | - |\\n\\nAverage Cost of Supply: ~$32/BBL\\n\\n## Largest Lower 48 Unconventional Producer, Growing into the Next Decade\\n\\n¹Source: Wood Mackenzie Lower 48 Unconventional Plays 2022 Production. Competitors include CVX, DVN, EOG, FANG, MRO, OXY, PXD and XOM, greater than 50% liquids weight.\\n²Source: Wood Mackenzie (March 2023); Lower 48 onshore operated inventory that achieves 15% IRR at $50/BBL WTI. Competitors include CVX, DVN, EOG, FANG, MRO, OXY, PXD, and XOM.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Deep, Durable and Diverse Portfolio with Significant Growth Runway\\n\\n## 2022 Lower 48 Unconventional Production¹ (MBOED)\\n\\n| Company | Production |\\n|---------------|------------|\\n| ConocoPhillips| ~1000 |\\n| Company 2 | ~900 |\\n| Company 3 | ~850 |\\n| Company 4 | ~800 |\\n| Company 5 | ~700 |\\n| Company 6 | ~650 |\\n| Company 7 | ~600 |\\n| Company 8 | ~350 |\\n| Company 9 | ~300 |\\n\\n## Net Remaining Well Inventory²\\n\\n| Company | Well Inventory |\\n|---------------|----------------|\\n| ConocoPhillips| ~13000 |\\n| Company 2 | ~11000 |\\n| Company 3 | ~11000 |\\n| Company 4 | ~9000 |\\n| Company 5 | ~8000 |\\n| Company 6 | ~7500 |\\n| Company 7 | ~6000 |\\n| Company 8 | ~3500 |\\n| Company 9 | ~3000 |\\n\\n## WTI Cost of Supply ($/BBL) vs Resource (BBOE)\\n\\n| Resource (BBOE) | Delaware Basin | Midland Basin | Eagle Ford | Bakken | Other |\\n|-----------------|----------------|---------------|------------|--------|-------|\\n| 0-2 | ~$15 | ~$15 | ~$15 | ~$20 | ~$12 |\\n| 2-4 | ~$34 | - | - | - | - |\\n| 4-6 | ~$34 | - | - | - | - |\\n| 6-8 | ~$35 | - | - | - | - |\\n| 8-10 | ~$35 | ~$40 | ~$38 | - | - |\\n| 10+ | - | ~$40 | - | - | - |\\n\\nAverage Cost of Supply: ~$32/BBL\\n\\n## Largest Lower 48 Unconventional Producer, Growing into the Next Decade\\n\\n¹Source: Wood Mackenzie Lower 48 Unconventional Plays 2022 Production. Competitors include CVX, DVN, EOG, FANG, MRO, OXY, PXD and XOM, greater than 50% liquids weight.\\n²Source: Wood Mackenzie (March 2023); Lower 48 onshore operated inventory that achieves 15% IRR at $50/BBL WTI. Competitors include CVX, DVN, EOG, FANG, MRO, OXY, PXD, and XOM.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='c14b0567-ac1c-414e-914a-94d896d3de20', embedding=None, metadata={'page_num': 38, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-37.jpg', 'parsed_text_markdown': '# Delaware: Vast Inventory with Proven Track Record of Performance\\n\\n## Prolific Acreage Spanning Over ~659,000 Net Acres¹\\n\\n[Image showing a map of the Delaware Basin with color-coded areas indicating cost of supply]\\n\\n## Total 10-Year Operated Permian Inventory\\n\\n| Basin | Percentage |\\n|-------|------------|\\n| Delaware Basin | 65% |\\n| Midland Basin | 35% |\\n\\n## 12-Month Cumulative Production³ (BOE/FT)\\n\\n[Graph showing production curves for years 2019-2022]\\n\\n~30% Improved Performance from 2019 to 2022\\n\\n## Delaware Basin Well Capex/EUR⁴ ($/BOE)\\n\\n| Company | Capex/EUR |\\n|---------|-----------|\\n| ConocoPhillips | ~10 |\\n| Competitor 1 | ~11 |\\n| Competitor 2 | ~11 |\\n| Competitor 3 | ~12 |\\n| Competitor 4 | ~13 |\\n| Competitor 5 | ~14 |\\n| Competitor 6 | ~15 |\\n| Competitor 7 | ~24 |\\n\\n## High Single-Digit Production Growth\\n\\n¹Unconventional acres. ²Source: Enverus and ConocoPhillips (March 2023). ³Source: Enverus (March 2023) based on wells online year. ⁴Source: Enverus (March 2023). Average single well capex/EUR. Top eight public operators based on wells online in years 2021-2022, greater than 50% oil weight. COP based on COP well design. Competitors include: CVX, DVN, EOG, MTDR, OVV, PXD and XOM.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Delaware: Vast Inventory with Proven Track Record of Performance\\n\\n## Prolific Acreage Spanning Over ~659,000 Net Acres¹\\n\\n[Image showing a map of the Delaware Basin with color-coded areas indicating cost of supply]\\n\\n## Total 10-Year Operated Permian Inventory\\n\\n| Basin | Percentage |\\n|-------|------------|\\n| Delaware Basin | 65% |\\n| Midland Basin | 35% |\\n\\n## 12-Month Cumulative Production³ (BOE/FT)\\n\\n[Graph showing production curves for years 2019-2022]\\n\\n~30% Improved Performance from 2019 to 2022\\n\\n## Delaware Basin Well Capex/EUR⁴ ($/BOE)\\n\\n| Company | Capex/EUR |\\n|---------|-----------|\\n| ConocoPhillips | ~10 |\\n| Competitor 1 | ~11 |\\n| Competitor 2 | ~11 |\\n| Competitor 3 | ~12 |\\n| Competitor 4 | ~13 |\\n| Competitor 5 | ~14 |\\n| Competitor 6 | ~15 |\\n| Competitor 7 | ~24 |\\n\\n## High Single-Digit Production Growth\\n\\n¹Unconventional acres. ²Source: Enverus and ConocoPhillips (March 2023). ³Source: Enverus (March 2023) based on wells online year. ⁴Source: Enverus (March 2023). Average single well capex/EUR. Top eight public operators based on wells online in years 2021-2022, greater than 50% oil weight. COP based on COP well design. Competitors include: CVX, DVN, EOG, MTDR, OVV, PXD and XOM.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='30629869-a6a3-475d-93fd-8ead38e9b800', embedding=None, metadata={'page_num': 39, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-38.jpg', 'parsed_text_markdown': '# Midland: Acreage in the Heart of Liquids-Rich Basin\\n\\n## High-Margin Play Spanning Over ~251,000 Net Acres¹\\n\\n[Map of Texas showing the Midland Basin area with a heat map indicating Cost of Supply²]\\n\\n### Total 10-Year Operated Permian Inventory\\n| Basin | Percentage |\\n|-------|------------|\\n| Midland Basin | 35% |\\n| Delaware Basin | 65% |\\n\\n## 12-Month Cumulative Production³ (BOE/FT)\\n[Graph showing production curves for 2019 and 2020-2022]\\n- ~6% Improved Performance from 2019 to 2022\\n\\n## Midland Basin Well Capex/EUR⁴ ($/BOE)\\n| Company | Capex/EUR |\\n|---------|-----------|\\n| ConocoPhillips | ~15 |\\n| Other Companies | 10-20 |\\n\\n## Low to Mid Single-Digit Production Growth\\n\\nFootnotes:\\n1. Unconventional acres.\\n2. Source: Enverus and ConocoPhillips (March 2023).\\n3. Source: Enverus (March 2023) based on wells online year.\\n4. Source: Enverus (March 2023). Average single well capex/EUR. Top eight public operators based on wells online in years 2021-2022, greater than 50% oil weight. Competitors include FANG, OVV, PXD, SM, VTLR and XOM.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Midland: Acreage in the Heart of Liquids-Rich Basin\\n\\n## High-Margin Play Spanning Over ~251,000 Net Acres¹\\n\\n[Map of Texas showing the Midland Basin area with a heat map indicating Cost of Supply²]\\n\\n### Total 10-Year Operated Permian Inventory\\n| Basin | Percentage |\\n|-------|------------|\\n| Midland Basin | 35% |\\n| Delaware Basin | 65% |\\n\\n## 12-Month Cumulative Production³ (BOE/FT)\\n[Graph showing production curves for 2019 and 2020-2022]\\n- ~6% Improved Performance from 2019 to 2022\\n\\n## Midland Basin Well Capex/EUR⁴ ($/BOE)\\n| Company | Capex/EUR |\\n|---------|-----------|\\n| ConocoPhillips | ~15 |\\n| Other Companies | 10-20 |\\n\\n## Low to Mid Single-Digit Production Growth\\n\\nFootnotes:\\n1. Unconventional acres.\\n2. Source: Enverus and ConocoPhillips (March 2023).\\n3. Source: Enverus (March 2023) based on wells online year.\\n4. Source: Enverus (March 2023). Average single well capex/EUR. Top eight public operators based on wells online in years 2021-2022, greater than 50% oil weight. Competitors include FANG, OVV, PXD, SM, VTLR and XOM.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='9d2b8973-9bfa-473a-ba98-bf28d8b5f6dd', embedding=None, metadata={'page_num': 40, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-39.jpg', 'parsed_text_markdown': '# Continuously Optimizing Permian Acreage and Value\\n\\n## Acreage Trades\\n\\n### Illustration\\n| Pre-Trade | Post-Trade |\\n|-----------|------------|\\n| [Diagram showing vertical strips representing pre-trade acreage] | [Diagram showing consolidated vertical strips representing post-trade acreage] |\\n\\n### Trade Area\\n[Map showing LOVING and REEVES counties with color-coded squares]\\n- Light blue: ConocoPhillips Acreage\\n- Green: Trade-in\\n- Gray: Trade-out\\n\\n## Recent Acreage Trade Metrics\\n\\n| Metric | Change |\\n|--------|--------|\\n| Lateral Length | ↑ 2x |\\n| Capex/FT | ↓ 30% |\\n| Cost of Supply | ↓ 30% |\\n\\n## Permian-Operated Inventory\\n\\nComplementary Positions Enable Trade and Core-Up Opportunities\\n\\n~30-40% Cost of Supply Improvement from Lateral-Length Extensions\\n\\n| Lateral Length | Percentage |\\n|----------------|------------|\\n| 1.5 miles to 2 miles | ~20% |\\n| 2 miles or greater | ~60% |\\n\\n## Vast Long-Lateral Inventory Enhances Returns and Durability'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Continuously Optimizing Permian Acreage and Value\\n\\n## Acreage Trades\\n\\n### Illustration\\n| Pre-Trade | Post-Trade |\\n|-----------|------------|\\n| [Diagram showing vertical strips representing pre-trade acreage] | [Diagram showing consolidated vertical strips representing post-trade acreage] |\\n\\n### Trade Area\\n[Map showing LOVING and REEVES counties with color-coded squares]\\n- Light blue: ConocoPhillips Acreage\\n- Green: Trade-in\\n- Gray: Trade-out\\n\\n## Recent Acreage Trade Metrics\\n\\n| Metric | Change |\\n|--------|--------|\\n| Lateral Length | ↑ 2x |\\n| Capex/FT | ↓ 30% |\\n| Cost of Supply | ↓ 30% |\\n\\n## Permian-Operated Inventory\\n\\nComplementary Positions Enable Trade and Core-Up Opportunities\\n\\n~30-40% Cost of Supply Improvement from Lateral-Length Extensions\\n\\n| Lateral Length | Percentage |\\n|----------------|------------|\\n| 1.5 miles to 2 miles | ~20% |\\n| 2 miles or greater | ~60% |\\n\\n## Vast Long-Lateral Inventory Enhances Returns and Durability', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='06cf5e86-b80b-4763-8def-c18547643a5d', embedding=None, metadata={'page_num': 41, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-40.jpg', 'parsed_text_markdown': '# Permian Drives Free Cash Flow in Lower 48\\n\\n| Metric | Value | Description |\\n|--------|-------|-------------|\\n| ~7% | 10-Year Production CAGR |\\n| ~50% | Reinvestment Rate¹ |\\n| <$35/BBL | Program Cost of Supply |\\n\\n## Production (MBOED) Growing to Plateau in the 2nd Decade\\n\\n| Year | $60/BBL WTI Mid-Cycle Planning Price | $80/BBL WTI Upside Sensitivity |\\n|------|--------------------------------------|--------------------------------|\\n| 2023E | ~700 | ~700 |\\n| 2024-2028 Average | ~850 | ~850 |\\n| 2029-2032 Average | ~1150 | ~1150 |\\n\\n## FCF ($B)\\n\\n| Year | $60/BBL WTI Mid-Cycle Planning Price | $80/BBL WTI Upside Sensitivity |\\n|------|--------------------------------------|--------------------------------|\\n| 2023E | ~4 | ~4 |\\n| 2024-2028 Average | ~3.5 | ~6 |\\n| 2029-2032 Average | ~5.5 | ~10 |\\n\\n~$45B FCF Generated Over the Next 10 Years at $60/BBL WTI\\n\\n### Top-Tier Permian Position, Growing into the Next Decade\\n\\n¹Over the next 10 years at $60/bbl\\nReinvestment rate and free cash flow (FCF) are non-GAAP measures defined in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Permian Drives Free Cash Flow in Lower 48\\n\\n| Metric | Value | Description |\\n|--------|-------|-------------|\\n| ~7% | 10-Year Production CAGR |\\n| ~50% | Reinvestment Rate¹ |\\n| <$35/BBL | Program Cost of Supply |\\n\\n## Production (MBOED) Growing to Plateau in the 2nd Decade\\n\\n| Year | $60/BBL WTI Mid-Cycle Planning Price | $80/BBL WTI Upside Sensitivity |\\n|------|--------------------------------------|--------------------------------|\\n| 2023E | ~700 | ~700 |\\n| 2024-2028 Average | ~850 | ~850 |\\n| 2029-2032 Average | ~1150 | ~1150 |\\n\\n## FCF ($B)\\n\\n| Year | $60/BBL WTI Mid-Cycle Planning Price | $80/BBL WTI Upside Sensitivity |\\n|------|--------------------------------------|--------------------------------|\\n| 2023E | ~4 | ~4 |\\n| 2024-2028 Average | ~3.5 | ~6 |\\n| 2029-2032 Average | ~5.5 | ~10 |\\n\\n~$45B FCF Generated Over the Next 10 Years at $60/BBL WTI\\n\\n### Top-Tier Permian Position, Growing into the Next Decade\\n\\n¹Over the next 10 years at $60/bbl\\nReinvestment rate and free cash flow (FCF) are non-GAAP measures defined in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='61b6a966-0fe3-46da-99d3-2d6152279267', embedding=None, metadata={'page_num': 42, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-41.jpg', 'parsed_text_markdown': '# Eagle Ford and Bakken Delivering Material Free Cash Flow\\n\\n## ~199,000 Net Acres¹ in Eagle Ford\\n## ~560,000 Net Acres¹ in Bakken\\n\\n[Image showing maps of Eagle Ford in Texas and Bakken in North Dakota/Montana with color-coded cost of supply]\\n\\n## Consistent and Proven Track Record in Basin Sweet Spots\\n\\n### Eagle Ford Well Capex/EUR³ ($/BOE)\\n\\n| ConocoPhillips | Competitor 1 | Competitor 2 | Competitor 3 | Competitor 4 | Competitor 5 | Competitor 6 | Competitor 7 |\\n|----------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|\\n| ~12 | ~16 | ~21 | ~22 | ~22 | ~23 | ~28 | ~28 |\\n\\n### Bakken Well Capex/EUR⁴ ($/BOE)\\n\\n| ConocoPhillips | Competitor 1 | Competitor 2 | Competitor 3 | Competitor 4 | Competitor 5 | Competitor 6 | Competitor 7 |\\n|----------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|\\n| ~9 | ~9 | ~9.5 | ~9.5 | ~10 | ~11 | ~11.5 | ~11.5 |\\n\\n## Sustains Production Over the Decade\\n\\n### Production (MBOED)\\n\\n| Year | Bakken | Eagle Ford | Total |\\n|---------------|--------|------------|-------|\\n| 2023E | ~110 | ~220 | ~330 |\\n| 2024-2028 Avg | ~100 | ~240 | ~340 |\\n| 2029-2032 Avg | ~80 | ~250 | ~330 |\\n\\n## Delivers ~$20B FCF Over the Next 10 Years at $60/BBL WTI\\n\\n[Additional notes and footnotes are present in the image but not transcribed here for brevity]'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Eagle Ford and Bakken Delivering Material Free Cash Flow\\n\\n## ~199,000 Net Acres¹ in Eagle Ford\\n## ~560,000 Net Acres¹ in Bakken\\n\\n[Image showing maps of Eagle Ford in Texas and Bakken in North Dakota/Montana with color-coded cost of supply]\\n\\n## Consistent and Proven Track Record in Basin Sweet Spots\\n\\n### Eagle Ford Well Capex/EUR³ ($/BOE)\\n\\n| ConocoPhillips | Competitor 1 | Competitor 2 | Competitor 3 | Competitor 4 | Competitor 5 | Competitor 6 | Competitor 7 |\\n|----------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|\\n| ~12 | ~16 | ~21 | ~22 | ~22 | ~23 | ~28 | ~28 |\\n\\n### Bakken Well Capex/EUR⁴ ($/BOE)\\n\\n| ConocoPhillips | Competitor 1 | Competitor 2 | Competitor 3 | Competitor 4 | Competitor 5 | Competitor 6 | Competitor 7 |\\n|----------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|\\n| ~9 | ~9 | ~9.5 | ~9.5 | ~10 | ~11 | ~11.5 | ~11.5 |\\n\\n## Sustains Production Over the Decade\\n\\n### Production (MBOED)\\n\\n| Year | Bakken | Eagle Ford | Total |\\n|---------------|--------|------------|-------|\\n| 2023E | ~110 | ~220 | ~330 |\\n| 2024-2028 Avg | ~100 | ~240 | ~340 |\\n| 2029-2032 Avg | ~80 | ~250 | ~330 |\\n\\n## Delivers ~$20B FCF Over the Next 10 Years at $60/BBL WTI\\n\\n[Additional notes and footnotes are present in the image but not transcribed here for brevity]', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='91f47f5c-ab9d-4823-ba4c-06a57244e096', embedding=None, metadata={'page_num': 43, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-42.jpg', 'parsed_text_markdown': \"# Enhancing Value and Lowering Emissions through Technology\\n\\n| Drilling | Completions | Operations |\\n|----------|-------------|------------|\\n| ![Permian Real-Time Ops Center](image1) | ![E-Frac](image2) | ![Autonomous Drone Pilot](image3) |\\n| Permian Real-Time Ops Center | E-Frac | Autonomous Drone Pilot |\\n| Real-time analytics improve curve build time by 20% in Eagle Ford | Dual fuel and E-frac reduce emissions ~10% to ~40% compared to diesel | Real-time intelligent production surveillance, automation and process optimization |\\n| Permian drilling efficiencies¹ improved ~50% since 2019 | >50% of Permian completions to be Simulfrac'd in 2023 | Drone-based surveillance increases inspection frequency |\\n\\n## Leveraging Operational Wins Across Core Four Basins\\n\\n¹Permian drilling efficiencies defined as measured depth (feet) per day.\"}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text=\"# Enhancing Value and Lowering Emissions through Technology\\n\\n| Drilling | Completions | Operations |\\n|----------|-------------|------------|\\n| ![Permian Real-Time Ops Center](image1) | ![E-Frac](image2) | ![Autonomous Drone Pilot](image3) |\\n| Permian Real-Time Ops Center | E-Frac | Autonomous Drone Pilot |\\n| Real-time analytics improve curve build time by 20% in Eagle Ford | Dual fuel and E-frac reduce emissions ~10% to ~40% compared to diesel | Real-time intelligent production surveillance, automation and process optimization |\\n| Permian drilling efficiencies¹ improved ~50% since 2019 | >50% of Permian completions to be Simulfrac'd in 2023 | Drone-based surveillance increases inspection frequency |\\n\\n## Leveraging Operational Wins Across Core Four Basins\\n\\n¹Permian drilling efficiencies defined as measured depth (feet) per day.\", mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='03acbd69-35b4-4956-b907-002cdce41f0d', embedding=None, metadata={'page_num': 44, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-43.jpg', 'parsed_text_markdown': '# Delivering on Emissions Reductions and Sustainable Development\\n\\n| Metric | 2019 | 2022 | Change |\\n|--------|------|------|--------|\\n| Lower 48 GHG Intensity¹ (kg CO₂e/BOE) | 28 | 15² | ~50% Reduction |\\n| Lower 48 Associated Gas Flaring³ (%) | 1.7% | 0.3%² | ~80% Reduction |\\n| Permian Recycled Frac Water (%) | 11% | 52% | >3X Increase |\\n\\n## Focused Plans to Further Reduce Emissions and Maximize Water Reuse\\n\\n- Reducing Methane and Flaring\\n- Improving Facilities Design\\n- Electrifying Compression\\n- Optimizing D&C Power\\n- Water Conservation\\n\\n¹Gross operated GHG Emissions (Scope 1 and 2). ²Preliminary estimates. Includes Permian, Eagle Ford and Bakken only. ³Excludes safety, assist gas, pilot gas, tanks and emergency shutdown flaring.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Delivering on Emissions Reductions and Sustainable Development\\n\\n| Metric | 2019 | 2022 | Change |\\n|--------|------|------|--------|\\n| Lower 48 GHG Intensity¹ (kg CO₂e/BOE) | 28 | 15² | ~50% Reduction |\\n| Lower 48 Associated Gas Flaring³ (%) | 1.7% | 0.3%² | ~80% Reduction |\\n| Permian Recycled Frac Water (%) | 11% | 52% | >3X Increase |\\n\\n## Focused Plans to Further Reduce Emissions and Maximize Water Reuse\\n\\n- Reducing Methane and Flaring\\n- Improving Facilities Design\\n- Electrifying Compression\\n- Optimizing D&C Power\\n- Water Conservation\\n\\n¹Gross operated GHG Emissions (Scope 1 and 2). ²Preliminary estimates. Includes Permian, Eagle Ford and Bakken only. ³Excludes safety, assist gas, pilot gas, tanks and emergency shutdown flaring.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='5cfa441b-eb03-47f7-bf60-87a6a4fa7cc9', embedding=None, metadata={'page_num': 45, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-44.jpg', 'parsed_text_markdown': '# Significant Free Cash Flow Growth Over the Decade\\n\\n| Capital ($B) | 2023E | 2024-2028 Average | 2029-2032 Average |\\n|--------------|-------|-------------------|-------------------|\\n| Value | 6.3 | 6.5 | 8.1 |\\n\\n| Production (MBOED) | 2023E | 2024-2028 Average | 2029-2032 Average |\\n|--------------------|-------|-------------------|-------------------|\\n| Value | 1050 | 1220 | 1530 |\\n\\n| FCF ($B) | 2023E | 2024-2028 Average | 2029-2032 Average |\\n|--------------------|-------|-------------------|-------------------|\\n| $60/BBL WTI | 7 | 5.5 | 8 |\\n| $80/BBL WTI Upside | - | 3 | 5 |\\n\\n- The image includes a map of the United States with highlighted areas, likely indicating operational regions.\\n\\n- $80/BBL WTI Upside Sensitivity\\n- $60/BBL WTI Mid-Cycle Planning Price\\n\\n## ~$65B FCF and ~50% Reinvestment Rate\\nOver the Next 10 Years at $60/BBL WTI\\n\\nReinvestment rate and free cash flow (FCF) are non-GAAP measures defined in the appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Significant Free Cash Flow Growth Over the Decade\\n\\n| Capital ($B) | 2023E | 2024-2028 Average | 2029-2032 Average |\\n|--------------|-------|-------------------|-------------------|\\n| Value | 6.3 | 6.5 | 8.1 |\\n\\n| Production (MBOED) | 2023E | 2024-2028 Average | 2029-2032 Average |\\n|--------------------|-------|-------------------|-------------------|\\n| Value | 1050 | 1220 | 1530 |\\n\\n| FCF ($B) | 2023E | 2024-2028 Average | 2029-2032 Average |\\n|--------------------|-------|-------------------|-------------------|\\n| $60/BBL WTI | 7 | 5.5 | 8 |\\n| $80/BBL WTI Upside | - | 3 | 5 |\\n\\n- The image includes a map of the United States with highlighted areas, likely indicating operational regions.\\n\\n- $80/BBL WTI Upside Sensitivity\\n- $60/BBL WTI Mid-Cycle Planning Price\\n\\n## ~$65B FCF and ~50% Reinvestment Rate\\nOver the Next 10 Years at $60/BBL WTI\\n\\nReinvestment rate and free cash flow (FCF) are non-GAAP measures defined in the appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='a0e9e996-cb98-4f8c-aff4-149329ae77f4', embedding=None, metadata={'page_num': 46, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-45.jpg', 'parsed_text_markdown': '# Financial Plan\\n\\nBill Bullock\\nEVP and CFO'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Financial Plan\\n\\nBill Bullock\\nEVP and CFO', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='d68bd704-4c3c-45f3-a52e-a21cb01f2eac', embedding=None, metadata={'page_num': 47, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-46.jpg', 'parsed_text_markdown': \"# A Financial Plan with Durability of Returns and Cash Flow Growth\\n\\n| Consistent Returns on and of Capital | Cash Flow Growth into the Next Decade | Battle-Tested Financial Priorities |\\n|--------------------------------------|----------------------------------------|-----------------------------------|\\n| ![Chart icon](icon1) | ![Dollar and arrows icon](icon2) | ![Document and pencil icon](icon3) |\\n| Peer-leading ROCE improving through time | ~6% CFO CAGR¹ through the plan | 'A'-rated balance sheet resilient through cycles |\\n| CFO-based distribution framework with compelling shareholder returns | Disciplined capital investment accelerates FCF growth | Stress-tested financial durability |\\n\\n¹CAGR calculated from FY2024 at $60/BBL WTI.\\nReturn on capital employed (ROCE), cash from operations (CFO) and free cash flow (FCF) are non-GAAP measures defined in the Appendix.\\n\\nConocoPhillips 47\"}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text=\"# A Financial Plan with Durability of Returns and Cash Flow Growth\\n\\n| Consistent Returns on and of Capital | Cash Flow Growth into the Next Decade | Battle-Tested Financial Priorities |\\n|--------------------------------------|----------------------------------------|-----------------------------------|\\n| ![Chart icon](icon1) | ![Dollar and arrows icon](icon2) | ![Document and pencil icon](icon3) |\\n| Peer-leading ROCE improving through time | ~6% CFO CAGR¹ through the plan | 'A'-rated balance sheet resilient through cycles |\\n| CFO-based distribution framework with compelling shareholder returns | Disciplined capital investment accelerates FCF growth | Stress-tested financial durability |\\n\\n¹CAGR calculated from FY2024 at $60/BBL WTI.\\nReturn on capital employed (ROCE), cash from operations (CFO) and free cash flow (FCF) are non-GAAP measures defined in the Appendix.\\n\\nConocoPhillips 47\", mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='456578fb-32df-4588-ae2a-c94ba47644b9', embedding=None, metadata={'page_num': 48, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-47.jpg', 'parsed_text_markdown': '# Committed to Top-Quartile Returns on Capital\\n\\n## Five-Year Average ROCE¹\\nPeer-Leading ROCE Performance\\n\\n| Company/Category | ROCE |\\n|-------------------|------|\\n| ConocoPhillips | 14% |\\n| Independent Peers² | 13.6%, 11.4%, 9.8%, 4.9%, 3.8%, 0.8% |\\n| Integrated Peers² | 8.2%, 7.2% |\\n\\n## Earnings ($B)\\nLow Cost of Supply Investments Fuel Expanding Margins\\n\\n~10% CAGR\\n2024-2032 at $60/BBL WTI\\n\\n| Year/Period | Earnings |\\n|-------------------|----------|\\n| 2023E | ~11 |\\n| 2024-2028 Average | ~17 |\\n| 2029-2032 Average | ~24 |\\n\\n## Return on Capital Employed (ROCE)\\nNear-Term Delivery of S&P 500 Top-Quartile ROCE\\n\\n| Year/Period | $60/BBL WTI Mid-Cycle Planning Price | $80/BBL WTI Upside Sensitivity | S&P 500 Top Quartile³ |\\n|-------------------|--------------------------------------|-------------------------------|------------------------|\\n| 2023E | ~18% | ~2% | ~17% |\\n| 2024-2028 Average | ~16% | ~9% | ~17% |\\n| 2029-2032 Average | ~20% | ~15% | ~17% |\\n\\n¹Source: Bloomberg Return on Capital 2018 through 2022. ²Integrated peers include CVX and XOM. Independent peers include APA, DVN, EOG, HES, OXY and PXD. ³Represents top quartile of five-year average ROCE (2018-2022) for constituents as of December 31, 2022.\\nEarnings refers to net income. Return on capital employed (ROCE) is a non-GAAP measure defined in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Committed to Top-Quartile Returns on Capital\\n\\n## Five-Year Average ROCE¹\\nPeer-Leading ROCE Performance\\n\\n| Company/Category | ROCE |\\n|-------------------|------|\\n| ConocoPhillips | 14% |\\n| Independent Peers² | 13.6%, 11.4%, 9.8%, 4.9%, 3.8%, 0.8% |\\n| Integrated Peers² | 8.2%, 7.2% |\\n\\n## Earnings ($B)\\nLow Cost of Supply Investments Fuel Expanding Margins\\n\\n~10% CAGR\\n2024-2032 at $60/BBL WTI\\n\\n| Year/Period | Earnings |\\n|-------------------|----------|\\n| 2023E | ~11 |\\n| 2024-2028 Average | ~17 |\\n| 2029-2032 Average | ~24 |\\n\\n## Return on Capital Employed (ROCE)\\nNear-Term Delivery of S&P 500 Top-Quartile ROCE\\n\\n| Year/Period | $60/BBL WTI Mid-Cycle Planning Price | $80/BBL WTI Upside Sensitivity | S&P 500 Top Quartile³ |\\n|-------------------|--------------------------------------|-------------------------------|------------------------|\\n| 2023E | ~18% | ~2% | ~17% |\\n| 2024-2028 Average | ~16% | ~9% | ~17% |\\n| 2029-2032 Average | ~20% | ~15% | ~17% |\\n\\n¹Source: Bloomberg Return on Capital 2018 through 2022. ²Integrated peers include CVX and XOM. Independent peers include APA, DVN, EOG, HES, OXY and PXD. ³Represents top quartile of five-year average ROCE (2018-2022) for constituents as of December 31, 2022.\\nEarnings refers to net income. Return on capital employed (ROCE) is a non-GAAP measure defined in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='884650b4-5c1e-4056-985f-2d4439c2bbf1', embedding=None, metadata={'page_num': 49, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-48.jpg', 'parsed_text_markdown': '# Cash Flow Growth into the Next Decade\\n\\n| Cash From Operations ($B) |\\n|----------------------------|\\n| 40 |\\n| 30 |\\n| 20 |\\n| 10 |\\n| 0 |\\n\\n~6% CAGR\\n2024-2032 at $60/BBL WTI\\n\\n| Year | $60/BBL WTI Mid-Cycle Planning Price | $80/BBL WTI Upside Sensitivity |\\n|--------------|--------------------------------------|--------------------------------|\\n| 2023E | - | ~22 |\\n| 2024-2028 | ~19 | ~8 |\\n| 2029-2032 | ~27 | ~10 |\\n| Average | | |\\n\\n| Free Cash Flow ($B) |\\n|---------------------|\\n| 40 |\\n| 30 |\\n| 20 |\\n| 10 |\\n| 0 |\\n\\n~11% CAGR\\n2024-2032 at $60/BBL WTI\\n\\n| Year | $60/BBL WTI Mid-Cycle Planning Price | $80/BBL WTI Upside Sensitivity |\\n|--------------|--------------------------------------|--------------------------------|\\n| 2023E | - | ~11 |\\n| 2024-2028 | ~9 | ~6 |\\n| 2029-2032 | ~16 | ~9 |\\n| Average | | |\\n\\n## ~$3.5B of Annual CFO is from Longer-Cycle Projects¹\\n2029-2032 Average at $60/BBL WTI\\n\\n## >$115B FCF Available for Distribution\\nOver the Next 10 Years at $60/BBL WTI\\n\\n¹2029-2032 annual average CFO from longer-cycle projects of ~$5B at $80/BBL WTI. Longer-cycle projects are Willow, Port Arthur LNG Phase 1 and North Field Expansions.\\nCash from operations (CFO) and free cash flow (FCF) are non-GAAP measures defined in the Appendix.\\n\\nConocoPhillips 49'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Cash Flow Growth into the Next Decade\\n\\n| Cash From Operations ($B) |\\n|----------------------------|\\n| 40 |\\n| 30 |\\n| 20 |\\n| 10 |\\n| 0 |\\n\\n~6% CAGR\\n2024-2032 at $60/BBL WTI\\n\\n| Year | $60/BBL WTI Mid-Cycle Planning Price | $80/BBL WTI Upside Sensitivity |\\n|--------------|--------------------------------------|--------------------------------|\\n| 2023E | - | ~22 |\\n| 2024-2028 | ~19 | ~8 |\\n| 2029-2032 | ~27 | ~10 |\\n| Average | | |\\n\\n| Free Cash Flow ($B) |\\n|---------------------|\\n| 40 |\\n| 30 |\\n| 20 |\\n| 10 |\\n| 0 |\\n\\n~11% CAGR\\n2024-2032 at $60/BBL WTI\\n\\n| Year | $60/BBL WTI Mid-Cycle Planning Price | $80/BBL WTI Upside Sensitivity |\\n|--------------|--------------------------------------|--------------------------------|\\n| 2023E | - | ~11 |\\n| 2024-2028 | ~9 | ~6 |\\n| 2029-2032 | ~16 | ~9 |\\n| Average | | |\\n\\n## ~$3.5B of Annual CFO is from Longer-Cycle Projects¹\\n2029-2032 Average at $60/BBL WTI\\n\\n## >$115B FCF Available for Distribution\\nOver the Next 10 Years at $60/BBL WTI\\n\\n¹2029-2032 annual average CFO from longer-cycle projects of ~$5B at $80/BBL WTI. Longer-cycle projects are Willow, Port Arthur LNG Phase 1 and North Field Expansions.\\nCash from operations (CFO) and free cash flow (FCF) are non-GAAP measures defined in the Appendix.\\n\\nConocoPhillips 49', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='cf377d90-69b9-43ba-80c1-25fabc38d801', embedding=None, metadata={'page_num': 50, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-49.jpg', 'parsed_text_markdown': '# CFO-Based Framework Delivers Leading Returns of Capital\\n\\n## Five-Year Distribution as % of CFO¹\\nConsistent Execution on Our Priorities\\n\\n| Company/Group | Percentage |\\n|----------------|------------|\\n| ConocoPhillips | 44% |\\n| Integrated Peers³ | 42% |\\n| Independent Peers³ | 35% |\\n\\n## Five-Year Distribution Yield²\\nTrack Record of Leading Distributions\\n\\n| Company/Group | Yield |\\n|----------------|-------|\\n| ConocoPhillips | 7.2% |\\n| Independent Peers³ | 6.6% |\\n| Integrated Peers³ | 5.6% |\\n\\n## Compelling Shareholder Returns Through Cycles\\n\\n| Tier 1 | Tier 2 | Tier 3 |\\n|--------|--------|--------|\\n| Ordinary Dividend | Share Buybacks | VROC |\\n| S&P Top-Quartile Dividend Growth | Reduces Absolute Dividend Over Time | Flexible Channel for Higher Commodity Prices |\\n\\n¹Source: Bloomberg. 2018-2022 weighted-average of dividend paid and share buybacks as a percentage of CFO.\\n²Source: Bloomberg. 2018-2022 average of dividend paid and share buybacks as a percentage of year-end market cap.\\n³Integrated peers include CVX and XOM. Independent peers include APA, DVN, EOG, HES, OXY and PXD.\\nCash from operations (CFO) is a non-GAAP measure defined in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# CFO-Based Framework Delivers Leading Returns of Capital\\n\\n## Five-Year Distribution as % of CFO¹\\nConsistent Execution on Our Priorities\\n\\n| Company/Group | Percentage |\\n|----------------|------------|\\n| ConocoPhillips | 44% |\\n| Integrated Peers³ | 42% |\\n| Independent Peers³ | 35% |\\n\\n## Five-Year Distribution Yield²\\nTrack Record of Leading Distributions\\n\\n| Company/Group | Yield |\\n|----------------|-------|\\n| ConocoPhillips | 7.2% |\\n| Independent Peers³ | 6.6% |\\n| Integrated Peers³ | 5.6% |\\n\\n## Compelling Shareholder Returns Through Cycles\\n\\n| Tier 1 | Tier 2 | Tier 3 |\\n|--------|--------|--------|\\n| Ordinary Dividend | Share Buybacks | VROC |\\n| S&P Top-Quartile Dividend Growth | Reduces Absolute Dividend Over Time | Flexible Channel for Higher Commodity Prices |\\n\\n¹Source: Bloomberg. 2018-2022 weighted-average of dividend paid and share buybacks as a percentage of CFO.\\n²Source: Bloomberg. 2018-2022 average of dividend paid and share buybacks as a percentage of year-end market cap.\\n³Integrated peers include CVX and XOM. Independent peers include APA, DVN, EOG, HES, OXY and PXD.\\nCash from operations (CFO) is a non-GAAP measure defined in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='a0ef5673-1d50-4121-9513-8a15f24fd9fc', embedding=None, metadata={'page_num': 51, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-50.jpg', 'parsed_text_markdown': '# Fortress Balance Sheet: A Strategic Asset\\n\\n## Gross Debt Profile\\n\\n| Year | Debt Amount | Event |\\n|------|-------------|-------|\\n| 2021 | $20B | - |\\n| - | $3B | Debt Reduction Achieved |\\n| 2022 | $17B | - |\\n| - | $2B | Natural Maturities |\\n| 2026 | $15B | - |\\n\\n## On Target\\n\\n- $5B debt reduction by 2026\\n- ~$250MM/year interest reduction\\n- Weighted-average maturity extension of three years\\n\\n## Net Debt/CFO\\nConsensus 2023¹\\n\\n| Company/Group | Net Debt/CFO Ratio |\\n|----------------|---------------------|\\n| Integrated Peers² | ~0.0x |\\n| ConocoPhillips | 0.3x |\\n| Independent Peers² | ~0.8x |\\n| S&P 500 Energy | ~1.5x |\\n| S&P 500 | ~2.7x |\\n\\n## Net Debt/CFO at $60/BBL WTI\\n\\n| Period | Net Debt/CFO Ratio |\\n|--------|---------------------|\\n| 2024-2028 Average | 0.3x |\\n| 2029-2032 Average | 0.2x |\\n\\n¹Source: Bloomberg. Net Debt to CFO. As of March 30, 2023. ²Integrated peers include CVX and XOM. Independent peers include APA, DVN, EOG, HES, OXY and PXD. Net debt and cash from operations (CFO) are non-GAAP measures defined in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Fortress Balance Sheet: A Strategic Asset\\n\\n## Gross Debt Profile\\n\\n| Year | Debt Amount | Event |\\n|------|-------------|-------|\\n| 2021 | $20B | - |\\n| - | $3B | Debt Reduction Achieved |\\n| 2022 | $17B | - |\\n| - | $2B | Natural Maturities |\\n| 2026 | $15B | - |\\n\\n## On Target\\n\\n- $5B debt reduction by 2026\\n- ~$250MM/year interest reduction\\n- Weighted-average maturity extension of three years\\n\\n## Net Debt/CFO\\nConsensus 2023¹\\n\\n| Company/Group | Net Debt/CFO Ratio |\\n|----------------|---------------------|\\n| Integrated Peers² | ~0.0x |\\n| ConocoPhillips | 0.3x |\\n| Independent Peers² | ~0.8x |\\n| S&P 500 Energy | ~1.5x |\\n| S&P 500 | ~2.7x |\\n\\n## Net Debt/CFO at $60/BBL WTI\\n\\n| Period | Net Debt/CFO Ratio |\\n|--------|---------------------|\\n| 2024-2028 Average | 0.3x |\\n| 2029-2032 Average | 0.2x |\\n\\n¹Source: Bloomberg. Net Debt to CFO. As of March 30, 2023. ²Integrated peers include CVX and XOM. Independent peers include APA, DVN, EOG, HES, OXY and PXD. Net debt and cash from operations (CFO) are non-GAAP measures defined in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='7710e674-579a-4b11-9de3-0215708d09d1', embedding=None, metadata={'page_num': 52, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-51.jpg', 'parsed_text_markdown': '# Plan Resilient Through Stress Test\\n\\n## Our Rationale for Holding Cash\\n\\n| Cash Type | Amount | Purpose |\\n|-----------|--------|---------|\\n| Strategic Cash | - | Longer-cycle projects
Share buybacks
Down-cycle price protection
Business development optionality |\\n| Reserve Cash | ~$2-3B | Maintain near-term operating plan even with price volatility |\\n| Operating Cash | ~$1B | Daily operating and working capital |\\n\\n## Two-Year $40/BBL WTI¹ Stress Test\\n### Net Debt/CFO\\n\\n| Year | $60/BBL WTI (Base Plan) | Two-Years at $40/BBL WTI |\\n|------|-------------------------|--------------------------|\\n| 2023 Consensus² | 0.3x | 0.3x |\\n| 2024 | 0.5x | 1.2x |\\n| 2025 | 0.4x | 1.5x |\\n| 2026 | 0.3x | 0.6x |\\n| 2027 | 0.3x | 0.5x |\\n| 2028 | 0.3x | 0.4x |\\n\\n## Cash and CFO Fund Consistent Execution in Low Price Scenario\\n\\n- Maintain capital program, including longer-cycle projects\\n- Meet 30% distribution commitment through ordinary dividend and share buybacks\\n- <1.5x leverage ratio through the down-cycle\\n- No additional debt required\\n\\n¹2022 Real, escalating at 2.25% annually. ²Source: Bloomberg Net Debt to CFO. As of March 30, 2023.\\nNet debt and cash from operations (CFO) are non-GAAP measures defined in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Plan Resilient Through Stress Test\\n\\n## Our Rationale for Holding Cash\\n\\n| Cash Type | Amount | Purpose |\\n|-----------|--------|---------|\\n| Strategic Cash | - | Longer-cycle projects
Share buybacks
Down-cycle price protection
Business development optionality |\\n| Reserve Cash | ~$2-3B | Maintain near-term operating plan even with price volatility |\\n| Operating Cash | ~$1B | Daily operating and working capital |\\n\\n## Two-Year $40/BBL WTI¹ Stress Test\\n### Net Debt/CFO\\n\\n| Year | $60/BBL WTI (Base Plan) | Two-Years at $40/BBL WTI |\\n|------|-------------------------|--------------------------|\\n| 2023 Consensus² | 0.3x | 0.3x |\\n| 2024 | 0.5x | 1.2x |\\n| 2025 | 0.4x | 1.5x |\\n| 2026 | 0.3x | 0.6x |\\n| 2027 | 0.3x | 0.5x |\\n| 2028 | 0.3x | 0.4x |\\n\\n## Cash and CFO Fund Consistent Execution in Low Price Scenario\\n\\n- Maintain capital program, including longer-cycle projects\\n- Meet 30% distribution commitment through ordinary dividend and share buybacks\\n- <1.5x leverage ratio through the down-cycle\\n- No additional debt required\\n\\n¹2022 Real, escalating at 2.25% annually. ²Source: Bloomberg Net Debt to CFO. As of March 30, 2023.\\nNet debt and cash from operations (CFO) are non-GAAP measures defined in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='cda39da0-efe3-4ede-a45d-0c00482a68fe', embedding=None, metadata={'page_num': 53, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-52.jpg', 'parsed_text_markdown': '# A Powerful Plan with Differential Upside\\n\\n## 10-Year Plan ($B)\\n2023-2032\\n\\n| Sources | Uses |\\n|---------|------|\\n| CFO at $80/BBL WTI Upside Sensitivity | Additional Distributions |\\n| CFO at $60/BBL WTI Mid-Cycle Planning Price | 30% of CFO Distribution Commitment |\\n| Cash¹ | Capital |\\n| | Cash¹ |\\n\\nTotal Sources: ~$350B\\nTotal Uses: ~$230B\\n\\n## Key Points\\n\\n- Peer leading ROCE improving through time\\n- Top quartile ordinary dividend growth\\n- >90% market cap² distributed\\n- ~$35/BBL WTI FCF Breakeven³\\n- ~6% CFO CAGR, ~11% FCF CAGR\\n- Unhedged for price upside\\n\\n¹Cash includes cash, cash equivalents, restricted cash and short-term investments. ²Market cap of ~$121B at March 31, 2023 close. ³Average over the next 10 years.\\nCAGRs calculated from FY2024 at $60/BBL WTI. Cash from operations (CFO), free cash flow (FCF) and return on capital employed (ROCE) are non-GAAP measures. Definitions are included in the Appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# A Powerful Plan with Differential Upside\\n\\n## 10-Year Plan ($B)\\n2023-2032\\n\\n| Sources | Uses |\\n|---------|------|\\n| CFO at $80/BBL WTI Upside Sensitivity | Additional Distributions |\\n| CFO at $60/BBL WTI Mid-Cycle Planning Price | 30% of CFO Distribution Commitment |\\n| Cash¹ | Capital |\\n| | Cash¹ |\\n\\nTotal Sources: ~$350B\\nTotal Uses: ~$230B\\n\\n## Key Points\\n\\n- Peer leading ROCE improving through time\\n- Top quartile ordinary dividend growth\\n- >90% market cap² distributed\\n- ~$35/BBL WTI FCF Breakeven³\\n- ~6% CFO CAGR, ~11% FCF CAGR\\n- Unhedged for price upside\\n\\n¹Cash includes cash, cash equivalents, restricted cash and short-term investments. ²Market cap of ~$121B at March 31, 2023 close. ³Average over the next 10 years.\\nCAGRs calculated from FY2024 at $60/BBL WTI. Cash from operations (CFO), free cash flow (FCF) and return on capital employed (ROCE) are non-GAAP measures. Definitions are included in the Appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='5e0e0270-07d1-4e90-957e-824b70872e88', embedding=None, metadata={'page_num': 54, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-53.jpg', 'parsed_text_markdown': '# Closing\\n\\nRyan Lance\\nChairman and CEO'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Closing\\n\\nRyan Lance\\nChairman and CEO', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='b22bab41-764a-4f39-8139-084cc16ccf51', embedding=None, metadata={'page_num': 55, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-54.jpg', 'parsed_text_markdown': '# ConocoPhillips Remains the Must-Own E&P Company\\n\\n## What You Heard Today\\n\\n- We are committed to delivering superior returns on and of capital through the cycles\\n- We have a deep, durable and diverse portfolio\\n- We are progressing our 2050 Net-Zero ambition and accelerating our 2030 GHG emissions intensity reduction target\\n\\n## Foundational Principles\\n\\n| Balance Sheet Strength | Disciplined Investments | Peer-Leading Distributions | ESG Excellence |\\n|------------------------|-------------------------|----------------------------|----------------|\\n| ![Balance Sheet Icon] | ![Investments Icon] | ![Distributions Icon] | ![ESG Icon] |\\n\\nRETURNS\\n\\nDeliver Superior Returns Through Cycles\\n\\n## A Compelling Returns Focused 10-Year Plan\\n\\n- Peer leading ROCE improving through time\\n- Top quartile ordinary dividend growth\\n- >90% market cap¹ distributed\\n- ~$35/BBL WTI FCF Breakeven²\\n- ~6% CFO CAGR, ~11% FCF CAGR\\n- Unhedged for price upside\\n\\n¹Market cap of ~$121B at March 31, 2023 close. ²Average over the next ten years.\\nCAGRs calculated from FY2024 at $60/BBL WTI. Cash from operations (CFO), free cash flow (FCF) and return on capital employed (ROCE) are non-GAAP measures defined in the appendix.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# ConocoPhillips Remains the Must-Own E&P Company\\n\\n## What You Heard Today\\n\\n- We are committed to delivering superior returns on and of capital through the cycles\\n- We have a deep, durable and diverse portfolio\\n- We are progressing our 2050 Net-Zero ambition and accelerating our 2030 GHG emissions intensity reduction target\\n\\n## Foundational Principles\\n\\n| Balance Sheet Strength | Disciplined Investments | Peer-Leading Distributions | ESG Excellence |\\n|------------------------|-------------------------|----------------------------|----------------|\\n| ![Balance Sheet Icon] | ![Investments Icon] | ![Distributions Icon] | ![ESG Icon] |\\n\\nRETURNS\\n\\nDeliver Superior Returns Through Cycles\\n\\n## A Compelling Returns Focused 10-Year Plan\\n\\n- Peer leading ROCE improving through time\\n- Top quartile ordinary dividend growth\\n- >90% market cap¹ distributed\\n- ~$35/BBL WTI FCF Breakeven²\\n- ~6% CFO CAGR, ~11% FCF CAGR\\n- Unhedged for price upside\\n\\n¹Market cap of ~$121B at March 31, 2023 close. ²Average over the next ten years.\\nCAGRs calculated from FY2024 at $60/BBL WTI. Cash from operations (CFO), free cash flow (FCF) and return on capital employed (ROCE) are non-GAAP measures defined in the appendix.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='be206a1e-3db2-456b-b447-5f724a55f86f', embedding=None, metadata={'page_num': 56, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-55.jpg', 'parsed_text_markdown': '# Appendix\\n\\n## Reconciliations, Abbreviations and Definitions'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Appendix\\n\\n## Reconciliations, Abbreviations and Definitions', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='ee29cfde-981c-4ae2-8e20-0168c26a718c', embedding=None, metadata={'page_num': 57, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-56.jpg', 'parsed_text_markdown': '# Abbreviations\\n\\n| Abbreviation | Full Form | Abbreviation | Full Form |\\n|--------------|-----------|--------------|-----------|\\n| APLNG | Australia Pacific LNG | GKA | Greater Kuparuk Area |\\n| B | billion | GPA | Greater Prudhoe Area |\\n| BBL | barrel | GWA | Greater Willow Area |\\n| BBOE | billions of barrels of oil equivalent | GWh | gigawatt-hour |\\n| BCFD | billion cubic feet per day | KG | kilograms |\\n| BOE | barrels of oil equivalent | LNG | liquefied natural gas |\\n| CAGR | compound annual growth rate | MBOD | thousands of barrels of oil per day |\\n| CAPEX | capital expenditures and investments | MBOED | thousands of barrels of oil equivalent per day |\\n| CCS | carbon capture and storage | MM | million |\\n| CFO | cash from operations | MMBOD | millions of barrels of oil per day |\\n| CO₂ | carbon dioxide | MMBOED | millions of barrels of oil equivalent per day |\\n| CO₂e | carbon dioxide equivalent | MT | million tonnes |\\n| CoS | Cost of Supply | MTPA | million tonnes per annum |\\n| CPF | central processing facility | MWh | megawatt-hour |\\n| E-FRAC | electric frac | NFE | North Field East |\\n| EMENA | Europe, Middle East and North Africa | NFS | North Field South |\\n| EPC | engineering procurement and construction | NGL | natural gas liquids |\\n| ESG | environmental, social and governance | OPEX | operating expenses |\\n| EUR | estimated ultimate recovery | PA LNG | Port Arthur LNG |\\n| FEED | front end engineering design | QG3 | Qatargas 3 |\\n| FERC | Federal Energy Regulatory Commission | ROCE | return on capital employed |\\n| FCF | free cash flow | Te | tonnes |\\n| FID | final investment decision | THE | Trading Hub Europe |\\n| FT | foot | VROC | variable return of cash |\\n| G&A | general and administrative | WNS | Western North Slope |\\n| GAAP | generally accepted accounting principles | WTI | West Texas Intermediate |\\n| GHG | greenhouse gas emissions | | |'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Abbreviations\\n\\n| Abbreviation | Full Form | Abbreviation | Full Form |\\n|--------------|-----------|--------------|-----------|\\n| APLNG | Australia Pacific LNG | GKA | Greater Kuparuk Area |\\n| B | billion | GPA | Greater Prudhoe Area |\\n| BBL | barrel | GWA | Greater Willow Area |\\n| BBOE | billions of barrels of oil equivalent | GWh | gigawatt-hour |\\n| BCFD | billion cubic feet per day | KG | kilograms |\\n| BOE | barrels of oil equivalent | LNG | liquefied natural gas |\\n| CAGR | compound annual growth rate | MBOD | thousands of barrels of oil per day |\\n| CAPEX | capital expenditures and investments | MBOED | thousands of barrels of oil equivalent per day |\\n| CCS | carbon capture and storage | MM | million |\\n| CFO | cash from operations | MMBOD | millions of barrels of oil per day |\\n| CO₂ | carbon dioxide | MMBOED | millions of barrels of oil equivalent per day |\\n| CO₂e | carbon dioxide equivalent | MT | million tonnes |\\n| CoS | Cost of Supply | MTPA | million tonnes per annum |\\n| CPF | central processing facility | MWh | megawatt-hour |\\n| E-FRAC | electric frac | NFE | North Field East |\\n| EMENA | Europe, Middle East and North Africa | NFS | North Field South |\\n| EPC | engineering procurement and construction | NGL | natural gas liquids |\\n| ESG | environmental, social and governance | OPEX | operating expenses |\\n| EUR | estimated ultimate recovery | PA LNG | Port Arthur LNG |\\n| FEED | front end engineering design | QG3 | Qatargas 3 |\\n| FERC | Federal Energy Regulatory Commission | ROCE | return on capital employed |\\n| FCF | free cash flow | Te | tonnes |\\n| FID | final investment decision | THE | Trading Hub Europe |\\n| FT | foot | VROC | variable return of cash |\\n| G&A | general and administrative | WNS | Western North Slope |\\n| GAAP | generally accepted accounting principles | WTI | West Texas Intermediate |\\n| GHG | greenhouse gas emissions | | |', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='7639f420-f55b-4ca7-a4e9-74d9025c4488', embedding=None, metadata={'page_num': 58, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-57.jpg', 'parsed_text_markdown': \"# Non-GAAP Reconciliations\\n\\nUse of Non-GAAP Financial Information: ConocoPhillips' financial information includes information prepared in conformity with generally accepted accounting principles (GAAP) as well as non-GAAP information. It is management's intent to provide non-GAAP financial information to enhance understanding of our consolidated financial information as prepared in accordance with GAAP. This non-GAAP information should be considered by the reader in addition to, but not instead of, the financial statements prepared in accordance with GAAP. Each historical non-GAAP financial measure included in this presentation is presented along with the corresponding GAAP measure, so as not to imply that more emphasis should be placed on the non-GAAP measure. The non-GAAP financial information presented may be determined or calculated differently by other companies.\\n\\n## Reconciliation of Return on Capital Employed (ROCE)\\n\\n| | 2016 | 2019 | 2022 |\\n|---|---:|---:|---:|\\n| **Numerator** | | | |\\n| Net Income (Loss) Attributable to ConocoPhillips | (3,615) | 7,189 | 18,680 |\\n| Adjustment to Exclude Special Items | 307 | (3,153) | (1,340) |\\n| Net Income Attributable to Noncontrolling Interests | 56 | 68 | - |\\n| After-tax Interest Expense | 796 | 637 | 641 |\\n| ROCE Earnings | (2,456) | 4,741 | 17,981 |\\n| **Denominator** | | | |\\n| Average Total Equity¹ | 37,837 | 33,713 | 48,801 |\\n| Average Total Debt² | 28,225 | 14,930 | 17,742 |\\n| Average Capital Employed | 66,062 | 48,643 | 66,543 |\\n| **ROCE (percent)** | -4% | 10% | 27% |\\n\\n¹Average total equity is the average of beginning total equity and ending total equity by quarter.\\n²Average total debt is the average of beginning long-term debt and short-term debt and ending long-term debt and short-term debt by quarter.\"}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text=\"# Non-GAAP Reconciliations\\n\\nUse of Non-GAAP Financial Information: ConocoPhillips' financial information includes information prepared in conformity with generally accepted accounting principles (GAAP) as well as non-GAAP information. It is management's intent to provide non-GAAP financial information to enhance understanding of our consolidated financial information as prepared in accordance with GAAP. This non-GAAP information should be considered by the reader in addition to, but not instead of, the financial statements prepared in accordance with GAAP. Each historical non-GAAP financial measure included in this presentation is presented along with the corresponding GAAP measure, so as not to imply that more emphasis should be placed on the non-GAAP measure. The non-GAAP financial information presented may be determined or calculated differently by other companies.\\n\\n## Reconciliation of Return on Capital Employed (ROCE)\\n\\n| | 2016 | 2019 | 2022 |\\n|---|---:|---:|---:|\\n| **Numerator** | | | |\\n| Net Income (Loss) Attributable to ConocoPhillips | (3,615) | 7,189 | 18,680 |\\n| Adjustment to Exclude Special Items | 307 | (3,153) | (1,340) |\\n| Net Income Attributable to Noncontrolling Interests | 56 | 68 | - |\\n| After-tax Interest Expense | 796 | 637 | 641 |\\n| ROCE Earnings | (2,456) | 4,741 | 17,981 |\\n| **Denominator** | | | |\\n| Average Total Equity¹ | 37,837 | 33,713 | 48,801 |\\n| Average Total Debt² | 28,225 | 14,930 | 17,742 |\\n| Average Capital Employed | 66,062 | 48,643 | 66,543 |\\n| **ROCE (percent)** | -4% | 10% | 27% |\\n\\n¹Average total equity is the average of beginning total equity and ending total equity by quarter.\\n²Average total debt is the average of beginning long-term debt and short-term debt and ending long-term debt and short-term debt by quarter.\", mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='239eef69-f7ea-41ff-99ac-354a108e2fd6', embedding=None, metadata={'page_num': 59, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-58.jpg', 'parsed_text_markdown': '# Non-GAAP Reconciliations – Continued\\n\\n## Reconciliation of Net Cash Provided by Operating Activities to Cash from Operations to Free Cash Flow\\n($ Millions, Except as Indicated)\\n\\n| | 2016 | 2019 | 2022 |\\n|---|---:|---:|---:|\\n| Net Cash Provided by Operating Activities | 4,403 | 11,104 | 28,314 |\\n| Adjustments: | | | |\\n| Net Operating Working Capital Changes | (481) | (579) | (234) |\\n| Cash from Operations | 4,884 | 11,683 | 28,548 |\\n| Capital Expenditures and Investments | (4,869) | (6,636) | (10,159) |\\n| Free Cash Flow | 15 | 5,047 | 18,389 |\\n\\n## Reconciliation of Debt to Net Debt\\n($ Millions, Except as Indicated)\\n\\n| | 2016 | 2019 | 2022 |\\n|---|---:|---:|---:|\\n| Total Debt | 27,275 | 14,895 | 16,643 |\\n| Less: | | | |\\n| Cash and Cash Equivalents¹ | 3,610 | 5,362 | 6,694 |\\n| Short-Term Investments | 50 | 3,028 | 2,785 |\\n| Net Debt | 23,615 | 6,505 | 7,164 |\\n\\n¹Includes restricted cash of $0.38 in 2019 and $0.28 in 2022.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Non-GAAP Reconciliations – Continued\\n\\n## Reconciliation of Net Cash Provided by Operating Activities to Cash from Operations to Free Cash Flow\\n($ Millions, Except as Indicated)\\n\\n| | 2016 | 2019 | 2022 |\\n|---|---:|---:|---:|\\n| Net Cash Provided by Operating Activities | 4,403 | 11,104 | 28,314 |\\n| Adjustments: | | | |\\n| Net Operating Working Capital Changes | (481) | (579) | (234) |\\n| Cash from Operations | 4,884 | 11,683 | 28,548 |\\n| Capital Expenditures and Investments | (4,869) | (6,636) | (10,159) |\\n| Free Cash Flow | 15 | 5,047 | 18,389 |\\n\\n## Reconciliation of Debt to Net Debt\\n($ Millions, Except as Indicated)\\n\\n| | 2016 | 2019 | 2022 |\\n|---|---:|---:|---:|\\n| Total Debt | 27,275 | 14,895 | 16,643 |\\n| Less: | | | |\\n| Cash and Cash Equivalents¹ | 3,610 | 5,362 | 6,694 |\\n| Short-Term Investments | 50 | 3,028 | 2,785 |\\n| Net Debt | 23,615 | 6,505 | 7,164 |\\n\\n¹Includes restricted cash of $0.38 in 2019 and $0.28 in 2022.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='b5d3bb36-9669-47ef-81b0-f69d5ec27bf1', embedding=None, metadata={'page_num': 60, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-59.jpg', 'parsed_text_markdown': '# Non-GAAP Reconciliations – Continued\\n\\n## Reconciliation of Reinvestment Rate ($ Millions, Except as Indicated)\\n\\n| | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 |\\n|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|\\n| **Numerator** |\\n| Capital Expenditure and Investments | 14,172 | 15,537 | 17,085 | 10,050 | 4,869 | 4,591 | 6,750 | 6,636 | 4,715 | 5,324 | 10,159 |\\n| **Denominator** |\\n| Net Cash Provided by Operating Activities | 13,922 | 16,087 | 16,735 | 7,572 | 4,403 | 7,077 | 12,934 | 11,104 | 4,802 | 16,996 | 28,314 |\\n| Net Operating Working Capital Changes | (1,239) | 48 | (505) | (22) | (481) | 15 | 635 | (579) | (372) | 1,271 | (234) |\\n| Cash from Operations | 15,161 | 16,039 | 17,240 | 7,594 | 4,884 | 7,062 | 12,299 | 11,683 | 5,174 | 15,725 | 28,548 |\\n| **Reinvestment Rate** | 93% | 97% | 99% | 132% | 100% | 65% | 55% | 57% | 91% | 34% | 36% |\\n\\n104% Average 2012-2016 Reinvestment Rate\\n56% Average 2017-2022 Reinvestment Rate\\n\\nReinvestment rates in 2012-2016 and 2017-2022 columns represent the simple averages of corresponding years.'}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text='# Non-GAAP Reconciliations – Continued\\n\\n## Reconciliation of Reinvestment Rate ($ Millions, Except as Indicated)\\n\\n| | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 |\\n|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|\\n| **Numerator** |\\n| Capital Expenditure and Investments | 14,172 | 15,537 | 17,085 | 10,050 | 4,869 | 4,591 | 6,750 | 6,636 | 4,715 | 5,324 | 10,159 |\\n| **Denominator** |\\n| Net Cash Provided by Operating Activities | 13,922 | 16,087 | 16,735 | 7,572 | 4,403 | 7,077 | 12,934 | 11,104 | 4,802 | 16,996 | 28,314 |\\n| Net Operating Working Capital Changes | (1,239) | 48 | (505) | (22) | (481) | 15 | 635 | (579) | (372) | 1,271 | (234) |\\n| Cash from Operations | 15,161 | 16,039 | 17,240 | 7,594 | 4,884 | 7,062 | 12,299 | 11,683 | 5,174 | 15,725 | 28,548 |\\n| **Reinvestment Rate** | 93% | 97% | 99% | 132% | 100% | 65% | 55% | 57% | 91% | 34% | 36% |\\n\\n104% Average 2012-2016 Reinvestment Rate\\n56% Average 2017-2022 Reinvestment Rate\\n\\nReinvestment rates in 2012-2016 and 2017-2022 columns represent the simple averages of corresponding years.', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='9a5c8951-98df-42a2-aadd-e30ef7f645da', embedding=None, metadata={'page_num': 61, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-60.jpg', 'parsed_text_markdown': \"# Definitions\\n\\n## Non-GAAP Measures\\n\\n**Cash from operations (CFO)** is calculated by removing the impact from operating working capital from cash provided by operating activities. The company believes that the non-GAAP measure cash from operations is useful to investors to help understand changes in cash provided by operating activities excluding the impact of working capital changes across periods on a consistent basis and with the performance of peer companies in a manner that, when viewed in combination with the Company's results prepared in accordance with GAAP, provides a more complete understanding of the factors and trends affecting the Company's business and performance. Additionally, when the company estimates CFO based on sensitivities, it assumes no operating working capital changes, and therefore CFO equals cash provided by operating activities.\\n\\n**Free cash flow** is defined as cash from operations net of capital expenditures and investments. The company believes free cash flow is useful to investors in understanding how existing cash from operations is utilized as a source for sustaining our current capital plan and future development growth. Free cash flow is not a measure of cash available for discretionary expenditures since the company has certain non-discretionary obligations such as debt service that are not deducted from the measure.\\n\\n**Net debt** includes total balance sheet debt less cash, cash equivalents and short-term investments. The company believes this non-GAAP measure is useful to investors as it provides a measure to compare debt less cash, cash equivalents and short-term investments across periods on a consistent basis.\\n\\n**Reinvestment rate** defined as total capital expenditures divided by cash from operations. Cash from operations is a non-GAAP measure defined in this Appendix. The company believes reinvestment rate is useful to investors in understanding the execution of the company's disciplined and returns-focused capital allocation strategy.\\n\\n**Return on capital employed (ROCE)** is a measure of the profitability of the company's capital employed in its business operations compared with that of its peers. The company calculates ROCE as a ratio, the numerator of which is net income, and the denominator of which is average total equity plus average total debt. The net income is adjusted for after-tax interest expense, for the purposes of measuring efficiency of debt capital used in operations; net income is also adjusted for non-operational or special items impacts to allow for comparability in the long-term view across periods. The company believes ROCE is a good indicator of long-term company and management performance as it relates to capital efficiency, both absolute and relative to the company's primary peer group.\"}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text=\"# Definitions\\n\\n## Non-GAAP Measures\\n\\n**Cash from operations (CFO)** is calculated by removing the impact from operating working capital from cash provided by operating activities. The company believes that the non-GAAP measure cash from operations is useful to investors to help understand changes in cash provided by operating activities excluding the impact of working capital changes across periods on a consistent basis and with the performance of peer companies in a manner that, when viewed in combination with the Company's results prepared in accordance with GAAP, provides a more complete understanding of the factors and trends affecting the Company's business and performance. Additionally, when the company estimates CFO based on sensitivities, it assumes no operating working capital changes, and therefore CFO equals cash provided by operating activities.\\n\\n**Free cash flow** is defined as cash from operations net of capital expenditures and investments. The company believes free cash flow is useful to investors in understanding how existing cash from operations is utilized as a source for sustaining our current capital plan and future development growth. Free cash flow is not a measure of cash available for discretionary expenditures since the company has certain non-discretionary obligations such as debt service that are not deducted from the measure.\\n\\n**Net debt** includes total balance sheet debt less cash, cash equivalents and short-term investments. The company believes this non-GAAP measure is useful to investors as it provides a measure to compare debt less cash, cash equivalents and short-term investments across periods on a consistent basis.\\n\\n**Reinvestment rate** defined as total capital expenditures divided by cash from operations. Cash from operations is a non-GAAP measure defined in this Appendix. The company believes reinvestment rate is useful to investors in understanding the execution of the company's disciplined and returns-focused capital allocation strategy.\\n\\n**Return on capital employed (ROCE)** is a measure of the profitability of the company's capital employed in its business operations compared with that of its peers. The company calculates ROCE as a ratio, the numerator of which is net income, and the denominator of which is average total equity plus average total debt. The net income is adjusted for after-tax interest expense, for the purposes of measuring efficiency of debt capital used in operations; net income is also adjusted for non-operational or special items impacts to allow for comparability in the long-term view across periods. The company believes ROCE is a good indicator of long-term company and management performance as it relates to capital efficiency, both absolute and relative to the company's primary peer group.\", mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n'),\n", + " TextNode(id_='b6d53aaf-91fa-4382-bb70-ced2ef27c198', embedding=None, metadata={'page_num': 62, 'image_path': 'data_images\\\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-61.jpg', 'parsed_text_markdown': \"# Definitions\\n\\n## Other Terms\\n\\nCost of Supply is the WTI equivalent price that generates a 10% after-tax return on a point-forward and fully burdened basis. Fully burdened includes capital infrastructure, foreign exchange, price-related inflation, G&A and carbon tax (if currently assessed). If no carbon tax exists for the asset, carbon pricing aligned with internal energy scenarios are applied. All barrels of resource in the Cost of Supply calculation are discounted at 10%.\\n\\nDistributions is defined as the total of the ordinary dividend, share repurchases and variable return of cash (VROC). Also referred to as return of capital.\\n\\nFree cash flow breakeven is the WTI price at which cash from operations equals capital expenditures and investments. Also referred to as capital breakeven. Cash from operations is a non-GAAP measure defined in this Appendix.\\n\\nLeverage ratio refers to net debt divided by cash from operations. Net debt and cash from operations are non-GAAP measures defined in this Appendix.\\n\\nOptimized Cascade® Process is a ConocoPhillips proprietary licensed process for technology to liquefy natural gas. More information can be found at http://lnglicensing.conocophillips.com/what-we-do/lng-technology/optimized-cascade-process.\\n\\nReserve replacement is defined by the Company as a ratio representing the change in proved reserves, net of production, divided by current year production. The Company believes that reserve replacement is useful to investors to help understand how changes in proved reserves, net of production, compare with the Company's current year production, inclusive of acquisitions and dispositions.\\n\\nResources: The company estimates its total resources based on the Petroleum Resources Management System (PRMS), a system developed by industry that classifies recoverable hydrocarbons into commercial and sub-commercial to reflect their status at the time of reporting. Proved, probable and possible reserves are classified as commercial, while remaining resources are categorized as sub-commercial or contingent. The company's resource estimate includes volumes associated with both commercial and contingent categories. The SEC permits oil and gas companies, in their filings with the SEC, to disclose only proved, probable and possible reserves. U.S. investors are urged to consider closely the oil and gas disclosures in our Form 10-K and other reports and filings with the SEC.\\n\\nResource life is calculated as total resource under $40 Cost of Supply divided by 2022 production.\\n\\nReturn of capital is defined as the total of the ordinary dividend, share repurchases and variable return of cash (VROC). Also referred to as distributions.\"}, excluded_embed_metadata_keys=[], excluded_llm_metadata_keys=[], relationships={}, text=\"# Definitions\\n\\n## Other Terms\\n\\nCost of Supply is the WTI equivalent price that generates a 10% after-tax return on a point-forward and fully burdened basis. Fully burdened includes capital infrastructure, foreign exchange, price-related inflation, G&A and carbon tax (if currently assessed). If no carbon tax exists for the asset, carbon pricing aligned with internal energy scenarios are applied. All barrels of resource in the Cost of Supply calculation are discounted at 10%.\\n\\nDistributions is defined as the total of the ordinary dividend, share repurchases and variable return of cash (VROC). Also referred to as return of capital.\\n\\nFree cash flow breakeven is the WTI price at which cash from operations equals capital expenditures and investments. Also referred to as capital breakeven. Cash from operations is a non-GAAP measure defined in this Appendix.\\n\\nLeverage ratio refers to net debt divided by cash from operations. Net debt and cash from operations are non-GAAP measures defined in this Appendix.\\n\\nOptimized Cascade® Process is a ConocoPhillips proprietary licensed process for technology to liquefy natural gas. More information can be found at http://lnglicensing.conocophillips.com/what-we-do/lng-technology/optimized-cascade-process.\\n\\nReserve replacement is defined by the Company as a ratio representing the change in proved reserves, net of production, divided by current year production. The Company believes that reserve replacement is useful to investors to help understand how changes in proved reserves, net of production, compare with the Company's current year production, inclusive of acquisitions and dispositions.\\n\\nResources: The company estimates its total resources based on the Petroleum Resources Management System (PRMS), a system developed by industry that classifies recoverable hydrocarbons into commercial and sub-commercial to reflect their status at the time of reporting. Proved, probable and possible reserves are classified as commercial, while remaining resources are categorized as sub-commercial or contingent. The company's resource estimate includes volumes associated with both commercial and contingent categories. The SEC permits oil and gas companies, in their filings with the SEC, to disclose only proved, probable and possible reserves. U.S. investors are urged to consider closely the oil and gas disclosures in our Form 10-K and other reports and filings with the SEC.\\n\\nResource life is calculated as total resource under $40 Cost of Supply divided by 2022 production.\\n\\nReturn of capital is defined as the total of the ordinary dividend, share repurchases and variable return of cash (VROC). Also referred to as distributions.\", mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n')]" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "text_nodes" + ] + }, + { + "cell_type": "code", + "execution_count": 50, "id": "32c13950-c1db-435f-b5b4-89d62b8b7744", "metadata": {}, "outputs": [ @@ -351,7 +1380,7 @@ "output_type": "stream", "text": [ "page_num: 11\n", - "image_path: data_images/412ac275-abe2-4585-be43-5680e7754740-page-10.jpg\n", + "image_path: data_images\\4a3feff4-396d-4fea-995c-3fb574ff51fc-page-10.jpg\n", "parsed_text_markdown: # Commitment to Disciplined Reinvestment Rate\n", "\n", "Disciplined Reinvestment Rate is the Foundation for Superior Returns on and of Capital, while Driving Durable CFO Growth\n", @@ -372,6 +1401,28 @@ "\n", "*Chart shows ConocoPhillips Average Annual Reinvestment Rate (%) over time, with historic rates in grey and projected rates in blue.*\n", "\n", + "Reinvestment rate and cash from operations (CFO) are non-GAAP measures. Definitions and reconciliations are included in the Appendix.\n", + "\n", + "# Commitment to Disciplined Reinvestment Rate\n", + "\n", + "Disciplined Reinvestment Rate is the Foundation for Superior Returns on and of Capital, while Driving Durable CFO Growth\n", + "\n", + "| Metric | Value |\n", + "|--------|-------|\n", + "| 10-Year Reinvestment Rate | ~50% |\n", + "| CFO CAGR 2024-2032 | ~6% |\n", + "| Mid-Cycle Planning Price | at $60/BBL WTI |\n", + "\n", + "| Period | Industry Growth Focus | ConocoPhillips Strategy Reset | Reinvestment Rate |\n", + "|--------|------------------------|-------------------------------|-------------------|\n", + "| 2012-2016 | >100% Reinvestment Rate | - | ~$75/BBL WTI Average |\n", + "| 2017-2022 | - | <60% Reinvestment Rate | ~$63/BBL WTI Average |\n", + "| 2023E | - | - | at $80/BBL WTI |\n", + "| 2024-2028 | - | - | at $60/BBL WTI (with $80/BBL WTI option shown) |\n", + "| 2029-2032 | - | - | at $60/BBL WTI (with $80/BBL WTI option shown) |\n", + "\n", + "*Chart shows ConocoPhillips Average Annual Reinvestment Rate (%) over time, with historic rates in grey and projected rates in blue.*\n", + "\n", "Reinvestment rate and cash from operations (CFO) are non-GAAP measures. Definitions and reconciliations are included in the Appendix.\n" ] } @@ -382,10 +1433,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 51, "id": "bee7bc2e-be3d-4fd3-a1df-b2dcaa66c404", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:llama_index.core.indices.loading:Loading indices with ids: ['summary_index']\n" + ] + } + ], "source": [ "import os\n", "from llama_index.core import (\n", @@ -394,16 +1453,18 @@ " load_index_from_storage,\n", ")\n", "\n", - "if not os.path.exists(\"storage_nodes_summary\"):\n", - " index = SummaryIndex(text_nodes)\n", - " # save index to disk\n", - " index.set_index_id(\"summary_index\")\n", - " index.storage_context.persist(\"./storage_nodes_summary\")\n", - "else:\n", - " # rebuild storage context\n", - " storage_context = StorageContext.from_defaults(persist_dir=\"storage_nodes_summary\")\n", - " # load index\n", - " index = load_index_from_storage(storage_context, index_id=\"summary_index\")" + "# Improved error handling for index creation\n", + "try:\n", + " if not os.path.exists(\"storage_nodes_summary\"):\n", + " index = SummaryIndex(text_nodes)\n", + " index.set_index_id(\"summary_index\")\n", + " index.storage_context.persist(\"./storage_nodes_summary\")\n", + " else:\n", + " storage_context = StorageContext.from_defaults(persist_dir=\"storage_nodes_summary\")\n", + " index = load_index_from_storage(storage_context, index_id=\"summary_index\")\n", + "except Exception as e:\n", + " print(f\"Error creating or loading index: {e}\")\n", + " # Handle the error appropriately (e.g., create a new index, use a fallback method, etc.)\n" ] }, { @@ -418,37 +1479,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 54, "id": "103ddeff-6adb-48da-8b2e-7b05e2d9553e", "metadata": {}, "outputs": [], "source": [ "from llama_index.llms.openai import OpenAI\n", "from pydantic.v1 import BaseModel, Field\n", - "from typing import List\n", + "from typing import List, Union\n", "from IPython.display import display, Markdown, Image\n", "\n", - "\n", "class TextBlock(BaseModel):\n", " \"\"\"Text block.\"\"\"\n", - "\n", " text: str = Field(..., description=\"The text for this block.\")\n", "\n", - "\n", "class ImageBlock(BaseModel):\n", " \"\"\"Image block.\"\"\"\n", - "\n", " file_path: str = Field(..., description=\"File path to the image.\")\n", "\n", - "\n", "class ReportOutput(BaseModel):\n", " \"\"\"Data model for a report.\n", "\n", " Can contain a mix of text and image blocks. MUST contain at least one image block.\n", - "\n", " \"\"\"\n", - "\n", - " blocks: List[TextBlock | ImageBlock] = Field(\n", + " blocks: List[Union[TextBlock, ImageBlock]] = Field(\n", " ..., description=\"A list of text and image blocks.\"\n", " )\n", "\n", @@ -460,7 +1514,6 @@ " else:\n", " display(Image(filename=b.file_path))\n", "\n", - "\n", "system_prompt = \"\"\"\\\n", "You are a report generation assistant tasked with producing a well-formatted context given parsed context.\n", "\n", @@ -484,7 +1537,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 55, "id": "2b5dd61a-2d83-47a3-b4d3-b2dc91bf476f", "metadata": {}, "outputs": [], @@ -499,14 +1552,150 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 57, "id": "12bd66a5-f726-4514-b57c-a46caa95e34e", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:openai._base_client:Retrying request to /chat/completions in 0.816752 seconds\n", + "INFO:openai._base_client:Retrying request to /chat/completions in 1.682632 seconds\n", + "INFO:openai._base_client:Retrying request to /chat/completions in 3.535502 seconds\n", + "WARNING:llama_index.llms.openai.utils:Retrying llama_index.llms.openai.base.OpenAI._chat in 0.719989621006058 seconds as it raised APIConnectionError: Connection error..\n", + "INFO:openai._base_client:Retrying request to /chat/completions in 0.881918 seconds\n", + "INFO:openai._base_client:Retrying request to /chat/completions in 1.691068 seconds\n", + "INFO:openai._base_client:Retrying request to /chat/completions in 3.958913 seconds\n", + "WARNING:llama_index.llms.openai.utils:Retrying llama_index.llms.openai.base.OpenAI._chat in 1.8132620896960556 seconds as it raised APIConnectionError: Connection error..\n", + "INFO:openai._base_client:Retrying request to /chat/completions in 0.977653 seconds\n", + "INFO:openai._base_client:Retrying request to /chat/completions in 1.902604 seconds\n", + "INFO:openai._base_client:Retrying request to /chat/completions in 3.707504 seconds\n" + ] + }, + { + "ename": "APIConnectionError", + "evalue": "Connection error.", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mLocalProtocolError\u001b[0m Traceback (most recent call last)", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpx\\_transports\\default.py:69\u001b[0m, in \u001b[0;36mmap_httpcore_exceptions\u001b[1;34m()\u001b[0m\n\u001b[0;32m 68\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m---> 69\u001b[0m \u001b[38;5;28;01myield\u001b[39;00m\n\u001b[0;32m 70\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpx\\_transports\\default.py:233\u001b[0m, in \u001b[0;36mHTTPTransport.handle_request\u001b[1;34m(self, request)\u001b[0m\n\u001b[0;32m 232\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m map_httpcore_exceptions():\n\u001b[1;32m--> 233\u001b[0m resp \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_pool\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43mreq\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 235\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(resp\u001b[38;5;241m.\u001b[39mstream, typing\u001b[38;5;241m.\u001b[39mIterable)\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpcore\\_sync\\connection_pool.py:216\u001b[0m, in \u001b[0;36mConnectionPool.handle_request\u001b[1;34m(self, request)\u001b[0m\n\u001b[0;32m 215\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_close_connections(closing)\n\u001b[1;32m--> 216\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 218\u001b[0m \u001b[38;5;66;03m# Return the response. Note that in this case we still have to manage\u001b[39;00m\n\u001b[0;32m 219\u001b[0m \u001b[38;5;66;03m# the point at which the response is closed.\u001b[39;00m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpcore\\_sync\\connection_pool.py:196\u001b[0m, in \u001b[0;36mConnectionPool.handle_request\u001b[1;34m(self, request)\u001b[0m\n\u001b[0;32m 194\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 195\u001b[0m \u001b[38;5;66;03m# Send the request on the assigned connection.\u001b[39;00m\n\u001b[1;32m--> 196\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[43mconnection\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_request\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 197\u001b[0m \u001b[43m \u001b[49m\u001b[43mpool_request\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrequest\u001b[49m\n\u001b[0;32m 198\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 199\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m ConnectionNotAvailable:\n\u001b[0;32m 200\u001b[0m \u001b[38;5;66;03m# In some cases a connection may initially be available to\u001b[39;00m\n\u001b[0;32m 201\u001b[0m \u001b[38;5;66;03m# handle a request, but then become unavailable.\u001b[39;00m\n\u001b[0;32m 202\u001b[0m \u001b[38;5;66;03m#\u001b[39;00m\n\u001b[0;32m 203\u001b[0m \u001b[38;5;66;03m# In this case we clear the connection and try again.\u001b[39;00m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpcore\\_sync\\connection.py:101\u001b[0m, in \u001b[0;36mHTTPConnection.handle_request\u001b[1;34m(self, request)\u001b[0m\n\u001b[0;32m 99\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n\u001b[1;32m--> 101\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_connection\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpcore\\_sync\\http11.py:143\u001b[0m, in \u001b[0;36mHTTP11Connection.handle_request\u001b[1;34m(self, request)\u001b[0m\n\u001b[0;32m 142\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_response_closed()\n\u001b[1;32m--> 143\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpcore\\_sync\\http11.py:93\u001b[0m, in \u001b[0;36mHTTP11Connection.handle_request\u001b[1;34m(self, request)\u001b[0m\n\u001b[0;32m 90\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m Trace(\n\u001b[0;32m 91\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msend_request_headers\u001b[39m\u001b[38;5;124m\"\u001b[39m, logger, request, kwargs\n\u001b[0;32m 92\u001b[0m ) \u001b[38;5;28;01mas\u001b[39;00m trace:\n\u001b[1;32m---> 93\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_send_request_headers(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 94\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m Trace(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msend_request_body\u001b[39m\u001b[38;5;124m\"\u001b[39m, logger, request, kwargs) \u001b[38;5;28;01mas\u001b[39;00m trace:\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpcore\\_sync\\http11.py:152\u001b[0m, in \u001b[0;36mHTTP11Connection._send_request_headers\u001b[1;34m(self, request)\u001b[0m\n\u001b[0;32m 151\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m map_exceptions({h11\u001b[38;5;241m.\u001b[39mLocalProtocolError: LocalProtocolError}):\n\u001b[1;32m--> 152\u001b[0m event \u001b[38;5;241m=\u001b[39m h11\u001b[38;5;241m.\u001b[39mRequest(\n\u001b[0;32m 153\u001b[0m method\u001b[38;5;241m=\u001b[39mrequest\u001b[38;5;241m.\u001b[39mmethod,\n\u001b[0;32m 154\u001b[0m target\u001b[38;5;241m=\u001b[39mrequest\u001b[38;5;241m.\u001b[39murl\u001b[38;5;241m.\u001b[39mtarget,\n\u001b[0;32m 155\u001b[0m headers\u001b[38;5;241m=\u001b[39mrequest\u001b[38;5;241m.\u001b[39mheaders,\n\u001b[0;32m 156\u001b[0m )\n\u001b[0;32m 157\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_send_event(event, timeout\u001b[38;5;241m=\u001b[39mtimeout)\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\contextlib.py:137\u001b[0m, in \u001b[0;36m_GeneratorContextManager.__exit__\u001b[1;34m(self, typ, value, traceback)\u001b[0m\n\u001b[0;32m 136\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 137\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgen\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mthrow\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtyp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtraceback\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 138\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[0;32m 139\u001b[0m \u001b[38;5;66;03m# Suppress StopIteration *unless* it's the same exception that\u001b[39;00m\n\u001b[0;32m 140\u001b[0m \u001b[38;5;66;03m# was passed to throw(). This prevents a StopIteration\u001b[39;00m\n\u001b[0;32m 141\u001b[0m \u001b[38;5;66;03m# raised inside the \"with\" statement from being suppressed.\u001b[39;00m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpcore\\_exceptions.py:14\u001b[0m, in \u001b[0;36mmap_exceptions\u001b[1;34m(map)\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(exc, from_exc):\n\u001b[1;32m---> 14\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m to_exc(exc) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mexc\u001b[39;00m\n\u001b[0;32m 15\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m\n", + "\u001b[1;31mLocalProtocolError\u001b[0m: Illegal header value b'Bearer '", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[1;31mLocalProtocolError\u001b[0m Traceback (most recent call last)", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\openai\\_base_client.py:972\u001b[0m, in \u001b[0;36mSyncAPIClient._request\u001b[1;34m(self, cast_to, options, remaining_retries, stream, stream_cls)\u001b[0m\n\u001b[0;32m 971\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 972\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_client\u001b[38;5;241m.\u001b[39msend(\n\u001b[0;32m 973\u001b[0m request,\n\u001b[0;32m 974\u001b[0m stream\u001b[38;5;241m=\u001b[39mstream \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_should_stream_response_body(request\u001b[38;5;241m=\u001b[39mrequest),\n\u001b[0;32m 975\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[0;32m 976\u001b[0m )\n\u001b[0;32m 977\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m httpx\u001b[38;5;241m.\u001b[39mTimeoutException \u001b[38;5;28;01mas\u001b[39;00m err:\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpx\\_client.py:914\u001b[0m, in \u001b[0;36mClient.send\u001b[1;34m(self, request, stream, auth, follow_redirects)\u001b[0m\n\u001b[0;32m 912\u001b[0m auth \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_build_request_auth(request, auth)\n\u001b[1;32m--> 914\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_send_handling_auth\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 915\u001b[0m \u001b[43m \u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 916\u001b[0m \u001b[43m \u001b[49m\u001b[43mauth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mauth\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 917\u001b[0m \u001b[43m \u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 918\u001b[0m \u001b[43m \u001b[49m\u001b[43mhistory\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m[\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 919\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 920\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpx\\_client.py:942\u001b[0m, in \u001b[0;36mClient._send_handling_auth\u001b[1;34m(self, request, auth, follow_redirects, history)\u001b[0m\n\u001b[0;32m 941\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m--> 942\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_send_handling_redirects\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 943\u001b[0m \u001b[43m \u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 944\u001b[0m \u001b[43m \u001b[49m\u001b[43mfollow_redirects\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfollow_redirects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 945\u001b[0m \u001b[43m \u001b[49m\u001b[43mhistory\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhistory\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 946\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 947\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpx\\_client.py:979\u001b[0m, in \u001b[0;36mClient._send_handling_redirects\u001b[1;34m(self, request, follow_redirects, history)\u001b[0m\n\u001b[0;32m 977\u001b[0m hook(request)\n\u001b[1;32m--> 979\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_send_single_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 980\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpx\\_client.py:1015\u001b[0m, in \u001b[0;36mClient._send_single_request\u001b[1;34m(self, request)\u001b[0m\n\u001b[0;32m 1014\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m request_context(request\u001b[38;5;241m=\u001b[39mrequest):\n\u001b[1;32m-> 1015\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[43mtransport\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_request\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrequest\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1017\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(response\u001b[38;5;241m.\u001b[39mstream, SyncByteStream)\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpx\\_transports\\default.py:233\u001b[0m, in \u001b[0;36mHTTPTransport.handle_request\u001b[1;34m(self, request)\u001b[0m\n\u001b[0;32m 232\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m map_httpcore_exceptions():\n\u001b[1;32m--> 233\u001b[0m resp \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_pool\u001b[38;5;241m.\u001b[39mhandle_request(req)\n\u001b[0;32m 235\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(resp\u001b[38;5;241m.\u001b[39mstream, typing\u001b[38;5;241m.\u001b[39mIterable)\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\contextlib.py:137\u001b[0m, in \u001b[0;36m_GeneratorContextManager.__exit__\u001b[1;34m(self, typ, value, traceback)\u001b[0m\n\u001b[0;32m 136\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 137\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgen\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mthrow\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtyp\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtraceback\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 138\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mStopIteration\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m exc:\n\u001b[0;32m 139\u001b[0m \u001b[38;5;66;03m# Suppress StopIteration *unless* it's the same exception that\u001b[39;00m\n\u001b[0;32m 140\u001b[0m \u001b[38;5;66;03m# was passed to throw(). This prevents a StopIteration\u001b[39;00m\n\u001b[0;32m 141\u001b[0m \u001b[38;5;66;03m# raised inside the \"with\" statement from being suppressed.\u001b[39;00m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\httpx\\_transports\\default.py:86\u001b[0m, in \u001b[0;36mmap_httpcore_exceptions\u001b[1;34m()\u001b[0m\n\u001b[0;32m 85\u001b[0m message \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mstr\u001b[39m(exc)\n\u001b[1;32m---> 86\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m mapped_exc(message) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mexc\u001b[39;00m\n", + "\u001b[1;31mLocalProtocolError\u001b[0m: Illegal header value b'Bearer '", + "\nThe above exception was the direct cause of the following exception:\n", + "\u001b[1;31mAPIConnectionError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[57], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[43mquery_engine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mquery\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mGive me a summary of the financial performance of the Alaska/International segment vs. the lower 48 segment\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\n\u001b[0;32m 3\u001b[0m \u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m response \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(response, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mresponse\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[0;32m 5\u001b[0m response\u001b[38;5;241m.\u001b[39mresponse\u001b[38;5;241m.\u001b[39mrender()\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\instrumentation\\dispatcher.py:235\u001b[0m, in \u001b[0;36mDispatcher.span..wrapper\u001b[1;34m(func, instance, args, kwargs)\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspan_enter(\n\u001b[0;32m 232\u001b[0m id_\u001b[38;5;241m=\u001b[39mid_, bound_args\u001b[38;5;241m=\u001b[39mbound_args, instance\u001b[38;5;241m=\u001b[39minstance, parent_id\u001b[38;5;241m=\u001b[39mparent_id\n\u001b[0;32m 233\u001b[0m )\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 235\u001b[0m result \u001b[38;5;241m=\u001b[39m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 236\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent(SpanDropEvent(span_id\u001b[38;5;241m=\u001b[39mid_, err_str\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e)))\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\base\\base_query_engine.py:52\u001b[0m, in \u001b[0;36mBaseQueryEngine.query\u001b[1;34m(self, str_or_query_bundle)\u001b[0m\n\u001b[0;32m 50\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(str_or_query_bundle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[0;32m 51\u001b[0m str_or_query_bundle \u001b[38;5;241m=\u001b[39m QueryBundle(str_or_query_bundle)\n\u001b[1;32m---> 52\u001b[0m query_result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_query\u001b[49m\u001b[43m(\u001b[49m\u001b[43mstr_or_query_bundle\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 53\u001b[0m dispatcher\u001b[38;5;241m.\u001b[39mevent(\n\u001b[0;32m 54\u001b[0m QueryEndEvent(query\u001b[38;5;241m=\u001b[39mstr_or_query_bundle, response\u001b[38;5;241m=\u001b[39mquery_result)\n\u001b[0;32m 55\u001b[0m )\n\u001b[0;32m 56\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m query_result\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\instrumentation\\dispatcher.py:235\u001b[0m, in \u001b[0;36mDispatcher.span..wrapper\u001b[1;34m(func, instance, args, kwargs)\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspan_enter(\n\u001b[0;32m 232\u001b[0m id_\u001b[38;5;241m=\u001b[39mid_, bound_args\u001b[38;5;241m=\u001b[39mbound_args, instance\u001b[38;5;241m=\u001b[39minstance, parent_id\u001b[38;5;241m=\u001b[39mparent_id\n\u001b[0;32m 233\u001b[0m )\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 235\u001b[0m result \u001b[38;5;241m=\u001b[39m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 236\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent(SpanDropEvent(span_id\u001b[38;5;241m=\u001b[39mid_, err_str\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e)))\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\query_engine\\retriever_query_engine.py:190\u001b[0m, in \u001b[0;36mRetrieverQueryEngine._query\u001b[1;34m(self, query_bundle)\u001b[0m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcallback_manager\u001b[38;5;241m.\u001b[39mevent(\n\u001b[0;32m 187\u001b[0m CBEventType\u001b[38;5;241m.\u001b[39mQUERY, payload\u001b[38;5;241m=\u001b[39m{EventPayload\u001b[38;5;241m.\u001b[39mQUERY_STR: query_bundle\u001b[38;5;241m.\u001b[39mquery_str}\n\u001b[0;32m 188\u001b[0m ) \u001b[38;5;28;01mas\u001b[39;00m query_event:\n\u001b[0;32m 189\u001b[0m nodes \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mretrieve(query_bundle)\n\u001b[1;32m--> 190\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_response_synthesizer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msynthesize\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 191\u001b[0m \u001b[43m \u001b[49m\u001b[43mquery\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mquery_bundle\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 192\u001b[0m \u001b[43m \u001b[49m\u001b[43mnodes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnodes\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 193\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 194\u001b[0m query_event\u001b[38;5;241m.\u001b[39mon_end(payload\u001b[38;5;241m=\u001b[39m{EventPayload\u001b[38;5;241m.\u001b[39mRESPONSE: response})\n\u001b[0;32m 196\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m response\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\instrumentation\\dispatcher.py:235\u001b[0m, in \u001b[0;36mDispatcher.span..wrapper\u001b[1;34m(func, instance, args, kwargs)\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspan_enter(\n\u001b[0;32m 232\u001b[0m id_\u001b[38;5;241m=\u001b[39mid_, bound_args\u001b[38;5;241m=\u001b[39mbound_args, instance\u001b[38;5;241m=\u001b[39minstance, parent_id\u001b[38;5;241m=\u001b[39mparent_id\n\u001b[0;32m 233\u001b[0m )\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 235\u001b[0m result \u001b[38;5;241m=\u001b[39m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 236\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent(SpanDropEvent(span_id\u001b[38;5;241m=\u001b[39mid_, err_str\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e)))\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\response_synthesizers\\base.py:251\u001b[0m, in \u001b[0;36mBaseSynthesizer.synthesize\u001b[1;34m(self, query, nodes, additional_source_nodes, **response_kwargs)\u001b[0m\n\u001b[0;32m 245\u001b[0m query \u001b[38;5;241m=\u001b[39m QueryBundle(query_str\u001b[38;5;241m=\u001b[39mquery)\n\u001b[0;32m 247\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_callback_manager\u001b[38;5;241m.\u001b[39mevent(\n\u001b[0;32m 248\u001b[0m CBEventType\u001b[38;5;241m.\u001b[39mSYNTHESIZE,\n\u001b[0;32m 249\u001b[0m payload\u001b[38;5;241m=\u001b[39m{EventPayload\u001b[38;5;241m.\u001b[39mQUERY_STR: query\u001b[38;5;241m.\u001b[39mquery_str},\n\u001b[0;32m 250\u001b[0m ) \u001b[38;5;28;01mas\u001b[39;00m event:\n\u001b[1;32m--> 251\u001b[0m response_str \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_response(\n\u001b[0;32m 252\u001b[0m query_str\u001b[38;5;241m=\u001b[39mquery\u001b[38;5;241m.\u001b[39mquery_str,\n\u001b[0;32m 253\u001b[0m text_chunks\u001b[38;5;241m=\u001b[39m[\n\u001b[0;32m 254\u001b[0m n\u001b[38;5;241m.\u001b[39mnode\u001b[38;5;241m.\u001b[39mget_content(metadata_mode\u001b[38;5;241m=\u001b[39mMetadataMode\u001b[38;5;241m.\u001b[39mLLM) \u001b[38;5;28;01mfor\u001b[39;00m n \u001b[38;5;129;01min\u001b[39;00m nodes\n\u001b[0;32m 255\u001b[0m ],\n\u001b[0;32m 256\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mresponse_kwargs,\n\u001b[0;32m 257\u001b[0m )\n\u001b[0;32m 259\u001b[0m additional_source_nodes \u001b[38;5;241m=\u001b[39m additional_source_nodes \u001b[38;5;129;01mor\u001b[39;00m []\n\u001b[0;32m 260\u001b[0m source_nodes \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(nodes) \u001b[38;5;241m+\u001b[39m \u001b[38;5;28mlist\u001b[39m(additional_source_nodes)\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\instrumentation\\dispatcher.py:235\u001b[0m, in \u001b[0;36mDispatcher.span..wrapper\u001b[1;34m(func, instance, args, kwargs)\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspan_enter(\n\u001b[0;32m 232\u001b[0m id_\u001b[38;5;241m=\u001b[39mid_, bound_args\u001b[38;5;241m=\u001b[39mbound_args, instance\u001b[38;5;241m=\u001b[39minstance, parent_id\u001b[38;5;241m=\u001b[39mparent_id\n\u001b[0;32m 233\u001b[0m )\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 235\u001b[0m result \u001b[38;5;241m=\u001b[39m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 236\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent(SpanDropEvent(span_id\u001b[38;5;241m=\u001b[39mid_, err_str\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e)))\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\response_synthesizers\\compact_and_refine.py:43\u001b[0m, in \u001b[0;36mCompactAndRefine.get_response\u001b[1;34m(self, query_str, text_chunks, prev_response, **response_kwargs)\u001b[0m\n\u001b[0;32m 39\u001b[0m \u001b[38;5;66;03m# use prompt helper to fix compact text_chunks under the prompt limitation\u001b[39;00m\n\u001b[0;32m 40\u001b[0m \u001b[38;5;66;03m# TODO: This is a temporary fix - reason it's temporary is that\u001b[39;00m\n\u001b[0;32m 41\u001b[0m \u001b[38;5;66;03m# the refine template does not account for size of previous answer.\u001b[39;00m\n\u001b[0;32m 42\u001b[0m new_texts \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_make_compact_text_chunks(query_str, text_chunks)\n\u001b[1;32m---> 43\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39mget_response(\n\u001b[0;32m 44\u001b[0m query_str\u001b[38;5;241m=\u001b[39mquery_str,\n\u001b[0;32m 45\u001b[0m text_chunks\u001b[38;5;241m=\u001b[39mnew_texts,\n\u001b[0;32m 46\u001b[0m prev_response\u001b[38;5;241m=\u001b[39mprev_response,\n\u001b[0;32m 47\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mresponse_kwargs,\n\u001b[0;32m 48\u001b[0m )\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\instrumentation\\dispatcher.py:235\u001b[0m, in \u001b[0;36mDispatcher.span..wrapper\u001b[1;34m(func, instance, args, kwargs)\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspan_enter(\n\u001b[0;32m 232\u001b[0m id_\u001b[38;5;241m=\u001b[39mid_, bound_args\u001b[38;5;241m=\u001b[39mbound_args, instance\u001b[38;5;241m=\u001b[39minstance, parent_id\u001b[38;5;241m=\u001b[39mparent_id\n\u001b[0;32m 233\u001b[0m )\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 235\u001b[0m result \u001b[38;5;241m=\u001b[39m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 236\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent(SpanDropEvent(span_id\u001b[38;5;241m=\u001b[39mid_, err_str\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e)))\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\response_synthesizers\\refine.py:183\u001b[0m, in \u001b[0;36mRefine.get_response\u001b[1;34m(self, query_str, text_chunks, prev_response, **response_kwargs)\u001b[0m\n\u001b[0;32m 179\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m text_chunk \u001b[38;5;129;01min\u001b[39;00m text_chunks:\n\u001b[0;32m 180\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m prev_response \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 181\u001b[0m \u001b[38;5;66;03m# if this is the first chunk, and text chunk already\u001b[39;00m\n\u001b[0;32m 182\u001b[0m \u001b[38;5;66;03m# is an answer, then return it\u001b[39;00m\n\u001b[1;32m--> 183\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_give_response_single(\n\u001b[0;32m 184\u001b[0m query_str, text_chunk, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mresponse_kwargs\n\u001b[0;32m 185\u001b[0m )\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 187\u001b[0m \u001b[38;5;66;03m# refine response if possible\u001b[39;00m\n\u001b[0;32m 188\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_refine_response_single(\n\u001b[0;32m 189\u001b[0m prev_response, query_str, text_chunk, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mresponse_kwargs\n\u001b[0;32m 190\u001b[0m )\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\response_synthesizers\\refine.py:238\u001b[0m, in \u001b[0;36mRefine._give_response_single\u001b[1;34m(self, query_str, text_chunk, **response_kwargs)\u001b[0m\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m response \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_streaming:\n\u001b[0;32m 235\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 236\u001b[0m structured_response \u001b[38;5;241m=\u001b[39m cast(\n\u001b[0;32m 237\u001b[0m StructuredRefineResponse,\n\u001b[1;32m--> 238\u001b[0m program(\n\u001b[0;32m 239\u001b[0m context_str\u001b[38;5;241m=\u001b[39mcur_text_chunk,\n\u001b[0;32m 240\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mresponse_kwargs,\n\u001b[0;32m 241\u001b[0m ),\n\u001b[0;32m 242\u001b[0m )\n\u001b[0;32m 243\u001b[0m query_satisfied \u001b[38;5;241m=\u001b[39m structured_response\u001b[38;5;241m.\u001b[39mquery_satisfied\n\u001b[0;32m 244\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m query_satisfied:\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\instrumentation\\dispatcher.py:235\u001b[0m, in \u001b[0;36mDispatcher.span..wrapper\u001b[1;34m(func, instance, args, kwargs)\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspan_enter(\n\u001b[0;32m 232\u001b[0m id_\u001b[38;5;241m=\u001b[39mid_, bound_args\u001b[38;5;241m=\u001b[39mbound_args, instance\u001b[38;5;241m=\u001b[39minstance, parent_id\u001b[38;5;241m=\u001b[39mparent_id\n\u001b[0;32m 233\u001b[0m )\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 235\u001b[0m result \u001b[38;5;241m=\u001b[39m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 236\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent(SpanDropEvent(span_id\u001b[38;5;241m=\u001b[39mid_, err_str\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e)))\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\response_synthesizers\\refine.py:84\u001b[0m, in \u001b[0;36mDefaultRefineProgram.__call__\u001b[1;34m(self, *args, **kwds)\u001b[0m\n\u001b[0;32m 82\u001b[0m answer \u001b[38;5;241m=\u001b[39m answer\u001b[38;5;241m.\u001b[39mjson()\n\u001b[0;32m 83\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m---> 84\u001b[0m answer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_llm\u001b[38;5;241m.\u001b[39mpredict(\n\u001b[0;32m 85\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_prompt,\n\u001b[0;32m 86\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwds,\n\u001b[0;32m 87\u001b[0m )\n\u001b[0;32m 88\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m StructuredRefineResponse(answer\u001b[38;5;241m=\u001b[39manswer, query_satisfied\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\instrumentation\\dispatcher.py:235\u001b[0m, in \u001b[0;36mDispatcher.span..wrapper\u001b[1;34m(func, instance, args, kwargs)\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspan_enter(\n\u001b[0;32m 232\u001b[0m id_\u001b[38;5;241m=\u001b[39mid_, bound_args\u001b[38;5;241m=\u001b[39mbound_args, instance\u001b[38;5;241m=\u001b[39minstance, parent_id\u001b[38;5;241m=\u001b[39mparent_id\n\u001b[0;32m 233\u001b[0m )\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 235\u001b[0m result \u001b[38;5;241m=\u001b[39m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 236\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent(SpanDropEvent(span_id\u001b[38;5;241m=\u001b[39mid_, err_str\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e)))\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\llms\\llm.py:559\u001b[0m, in \u001b[0;36mLLM.predict\u001b[1;34m(self, prompt, **prompt_args)\u001b[0m\n\u001b[0;32m 557\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmetadata\u001b[38;5;241m.\u001b[39mis_chat_model:\n\u001b[0;32m 558\u001b[0m messages \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_messages(prompt, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mprompt_args)\n\u001b[1;32m--> 559\u001b[0m chat_response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mchat\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmessages\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 560\u001b[0m output \u001b[38;5;241m=\u001b[39m chat_response\u001b[38;5;241m.\u001b[39mmessage\u001b[38;5;241m.\u001b[39mcontent \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 561\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\instrumentation\\dispatcher.py:235\u001b[0m, in \u001b[0;36mDispatcher.span..wrapper\u001b[1;34m(func, instance, args, kwargs)\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspan_enter(\n\u001b[0;32m 232\u001b[0m id_\u001b[38;5;241m=\u001b[39mid_, bound_args\u001b[38;5;241m=\u001b[39mbound_args, instance\u001b[38;5;241m=\u001b[39minstance, parent_id\u001b[38;5;241m=\u001b[39mparent_id\n\u001b[0;32m 233\u001b[0m )\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 235\u001b[0m result \u001b[38;5;241m=\u001b[39m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 236\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent(SpanDropEvent(span_id\u001b[38;5;241m=\u001b[39mid_, err_str\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e)))\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\llms\\callbacks.py:172\u001b[0m, in \u001b[0;36mllm_chat_callback..wrap..wrapped_llm_chat\u001b[1;34m(_self, messages, **kwargs)\u001b[0m\n\u001b[0;32m 163\u001b[0m event_id \u001b[38;5;241m=\u001b[39m callback_manager\u001b[38;5;241m.\u001b[39mon_event_start(\n\u001b[0;32m 164\u001b[0m CBEventType\u001b[38;5;241m.\u001b[39mLLM,\n\u001b[0;32m 165\u001b[0m payload\u001b[38;5;241m=\u001b[39m{\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 169\u001b[0m },\n\u001b[0;32m 170\u001b[0m )\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 172\u001b[0m f_return_val \u001b[38;5;241m=\u001b[39m f(_self, messages, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 173\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 174\u001b[0m callback_manager\u001b[38;5;241m.\u001b[39mon_event_end(\n\u001b[0;32m 175\u001b[0m CBEventType\u001b[38;5;241m.\u001b[39mLLM,\n\u001b[0;32m 176\u001b[0m payload\u001b[38;5;241m=\u001b[39m{EventPayload\u001b[38;5;241m.\u001b[39mEXCEPTION: e},\n\u001b[0;32m 177\u001b[0m event_id\u001b[38;5;241m=\u001b[39mevent_id,\n\u001b[0;32m 178\u001b[0m )\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\llms\\structured_llm.py:70\u001b[0m, in \u001b[0;36mStructuredLLM.chat\u001b[1;34m(self, messages, **kwargs)\u001b[0m\n\u001b[0;32m 62\u001b[0m \u001b[38;5;66;03m# TODO:\u001b[39;00m\n\u001b[0;32m 63\u001b[0m \n\u001b[0;32m 64\u001b[0m \u001b[38;5;66;03m# NOTE: we are wrapping existing messages in a ChatPromptTemplate to\u001b[39;00m\n\u001b[0;32m 65\u001b[0m \u001b[38;5;66;03m# make this work with our FunctionCallingProgram, even though\u001b[39;00m\n\u001b[0;32m 66\u001b[0m \u001b[38;5;66;03m# the messages don't technically have any variables (they are already formatted)\u001b[39;00m\n\u001b[0;32m 68\u001b[0m chat_prompt \u001b[38;5;241m=\u001b[39m ChatPromptTemplate(message_templates\u001b[38;5;241m=\u001b[39mmessages)\n\u001b[1;32m---> 70\u001b[0m output \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mllm\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstructured_predict\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 71\u001b[0m \u001b[43m \u001b[49m\u001b[43moutput_cls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moutput_cls\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mprompt\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mchat_prompt\u001b[49m\n\u001b[0;32m 72\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 73\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ChatResponse(\n\u001b[0;32m 74\u001b[0m message\u001b[38;5;241m=\u001b[39mChatMessage(role\u001b[38;5;241m=\u001b[39mMessageRole\u001b[38;5;241m.\u001b[39mASSISTANT, content\u001b[38;5;241m=\u001b[39moutput\u001b[38;5;241m.\u001b[39mjson()),\n\u001b[0;32m 75\u001b[0m raw\u001b[38;5;241m=\u001b[39moutput,\n\u001b[0;32m 76\u001b[0m )\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\instrumentation\\dispatcher.py:235\u001b[0m, in \u001b[0;36mDispatcher.span..wrapper\u001b[1;34m(func, instance, args, kwargs)\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspan_enter(\n\u001b[0;32m 232\u001b[0m id_\u001b[38;5;241m=\u001b[39mid_, bound_args\u001b[38;5;241m=\u001b[39mbound_args, instance\u001b[38;5;241m=\u001b[39minstance, parent_id\u001b[38;5;241m=\u001b[39mparent_id\n\u001b[0;32m 233\u001b[0m )\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 235\u001b[0m result \u001b[38;5;241m=\u001b[39m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 236\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent(SpanDropEvent(span_id\u001b[38;5;241m=\u001b[39mid_, err_str\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e)))\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\llms\\llm.py:346\u001b[0m, in \u001b[0;36mLLM.structured_predict\u001b[1;34m(self, output_cls, prompt, **prompt_args)\u001b[0m\n\u001b[0;32m 334\u001b[0m dispatcher\u001b[38;5;241m.\u001b[39mevent(\n\u001b[0;32m 335\u001b[0m LLMStructuredPredictStartEvent(\n\u001b[0;32m 336\u001b[0m output_cls\u001b[38;5;241m=\u001b[39moutput_cls, template\u001b[38;5;241m=\u001b[39mprompt, template_args\u001b[38;5;241m=\u001b[39mprompt_args\n\u001b[0;32m 337\u001b[0m )\n\u001b[0;32m 338\u001b[0m )\n\u001b[0;32m 339\u001b[0m program \u001b[38;5;241m=\u001b[39m get_program_for_llm(\n\u001b[0;32m 340\u001b[0m output_cls,\n\u001b[0;32m 341\u001b[0m prompt,\n\u001b[0;32m 342\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m 343\u001b[0m pydantic_program_mode\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpydantic_program_mode,\n\u001b[0;32m 344\u001b[0m )\n\u001b[1;32m--> 346\u001b[0m result \u001b[38;5;241m=\u001b[39m program(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mprompt_args)\n\u001b[0;32m 347\u001b[0m dispatcher\u001b[38;5;241m.\u001b[39mevent(LLMStructuredPredictEndEvent(output\u001b[38;5;241m=\u001b[39mresult))\n\u001b[0;32m 348\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m result\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\instrumentation\\dispatcher.py:235\u001b[0m, in \u001b[0;36mDispatcher.span..wrapper\u001b[1;34m(func, instance, args, kwargs)\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspan_enter(\n\u001b[0;32m 232\u001b[0m id_\u001b[38;5;241m=\u001b[39mid_, bound_args\u001b[38;5;241m=\u001b[39mbound_args, instance\u001b[38;5;241m=\u001b[39minstance, parent_id\u001b[38;5;241m=\u001b[39mparent_id\n\u001b[0;32m 233\u001b[0m )\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 235\u001b[0m result \u001b[38;5;241m=\u001b[39m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 236\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent(SpanDropEvent(span_id\u001b[38;5;241m=\u001b[39mid_, err_str\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e)))\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\program\\function_program.py:198\u001b[0m, in \u001b[0;36mFunctionCallingProgram.__call__\u001b[1;34m(self, llm_kwargs, *args, **kwargs)\u001b[0m\n\u001b[0;32m 195\u001b[0m messages \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_prompt\u001b[38;5;241m.\u001b[39mformat_messages(llm\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_llm, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 196\u001b[0m messages \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_llm\u001b[38;5;241m.\u001b[39m_extend_messages(messages)\n\u001b[1;32m--> 198\u001b[0m agent_response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_llm\u001b[38;5;241m.\u001b[39mpredict_and_call(\n\u001b[0;32m 199\u001b[0m [tool],\n\u001b[0;32m 200\u001b[0m chat_history\u001b[38;5;241m=\u001b[39mmessages,\n\u001b[0;32m 201\u001b[0m verbose\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_verbose,\n\u001b[0;32m 202\u001b[0m allow_parallel_tool_calls\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_allow_parallel_tool_calls,\n\u001b[0;32m 203\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mllm_kwargs,\n\u001b[0;32m 204\u001b[0m )\n\u001b[0;32m 205\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _parse_tool_outputs(\n\u001b[0;32m 206\u001b[0m agent_response,\n\u001b[0;32m 207\u001b[0m allow_parallel_tool_calls\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_allow_parallel_tool_calls,\n\u001b[0;32m 208\u001b[0m )\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\instrumentation\\dispatcher.py:235\u001b[0m, in \u001b[0;36mDispatcher.span..wrapper\u001b[1;34m(func, instance, args, kwargs)\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspan_enter(\n\u001b[0;32m 232\u001b[0m id_\u001b[38;5;241m=\u001b[39mid_, bound_args\u001b[38;5;241m=\u001b[39mbound_args, instance\u001b[38;5;241m=\u001b[39minstance, parent_id\u001b[38;5;241m=\u001b[39mparent_id\n\u001b[0;32m 233\u001b[0m )\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 235\u001b[0m result \u001b[38;5;241m=\u001b[39m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 236\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent(SpanDropEvent(span_id\u001b[38;5;241m=\u001b[39mid_, err_str\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e)))\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\llms\\function_calling.py:182\u001b[0m, in \u001b[0;36mFunctionCallingLLM.predict_and_call\u001b[1;34m(self, tools, user_msg, chat_history, verbose, allow_parallel_tool_calls, error_on_no_tool_call, **kwargs)\u001b[0m\n\u001b[0;32m 173\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmetadata\u001b[38;5;241m.\u001b[39mis_function_calling_model:\n\u001b[0;32m 174\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39mpredict_and_call(\n\u001b[0;32m 175\u001b[0m tools,\n\u001b[0;32m 176\u001b[0m user_msg\u001b[38;5;241m=\u001b[39muser_msg,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 179\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[0;32m 180\u001b[0m )\n\u001b[1;32m--> 182\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mchat_with_tools(\n\u001b[0;32m 183\u001b[0m tools,\n\u001b[0;32m 184\u001b[0m user_msg\u001b[38;5;241m=\u001b[39muser_msg,\n\u001b[0;32m 185\u001b[0m chat_history\u001b[38;5;241m=\u001b[39mchat_history,\n\u001b[0;32m 186\u001b[0m verbose\u001b[38;5;241m=\u001b[39mverbose,\n\u001b[0;32m 187\u001b[0m allow_parallel_tool_calls\u001b[38;5;241m=\u001b[39mallow_parallel_tool_calls,\n\u001b[0;32m 188\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[0;32m 189\u001b[0m )\n\u001b[0;32m 190\u001b[0m tool_calls \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_tool_calls_from_response(\n\u001b[0;32m 191\u001b[0m response, error_on_no_tool_call\u001b[38;5;241m=\u001b[39merror_on_no_tool_call\n\u001b[0;32m 192\u001b[0m )\n\u001b[0;32m 193\u001b[0m tool_outputs \u001b[38;5;241m=\u001b[39m [\n\u001b[0;32m 194\u001b[0m call_tool_with_selection(tool_call, tools, verbose\u001b[38;5;241m=\u001b[39mverbose)\n\u001b[0;32m 195\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m tool_call \u001b[38;5;129;01min\u001b[39;00m tool_calls\n\u001b[0;32m 196\u001b[0m ]\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\llms\\function_calling.py:48\u001b[0m, in \u001b[0;36mFunctionCallingLLM.chat_with_tools\u001b[1;34m(self, tools, user_msg, chat_history, verbose, allow_parallel_tool_calls, **kwargs)\u001b[0m\n\u001b[0;32m 39\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Chat with function calling.\"\"\"\u001b[39;00m\n\u001b[0;32m 40\u001b[0m chat_kwargs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_prepare_chat_with_tools(\n\u001b[0;32m 41\u001b[0m tools,\n\u001b[0;32m 42\u001b[0m user_msg\u001b[38;5;241m=\u001b[39muser_msg,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 46\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[0;32m 47\u001b[0m )\n\u001b[1;32m---> 48\u001b[0m response \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mchat(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mchat_kwargs)\n\u001b[0;32m 49\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_validate_chat_with_tools_response(\n\u001b[0;32m 50\u001b[0m response,\n\u001b[0;32m 51\u001b[0m tools,\n\u001b[0;32m 52\u001b[0m allow_parallel_tool_calls\u001b[38;5;241m=\u001b[39mallow_parallel_tool_calls,\n\u001b[0;32m 53\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[0;32m 54\u001b[0m )\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\instrumentation\\dispatcher.py:235\u001b[0m, in \u001b[0;36mDispatcher.span..wrapper\u001b[1;34m(func, instance, args, kwargs)\u001b[0m\n\u001b[0;32m 231\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mspan_enter(\n\u001b[0;32m 232\u001b[0m id_\u001b[38;5;241m=\u001b[39mid_, bound_args\u001b[38;5;241m=\u001b[39mbound_args, instance\u001b[38;5;241m=\u001b[39minstance, parent_id\u001b[38;5;241m=\u001b[39mparent_id\n\u001b[0;32m 233\u001b[0m )\n\u001b[0;32m 234\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 235\u001b[0m result \u001b[38;5;241m=\u001b[39m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 236\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 237\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mevent(SpanDropEvent(span_id\u001b[38;5;241m=\u001b[39mid_, err_str\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(e)))\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\core\\llms\\callbacks.py:172\u001b[0m, in \u001b[0;36mllm_chat_callback..wrap..wrapped_llm_chat\u001b[1;34m(_self, messages, **kwargs)\u001b[0m\n\u001b[0;32m 163\u001b[0m event_id \u001b[38;5;241m=\u001b[39m callback_manager\u001b[38;5;241m.\u001b[39mon_event_start(\n\u001b[0;32m 164\u001b[0m CBEventType\u001b[38;5;241m.\u001b[39mLLM,\n\u001b[0;32m 165\u001b[0m payload\u001b[38;5;241m=\u001b[39m{\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 169\u001b[0m },\n\u001b[0;32m 170\u001b[0m )\n\u001b[0;32m 171\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 172\u001b[0m f_return_val \u001b[38;5;241m=\u001b[39m f(_self, messages, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 173\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 174\u001b[0m callback_manager\u001b[38;5;241m.\u001b[39mon_event_end(\n\u001b[0;32m 175\u001b[0m CBEventType\u001b[38;5;241m.\u001b[39mLLM,\n\u001b[0;32m 176\u001b[0m payload\u001b[38;5;241m=\u001b[39m{EventPayload\u001b[38;5;241m.\u001b[39mEXCEPTION: e},\n\u001b[0;32m 177\u001b[0m event_id\u001b[38;5;241m=\u001b[39mevent_id,\n\u001b[0;32m 178\u001b[0m )\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\llms\\openai\\base.py:327\u001b[0m, in \u001b[0;36mOpenAI.chat\u001b[1;34m(self, messages, **kwargs)\u001b[0m\n\u001b[0;32m 325\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 326\u001b[0m chat_fn \u001b[38;5;241m=\u001b[39m completion_to_chat_decorator(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_complete)\n\u001b[1;32m--> 327\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m chat_fn(messages, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\llms\\openai\\base.py:95\u001b[0m, in \u001b[0;36mllm_retry_decorator..wrapper\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 86\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m f(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 88\u001b[0m retry \u001b[38;5;241m=\u001b[39m create_retry_decorator(\n\u001b[0;32m 89\u001b[0m max_retries\u001b[38;5;241m=\u001b[39mmax_retries,\n\u001b[0;32m 90\u001b[0m random_exponential\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 93\u001b[0m max_seconds\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m20\u001b[39m,\n\u001b[0;32m 94\u001b[0m )\n\u001b[1;32m---> 95\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m retry(f)(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\tenacity\\__init__.py:336\u001b[0m, in \u001b[0;36mBaseRetrying.wraps..wrapped_f\u001b[1;34m(*args, **kw)\u001b[0m\n\u001b[0;32m 334\u001b[0m copy \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcopy()\n\u001b[0;32m 335\u001b[0m wrapped_f\u001b[38;5;241m.\u001b[39mstatistics \u001b[38;5;241m=\u001b[39m copy\u001b[38;5;241m.\u001b[39mstatistics \u001b[38;5;66;03m# type: ignore[attr-defined]\u001b[39;00m\n\u001b[1;32m--> 336\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m copy(f, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw)\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\tenacity\\__init__.py:475\u001b[0m, in \u001b[0;36mRetrying.__call__\u001b[1;34m(self, fn, *args, **kwargs)\u001b[0m\n\u001b[0;32m 473\u001b[0m retry_state \u001b[38;5;241m=\u001b[39m RetryCallState(retry_object\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m, fn\u001b[38;5;241m=\u001b[39mfn, args\u001b[38;5;241m=\u001b[39margs, kwargs\u001b[38;5;241m=\u001b[39mkwargs)\n\u001b[0;32m 474\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m--> 475\u001b[0m do \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43miter\u001b[49m\u001b[43m(\u001b[49m\u001b[43mretry_state\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mretry_state\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 476\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(do, DoAttempt):\n\u001b[0;32m 477\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\tenacity\\__init__.py:376\u001b[0m, in \u001b[0;36mBaseRetrying.iter\u001b[1;34m(self, retry_state)\u001b[0m\n\u001b[0;32m 374\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 375\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m action \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39miter_state\u001b[38;5;241m.\u001b[39mactions:\n\u001b[1;32m--> 376\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43maction\u001b[49m\u001b[43m(\u001b[49m\u001b[43mretry_state\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 377\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m result\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\tenacity\\__init__.py:418\u001b[0m, in \u001b[0;36mBaseRetrying._post_stop_check_actions..exc_check\u001b[1;34m(rs)\u001b[0m\n\u001b[0;32m 416\u001b[0m retry_exc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mretry_error_cls(fut)\n\u001b[0;32m 417\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mreraise:\n\u001b[1;32m--> 418\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[43mretry_exc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mreraise\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 419\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m retry_exc \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mfut\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexception\u001b[39;00m()\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\tenacity\\__init__.py:185\u001b[0m, in \u001b[0;36mRetryError.reraise\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 183\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mreraise\u001b[39m(\u001b[38;5;28mself\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m t\u001b[38;5;241m.\u001b[39mNoReturn:\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlast_attempt\u001b[38;5;241m.\u001b[39mfailed:\n\u001b[1;32m--> 185\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlast_attempt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 186\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\concurrent\\futures\\_base.py:439\u001b[0m, in \u001b[0;36mFuture.result\u001b[1;34m(self, timeout)\u001b[0m\n\u001b[0;32m 437\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m CancelledError()\n\u001b[0;32m 438\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;241m==\u001b[39m FINISHED:\n\u001b[1;32m--> 439\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__get_result\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 441\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_condition\u001b[38;5;241m.\u001b[39mwait(timeout)\n\u001b[0;32m 443\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state \u001b[38;5;129;01min\u001b[39;00m [CANCELLED, CANCELLED_AND_NOTIFIED]:\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\concurrent\\futures\\_base.py:391\u001b[0m, in \u001b[0;36mFuture.__get_result\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 389\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception:\n\u001b[0;32m 390\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 391\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_exception\n\u001b[0;32m 392\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 393\u001b[0m \u001b[38;5;66;03m# Break a reference cycle with the exception in self._exception\u001b[39;00m\n\u001b[0;32m 394\u001b[0m \u001b[38;5;28mself\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\tenacity\\__init__.py:478\u001b[0m, in \u001b[0;36mRetrying.__call__\u001b[1;34m(self, fn, *args, **kwargs)\u001b[0m\n\u001b[0;32m 476\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(do, DoAttempt):\n\u001b[0;32m 477\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 478\u001b[0m result \u001b[38;5;241m=\u001b[39m fn(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 479\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mBaseException\u001b[39;00m: \u001b[38;5;66;03m# noqa: B902\u001b[39;00m\n\u001b[0;32m 480\u001b[0m retry_state\u001b[38;5;241m.\u001b[39mset_exception(sys\u001b[38;5;241m.\u001b[39mexc_info()) \u001b[38;5;66;03m# type: ignore[arg-type]\u001b[39;00m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\llama_index\\llms\\openai\\base.py:395\u001b[0m, in \u001b[0;36mOpenAI._chat\u001b[1;34m(self, messages, **kwargs)\u001b[0m\n\u001b[0;32m 392\u001b[0m message_dicts \u001b[38;5;241m=\u001b[39m to_openai_message_dicts(messages)\n\u001b[0;32m 394\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mreuse_client:\n\u001b[1;32m--> 395\u001b[0m response \u001b[38;5;241m=\u001b[39m client\u001b[38;5;241m.\u001b[39mchat\u001b[38;5;241m.\u001b[39mcompletions\u001b[38;5;241m.\u001b[39mcreate(\n\u001b[0;32m 396\u001b[0m messages\u001b[38;5;241m=\u001b[39mmessage_dicts,\n\u001b[0;32m 397\u001b[0m stream\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[0;32m 398\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_model_kwargs(\u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs),\n\u001b[0;32m 399\u001b[0m )\n\u001b[0;32m 400\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 401\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m client:\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\openai\\_utils\\_utils.py:274\u001b[0m, in \u001b[0;36mrequired_args..inner..wrapper\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 272\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMissing required argument: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mquote(missing[\u001b[38;5;241m0\u001b[39m])\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 273\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(msg)\n\u001b[1;32m--> 274\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\openai\\resources\\chat\\completions.py:668\u001b[0m, in \u001b[0;36mCompletions.create\u001b[1;34m(self, messages, model, frequency_penalty, function_call, functions, logit_bias, logprobs, max_tokens, n, parallel_tool_calls, presence_penalty, response_format, seed, service_tier, stop, stream, stream_options, temperature, tool_choice, tools, top_logprobs, top_p, user, extra_headers, extra_query, extra_body, timeout)\u001b[0m\n\u001b[0;32m 633\u001b[0m \u001b[38;5;129m@required_args\u001b[39m([\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmessages\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmodel\u001b[39m\u001b[38;5;124m\"\u001b[39m], [\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmessages\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmodel\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstream\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[0;32m 634\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcreate\u001b[39m(\n\u001b[0;32m 635\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 665\u001b[0m timeout: \u001b[38;5;28mfloat\u001b[39m \u001b[38;5;241m|\u001b[39m httpx\u001b[38;5;241m.\u001b[39mTimeout \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m|\u001b[39m NotGiven \u001b[38;5;241m=\u001b[39m NOT_GIVEN,\n\u001b[0;32m 666\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m ChatCompletion \u001b[38;5;241m|\u001b[39m Stream[ChatCompletionChunk]:\n\u001b[0;32m 667\u001b[0m validate_response_format(response_format)\n\u001b[1;32m--> 668\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_post\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 669\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m/chat/completions\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 670\u001b[0m \u001b[43m \u001b[49m\u001b[43mbody\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmaybe_transform\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 671\u001b[0m \u001b[43m \u001b[49m\u001b[43m{\u001b[49m\n\u001b[0;32m 672\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmessages\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mmessages\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 673\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmodel\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 674\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfrequency_penalty\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mfrequency_penalty\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 675\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfunction_call\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mfunction_call\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 676\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfunctions\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mfunctions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 677\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mlogit_bias\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mlogit_bias\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 678\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mlogprobs\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mlogprobs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 679\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmax_tokens\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mmax_tokens\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 680\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mn\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mn\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 681\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mparallel_tool_calls\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mparallel_tool_calls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 682\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mpresence_penalty\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mpresence_penalty\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 683\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mresponse_format\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mresponse_format\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 684\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mseed\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mseed\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 685\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mservice_tier\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mservice_tier\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 686\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstop\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mstop\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 687\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstream\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 688\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstream_options\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mstream_options\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 689\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtemperature\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mtemperature\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 690\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtool_choice\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mtool_choice\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 691\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtools\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mtools\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 692\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtop_logprobs\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mtop_logprobs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 693\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtop_p\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mtop_p\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 694\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43muser\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43muser\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 695\u001b[0m \u001b[43m \u001b[49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 696\u001b[0m \u001b[43m \u001b[49m\u001b[43mcompletion_create_params\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mCompletionCreateParams\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 697\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 698\u001b[0m \u001b[43m \u001b[49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmake_request_options\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 699\u001b[0m \u001b[43m \u001b[49m\u001b[43mextra_headers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mextra_headers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mextra_query\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mextra_query\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mextra_body\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mextra_body\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtimeout\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtimeout\u001b[49m\n\u001b[0;32m 700\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 701\u001b[0m \u001b[43m \u001b[49m\u001b[43mcast_to\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mChatCompletion\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 702\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 703\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mStream\u001b[49m\u001b[43m[\u001b[49m\u001b[43mChatCompletionChunk\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 704\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\openai\\_base_client.py:1259\u001b[0m, in \u001b[0;36mSyncAPIClient.post\u001b[1;34m(self, path, cast_to, body, options, files, stream, stream_cls)\u001b[0m\n\u001b[0;32m 1245\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mpost\u001b[39m(\n\u001b[0;32m 1246\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m 1247\u001b[0m path: \u001b[38;5;28mstr\u001b[39m,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 1254\u001b[0m stream_cls: \u001b[38;5;28mtype\u001b[39m[_StreamT] \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m 1255\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m ResponseT \u001b[38;5;241m|\u001b[39m _StreamT:\n\u001b[0;32m 1256\u001b[0m opts \u001b[38;5;241m=\u001b[39m FinalRequestOptions\u001b[38;5;241m.\u001b[39mconstruct(\n\u001b[0;32m 1257\u001b[0m method\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mpost\u001b[39m\u001b[38;5;124m\"\u001b[39m, url\u001b[38;5;241m=\u001b[39mpath, json_data\u001b[38;5;241m=\u001b[39mbody, files\u001b[38;5;241m=\u001b[39mto_httpx_files(files), \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39moptions\n\u001b[0;32m 1258\u001b[0m )\n\u001b[1;32m-> 1259\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m cast(ResponseT, \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrequest\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcast_to\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mopts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream_cls\u001b[49m\u001b[43m)\u001b[49m)\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\openai\\_base_client.py:936\u001b[0m, in \u001b[0;36mSyncAPIClient.request\u001b[1;34m(self, cast_to, options, remaining_retries, stream, stream_cls)\u001b[0m\n\u001b[0;32m 927\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrequest\u001b[39m(\n\u001b[0;32m 928\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[0;32m 929\u001b[0m cast_to: Type[ResponseT],\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 934\u001b[0m stream_cls: \u001b[38;5;28mtype\u001b[39m[_StreamT] \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m 935\u001b[0m ) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m ResponseT \u001b[38;5;241m|\u001b[39m _StreamT:\n\u001b[1;32m--> 936\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_request\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 937\u001b[0m \u001b[43m \u001b[49m\u001b[43mcast_to\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcast_to\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 938\u001b[0m \u001b[43m \u001b[49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 939\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 940\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream_cls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 941\u001b[0m \u001b[43m \u001b[49m\u001b[43mremaining_retries\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mremaining_retries\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 942\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\openai\\_base_client.py:996\u001b[0m, in \u001b[0;36mSyncAPIClient._request\u001b[1;34m(self, cast_to, options, remaining_retries, stream, stream_cls)\u001b[0m\n\u001b[0;32m 993\u001b[0m log\u001b[38;5;241m.\u001b[39mdebug(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mEncountered Exception\u001b[39m\u001b[38;5;124m\"\u001b[39m, exc_info\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m 995\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m retries \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m--> 996\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_retry_request\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 997\u001b[0m \u001b[43m \u001b[49m\u001b[43minput_options\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 998\u001b[0m \u001b[43m \u001b[49m\u001b[43mcast_to\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 999\u001b[0m \u001b[43m \u001b[49m\u001b[43mretries\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1000\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1001\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream_cls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1002\u001b[0m \u001b[43m \u001b[49m\u001b[43mresponse_headers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 1003\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1005\u001b[0m log\u001b[38;5;241m.\u001b[39mdebug(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mRaising connection error\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 1006\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m APIConnectionError(request\u001b[38;5;241m=\u001b[39mrequest) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\openai\\_base_client.py:1074\u001b[0m, in \u001b[0;36mSyncAPIClient._retry_request\u001b[1;34m(self, options, cast_to, remaining_retries, response_headers, stream, stream_cls)\u001b[0m\n\u001b[0;32m 1070\u001b[0m \u001b[38;5;66;03m# In a synchronous context we are blocking the entire thread. Up to the library user to run the client in a\u001b[39;00m\n\u001b[0;32m 1071\u001b[0m \u001b[38;5;66;03m# different thread if necessary.\u001b[39;00m\n\u001b[0;32m 1072\u001b[0m time\u001b[38;5;241m.\u001b[39msleep(timeout)\n\u001b[1;32m-> 1074\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_request\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1075\u001b[0m \u001b[43m \u001b[49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1076\u001b[0m \u001b[43m \u001b[49m\u001b[43mcast_to\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcast_to\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1077\u001b[0m \u001b[43m \u001b[49m\u001b[43mremaining_retries\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mremaining\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1078\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1079\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream_cls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1080\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\openai\\_base_client.py:996\u001b[0m, in \u001b[0;36mSyncAPIClient._request\u001b[1;34m(self, cast_to, options, remaining_retries, stream, stream_cls)\u001b[0m\n\u001b[0;32m 993\u001b[0m log\u001b[38;5;241m.\u001b[39mdebug(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mEncountered Exception\u001b[39m\u001b[38;5;124m\"\u001b[39m, exc_info\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m 995\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m retries \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m--> 996\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_retry_request\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 997\u001b[0m \u001b[43m \u001b[49m\u001b[43minput_options\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 998\u001b[0m \u001b[43m \u001b[49m\u001b[43mcast_to\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 999\u001b[0m \u001b[43m \u001b[49m\u001b[43mretries\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1000\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1001\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream_cls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1002\u001b[0m \u001b[43m \u001b[49m\u001b[43mresponse_headers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 1003\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1005\u001b[0m log\u001b[38;5;241m.\u001b[39mdebug(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mRaising connection error\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 1006\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m APIConnectionError(request\u001b[38;5;241m=\u001b[39mrequest) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\openai\\_base_client.py:1074\u001b[0m, in \u001b[0;36mSyncAPIClient._retry_request\u001b[1;34m(self, options, cast_to, remaining_retries, response_headers, stream, stream_cls)\u001b[0m\n\u001b[0;32m 1070\u001b[0m \u001b[38;5;66;03m# In a synchronous context we are blocking the entire thread. Up to the library user to run the client in a\u001b[39;00m\n\u001b[0;32m 1071\u001b[0m \u001b[38;5;66;03m# different thread if necessary.\u001b[39;00m\n\u001b[0;32m 1072\u001b[0m time\u001b[38;5;241m.\u001b[39msleep(timeout)\n\u001b[1;32m-> 1074\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_request\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1075\u001b[0m \u001b[43m \u001b[49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1076\u001b[0m \u001b[43m \u001b[49m\u001b[43mcast_to\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcast_to\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1077\u001b[0m \u001b[43m \u001b[49m\u001b[43mremaining_retries\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mremaining\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1078\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1079\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream_cls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1080\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\openai\\_base_client.py:996\u001b[0m, in \u001b[0;36mSyncAPIClient._request\u001b[1;34m(self, cast_to, options, remaining_retries, stream, stream_cls)\u001b[0m\n\u001b[0;32m 993\u001b[0m log\u001b[38;5;241m.\u001b[39mdebug(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mEncountered Exception\u001b[39m\u001b[38;5;124m\"\u001b[39m, exc_info\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m 995\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m retries \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m--> 996\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_retry_request\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 997\u001b[0m \u001b[43m \u001b[49m\u001b[43minput_options\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 998\u001b[0m \u001b[43m \u001b[49m\u001b[43mcast_to\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 999\u001b[0m \u001b[43m \u001b[49m\u001b[43mretries\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1000\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1001\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream_cls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1002\u001b[0m \u001b[43m \u001b[49m\u001b[43mresponse_headers\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 1003\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1005\u001b[0m log\u001b[38;5;241m.\u001b[39mdebug(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mRaising connection error\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 1006\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m APIConnectionError(request\u001b[38;5;241m=\u001b[39mrequest) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\openai\\_base_client.py:1074\u001b[0m, in \u001b[0;36mSyncAPIClient._retry_request\u001b[1;34m(self, options, cast_to, remaining_retries, response_headers, stream, stream_cls)\u001b[0m\n\u001b[0;32m 1070\u001b[0m \u001b[38;5;66;03m# In a synchronous context we are blocking the entire thread. Up to the library user to run the client in a\u001b[39;00m\n\u001b[0;32m 1071\u001b[0m \u001b[38;5;66;03m# different thread if necessary.\u001b[39;00m\n\u001b[0;32m 1072\u001b[0m time\u001b[38;5;241m.\u001b[39msleep(timeout)\n\u001b[1;32m-> 1074\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_request\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1075\u001b[0m \u001b[43m \u001b[49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1076\u001b[0m \u001b[43m \u001b[49m\u001b[43mcast_to\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcast_to\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1077\u001b[0m \u001b[43m \u001b[49m\u001b[43mremaining_retries\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mremaining\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1078\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1079\u001b[0m \u001b[43m \u001b[49m\u001b[43mstream_cls\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstream_cls\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1080\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[1;32mc:\\Users\\Usuario\\miniconda3\\envs\\medium\\lib\\site-packages\\openai\\_base_client.py:1006\u001b[0m, in \u001b[0;36mSyncAPIClient._request\u001b[1;34m(self, cast_to, options, remaining_retries, stream, stream_cls)\u001b[0m\n\u001b[0;32m 996\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_retry_request(\n\u001b[0;32m 997\u001b[0m input_options,\n\u001b[0;32m 998\u001b[0m cast_to,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 1002\u001b[0m response_headers\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[0;32m 1003\u001b[0m )\n\u001b[0;32m 1005\u001b[0m log\u001b[38;5;241m.\u001b[39mdebug(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mRaising connection error\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m-> 1006\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m APIConnectionError(request\u001b[38;5;241m=\u001b[39mrequest) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[0;32m 1008\u001b[0m log\u001b[38;5;241m.\u001b[39mdebug(\n\u001b[0;32m 1009\u001b[0m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mHTTP Response: \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m%i\u001b[39;00m\u001b[38;5;124m \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m'\u001b[39m,\n\u001b[0;32m 1010\u001b[0m request\u001b[38;5;241m.\u001b[39mmethod,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 1014\u001b[0m response\u001b[38;5;241m.\u001b[39mheaders,\n\u001b[0;32m 1015\u001b[0m )\n\u001b[0;32m 1016\u001b[0m log\u001b[38;5;241m.\u001b[39mdebug(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrequest_id: \u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m\"\u001b[39m, response\u001b[38;5;241m.\u001b[39mheaders\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mx-request-id\u001b[39m\u001b[38;5;124m\"\u001b[39m))\n", + "\u001b[1;31mAPIConnectionError\u001b[0m: Connection error." + ] + } + ], "source": [ - "response = query_engine.query(\n", - " \"Give me a summary of the financial performance of the Alaska/International segment vs. the lower 48 segment\"\n", - ")" + "import time\n", + "\n", + "from httpcore import LocalProtocolError\n", + "\n", + "# Robust retry function\n", + "def query_with_retry(query_engine, query_text, max_retries=3, delay=5):\n", + " for attempt in range(max_retries):\n", + " try:\n", + " response = query_engine.query(query_text)\n", + " return response\n", + " except (openai.APIConnectionError, LocalProtocolError) as e:\n", + " if attempt < max_retries - 1:\n", + " print(f\"Connection error occurred. Retrying in {delay} seconds...\")\n", + " time.sleep(delay)\n", + " else:\n", + " raise e\n", + "\n", + "# Usage of the retry function\n", + "try:\n", + " response = query_with_retry(\n", + " query_engine,\n", + " \"Give me a summary of the financial performance of the Alaska/International segment vs. the lower 48 segment\"\n", + " )\n", + " \n", + " if response is None:\n", + " print(\"No response received from the query engine.\")\n", + " elif hasattr(response, 'response') and hasattr(response.response, 'render'):\n", + " response.response.render()\n", + " elif hasattr(response, 'render'):\n", + " response.render()\n", + " else:\n", + " print(\"Response structure is not as expected. Here's what we received:\")\n", + " print(response)\n", + "except Exception as e:\n", + " print(f\"An error occurred after multiple retries: {str(e)}\")\n", + " import traceback\n", + " traceback.print_exc()\n" ] }, { @@ -697,9 +1886,9 @@ ], "metadata": { "kernelspec": { - "display_name": "llama_index_v3", + "display_name": "medium", "language": "python", - "name": "llama_index_v3" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -710,7 +1899,8 @@ "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3" + "pygments_lexer": "ipython3", + "version": "3.9.19" } }, "nbformat": 4, From 2a45557361daafb76e9c521f3ac826dfb8212279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Albert=20Gil=20L=C3=B3pez?= Date: Sun, 11 Aug 2024 18:41:09 +0200 Subject: [PATCH 2/2] Fix text nodes creation, improve agent response handling, and update base agent setup --- .../multimodal_rag_slide_deck.ipynb | 2703 ++++++++++++++--- 1 file changed, 2355 insertions(+), 348 deletions(-) diff --git a/examples/multimodal/multimodal_rag_slide_deck.ipynb b/examples/multimodal/multimodal_rag_slide_deck.ipynb index 63d5df9..79189b4 100644 --- a/examples/multimodal/multimodal_rag_slide_deck.ipynb +++ b/examples/multimodal/multimodal_rag_slide_deck.ipynb @@ -32,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "70ccdd53-e68a-4199-aacb-cfe71ad1ff0b", "metadata": {}, "outputs": [], @@ -61,12 +61,43 @@ "metadata": {}, "outputs": [], "source": [ - "!pip install -U llama-index-callbacks-arize-phoenix" + "# !pip install -U llama-index-callbacks-arize-phoenix" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, + "id": "4aff51b5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import os\n", + "import openai\n", + "\n", + "# Configure OpenAI API key\n", + "os.environ[\"OPENAI_API_KEY\"] = \"your-api-key-here\" # Replace with actual API key\n", + "openai.api_key = os.getenv(\"OPENAI_API_KEY\")\n", + "\n", + "# Or\n", + "\n", + "from dotenv import load_dotenv\n", + "load_dotenv()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, "id": "aaeb245c-730b-4c34-ad68-708fdde0e6cb", "metadata": {}, "outputs": [], @@ -94,14 +125,45 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "8bce3407-a7d2-47e8-9eaf-ab297a94750c", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "File downloaded successfully using curl: data_rag/conocophillips.pdf\n" + ] + } + ], "source": [ - "!mkdir data\n", - "!mkdir data_images\n", - "!wget \"https://static.conocophillips.com/files/2023-conocophillips-aim-presentation.pdf\" -O data/conocophillips.pdf" + "import os\n", + "import subprocess\n", + "import requests\n", + "\n", + "def download_file(url, output_path):\n", + " try:\n", + " # Try curl first\n", + " subprocess.run([\"curl\", \"-L\", url, \"-o\", output_path], check=True)\n", + " print(f\"File downloaded successfully using curl: {output_path}\")\n", + " except subprocess.CalledProcessError:\n", + " print(\"curl is not available. Trying with requests...\")\n", + " try:\n", + " # If curl fails, use requests\n", + " response = requests.get(url)\n", + " response.raise_for_status() # Raises an HTTPError if the HTTP request returned an unsuccessful status code\n", + " with open(output_path, 'wb') as f:\n", + " f.write(response.content)\n", + " print(f\"File downloaded successfully using requests: {output_path}\")\n", + " except Exception as e:\n", + " print(f\"Error downloading file: {e}\")\n", + " raise\n", + "\n", + "# Create necessary directories and download the file\n", + "os.makedirs(\"data\", exist_ok=True)\n", + "os.makedirs(\"data_images\", exist_ok=True)\n", + "download_file(\"https://static.conocophillips.com/files/2023-conocophillips-aim-presentation.pdf\", \"data/conocophillips.pdf\")" ] }, { @@ -116,7 +178,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "16e2071d-bbc2-4707-8ae7-cb4e1fecafd3", "metadata": {}, "outputs": [], @@ -148,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "570089e5-238a-4dcc-af65-96e7393c2b4d", "metadata": {}, "outputs": [], @@ -162,10 +224,144 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "ef82a985-4088-4bb7-9a21-0318e1b9207d", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Parsing text...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: POST https://api.cloud.llamaindex.ai/api/parsing/upload \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Started parsing the file under job_id a140e3fd-ebda-4ca7-9bfe-212a5152a506\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "." + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506 \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a140e3fd-ebda-4ca7-9bfe-212a5152a506/result/text \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Parsing PDF file...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: POST https://api.cloud.llamaindex.ai/api/parsing/upload \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Started parsing the file under job_id a0af2de7-8064-4372-9094-0c91b54ed38f\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/json \"HTTP/1.1 200 OK\"\n" + ] + } + ], "source": [ "print(f\"Parsing text...\")\n", "docs_text = parser_text.load_data(\"data/conocophillips.pdf\")\n", @@ -176,27 +372,62 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 65, "id": "7506b603-c01f-45de-b354-4a0728dde03c", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ConocoPhillips\n", + " 2023 Analyst & Investor Meeting\n" + ] + } + ], "source": [ "print(docs_text[0].get_content())" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 66, "id": "5318fb7b-fe6a-4a8a-b82e-4ed7b4512c37", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# Commitment to Disciplined Reinvestment Rate\n", + "\n", + "| | Industry Growth Focus | ConocoPhillips Strategy Reset | Disciplined Reinvestment Rate is the Foundation for Superior Returns on and of Capital, while Driving Durable CFO Growth |\n", + "|---|---|---|---|\n", + "| | >100% Reinvestment Rate | <60% Reinvestment Rate | ~50% 10-Year Reinvestment Rate
~6% CFO CAGR 2024-2032
at $60/BBL WTI Mid-Cycle Planning Price |\n", + "\n", + "| ConocoPhillips Average Annual Reinvestment Rate (%) | 2012-2016 | 2017-2022 | 2023E | 2024-2028 | 2029-2032 |\n", + "|---|---|---|---|---|---|\n", + "| 100% | | | | | |\n", + "| 75% | | | | | |\n", + "| 50% | | | | | |\n", + "| 25% | | | | | |\n", + "| 0% | | | | | |\n", + "\n", + "| | | | | | |\n", + "|---|---|---|---|---|---|\n", + "| | ~ $75/BBL WTI Average | ~ $63/BBL WTI Average | at $80/BBL WTI | at $60/BBL WTI
at $80/BBL WTI | at $60/BBL WTI
at $80/BBL WTI |\n", + "\n", + "*Reinvestment rate and cash from operations (CFO) are non-GAAP measures. Definitions and reconciliations are included in the Appendix.*\n" + ] + } + ], "source": [ "print(md_json_list[10][\"md\"])" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 67, "id": "7a46a73e-c6e2-4b0b-bd10-31b0d3e4b70f", "metadata": {}, "outputs": [ @@ -204,7 +435,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "dict_keys(['page', 'text', 'md', 'images', 'items'])\n" + "dict_keys(['page', 'md', 'images', 'items'])\n" ] } ], @@ -214,176 +445,1183 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 73, "id": "eeadb16c-97eb-4622-9551-b34d7f90d72f", "metadata": {}, - "outputs": [], - "source": [ - "image_dicts = parser_gpt4o.get_images(md_json_objs, download_path=\"data_images\")" - ] - }, - { - "cell_type": "markdown", - "id": "fd3e098b-0606-4429-b48d-d4fe0140fc0e", - "metadata": {}, - "source": [ - "## Build Multimodal Index\n", - "\n", - "In this section we build the multimodal index over the parsed deck. \n", - "\n", - "We do this by creating **text** nodes from the document that contain metadata referencing the original image path.\n", - "\n", - "In this example we're indexing the text node for retrieval. The text node has a reference to both the parsed text as well as the image screenshot." - ] - }, - { - "cell_type": "markdown", - "id": "3aae2dee-9d85-4604-8a51-705d4db527f7", - "metadata": {}, - "source": [ - "#### Get Text Nodes" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "18c24174-05ce-417f-8dd2-79c3f375db03", - "metadata": {}, - "outputs": [], - "source": [ - "from llama_index.core.schema import TextNode\n", - "from typing import Optional" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8e331dfe-a627-4e23-8c57-70ab1d9342e4", - "metadata": {}, - "outputs": [], - "source": [ - "# get pages loaded through llamaparse\n", - "import re\n", - "\n", - "\n", - "def get_page_number(file_name):\n", - " match = re.search(r\"-page-(\\d+)\\.jpg$\", str(file_name))\n", - " if match:\n", - " return int(match.group(1))\n", - " return 0\n", - "\n", - "\n", - "def _get_sorted_image_files(image_dir):\n", - " \"\"\"Get image files sorted by page.\"\"\"\n", - " raw_files = [f for f in list(Path(image_dir).iterdir()) if f.is_file()]\n", - " sorted_files = sorted(raw_files, key=get_page_number)\n", - " return sorted_files" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "346fe5ef-171e-4a54-9084-7a7805103a13", - "metadata": {}, - "outputs": [], - "source": [ - "from copy import deepcopy\n", - "from pathlib import Path\n", - "\n", - "\n", - "# attach image metadata to the text nodes\n", - "def get_text_nodes(docs, image_dir=None, json_dicts=None):\n", - " \"\"\"Split docs into nodes, by separator.\"\"\"\n", - " nodes = []\n", - "\n", - " image_files = _get_sorted_image_files(image_dir) if image_dir is not None else None\n", - " md_texts = [d[\"md\"] for d in json_dicts] if json_dicts is not None else None\n", - "\n", - " doc_chunks = docs[0].text.split(\"---\")\n", - " for idx, doc_chunk in enumerate(doc_chunks):\n", - " chunk_metadata = {\"page_num\": idx + 1}\n", - " if image_files is not None:\n", - " image_file = image_files[idx]\n", - " chunk_metadata[\"image_path\"] = str(image_file)\n", - " if md_texts is not None:\n", - " chunk_metadata[\"parsed_text_markdown\"] = md_texts[idx]\n", - " chunk_metadata[\"parsed_text\"] = doc_chunk\n", - " node = TextNode(\n", - " text=\"\",\n", - " metadata=chunk_metadata,\n", - " )\n", - " nodes.append(node)\n", - "\n", - " return nodes" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f591669c-5a8e-491d-9cef-0b754abbf26f", - "metadata": {}, - "outputs": [], - "source": [ - "# this will split into pages\n", - "text_nodes = get_text_nodes(docs_text, image_dir=\"data_images\", json_dicts=md_json_list)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "32c13950-c1db-435f-b5b4-89d62b8b7744", - "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "page_num: 11\n", - "image_path: data_images/d9137e19-3974-4b5d-998f-dac0cf29dd9d-page-10.jpg\n", - "parsed_text_markdown: # Commitment to Disciplined Reinvestment Rate\n", - "\n", - "| Year | Reinvestment Rate | WTI Average Price | Reinvestment Rate at $60/BBL WTI | Reinvestment Rate at $80/BBL WTI |\n", - "|------------|-------------------|-------------------|----------------------------------|----------------------------------|\n", - "| 2012-2016 | >100% | ~$75/BBL | | |\n", - "| 2017-2022 | <60% | ~$63/BBL | | |\n", - "| 2023E | | | | at $80/BBL WTI |\n", - "| 2024-2028 | | | at $60/BBL WTI | at $80/BBL WTI |\n", - "| 2029-2032 | | | at $60/BBL WTI | at $80/BBL WTI |\n", - "\n", - "**Disciplined Reinvestment Rate is the Foundation for Superior Returns on and of Capital, while Driving Durable CFO Growth**\n", - "\n", - "- ~50% 10-Year Reinvestment Rate\n", - "- ~6% CFO CAGR 2024-2032 at $60/BBL WTI Mid-Cycle Planning Price\n", - "\n", - "**Note:** Reinvestment rate and cash from operations (CFO) are non-GAAP measures. Definitions and reconciliations are included in the Appendix.\n", - "parsed_text: \n", - "Commitment to Disciplined Reinvestment Rate\n", - " Industry ConocoPhillips\n", - " Strategy Reset Disciplined Reinvestment Rate is the Foundation for Superior\n", - " Growth Focus Returns on and of Capital, while Driving Durable CFO Growth\n", - " 100% <60% 50% 6% at $60/BBL WTI\n", - " Reinvestment Rate Reinvestment Rate Reinvestment Rate10-YearCFO CAGR Planning PriceMid-Cycle\n", - " 2024-2032\n", - " 2 100%\n", - " 1 75%\n", - " 1 50%\n", - " 1 WTIat $80/BBL at S80/BBL\n", - " 25% 'S75/BBL $63/BBL WTI\n", - " WTI WTI at S80/BBL at S60/BBL at S60/BBL\n", - " Average Average WTI WTI WTI\n", - " 0%\n", - " 2012-2016 2017-2022 2023E 2024-2028 2029-2032\n", - " Historic Reinvestment Rate Reinvestment Rate at $60/BBL WTI Reinvestment Rate at $80/BBL WTI\n", - " Reinvestment rate andcashfrom operations (CFO) are non-GAAP measures: Definitions and reconciliations are included in the Appendix ConocoPhillips\n" + "> Image for page 1: [{'name': 'page-0.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-0.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 1}]\n" ] - } - ], - "source": [ - "print(text_nodes[10].get_content(metadata_mode=\"all\"))" - ] - }, - { - "cell_type": "markdown", + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-0.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 2: [{'name': 'page-1.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-1.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 2}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-1.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 3: [{'name': 'page-2.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-2.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 3}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-2.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 4: [{'name': 'page-3.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-3.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 4}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-3.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 5: [{'name': 'page-4.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-4.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 5}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-4.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 6: [{'name': 'page-5.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-5.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 6}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-5.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 7: [{'name': 'page-6.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-6.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 7}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-6.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 8: [{'name': 'page-7.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-7.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 8}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-7.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 9: [{'name': 'page-8.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-8.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 9}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-8.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 10: [{'name': 'page-9.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-9.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 10}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-9.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 11: [{'name': 'page-10.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-10.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 11}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-10.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 12: [{'name': 'page-11.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-11.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 12}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-11.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 13: [{'name': 'page-12.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-12.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 13}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-12.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 14: [{'name': 'page-13.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-13.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 14}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-13.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 15: [{'name': 'page-14.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-14.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 15}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-14.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 16: [{'name': 'page-15.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-15.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 16}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-15.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 17: [{'name': 'page-16.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-16.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 17}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-16.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 18: [{'name': 'page-17.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-17.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 18}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-17.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 19: [{'name': 'page-18.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-18.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 19}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-18.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 20: [{'name': 'page-19.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-19.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 20}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-19.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 21: [{'name': 'page-20.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-20.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 21}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-20.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 22: [{'name': 'page-21.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-21.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 22}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-21.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 23: [{'name': 'page-22.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-22.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 23}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-22.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 24: [{'name': 'page-23.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-23.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 24}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-23.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 25: [{'name': 'page-24.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-24.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 25}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-24.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 26: [{'name': 'page-25.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-25.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 26}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-25.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 27: [{'name': 'page-26.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-26.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 27}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-26.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 28: [{'name': 'page-27.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-27.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 28}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-27.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 29: [{'name': 'page-28.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-28.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 29}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-28.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 30: [{'name': 'page-29.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-29.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 30}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-29.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 31: [{'name': 'page-30.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-30.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 31}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-30.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 32: [{'name': 'page-31.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-31.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 32}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-31.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 33: [{'name': 'page-32.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-32.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 33}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-32.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 34: [{'name': 'page-33.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-33.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 34}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-33.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 35: [{'name': 'page-34.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-34.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 35}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-34.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 36: [{'name': 'page-35.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-35.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 36}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-35.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 37: [{'name': 'page-36.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-36.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 37}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-36.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 38: [{'name': 'page-37.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-37.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 38}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-37.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 39: [{'name': 'page-38.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-38.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 39}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-38.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 40: [{'name': 'page-39.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-39.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 40}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-39.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 41: [{'name': 'page-40.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-40.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 41}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-40.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 42: [{'name': 'page-41.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot', 'path': 'data_images_rag\\\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-41.jpg', 'job_id': 'a0af2de7-8064-4372-9094-0c91b54ed38f', 'original_pdf_path': 'data_rag/conocophillips.pdf', 'page_number': 42}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-41.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 43: [{'name': 'page-42.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-42.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 44: [{'name': 'page-43.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-43.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 45: [{'name': 'page-44.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-44.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 46: [{'name': 'page-45.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-45.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 47: [{'name': 'page-46.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-46.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 48: [{'name': 'page-47.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-47.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 49: [{'name': 'page-48.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-48.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 50: [{'name': 'page-49.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-49.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 51: [{'name': 'page-50.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-50.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 52: [{'name': 'page-51.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-51.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 53: [{'name': 'page-52.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-52.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 54: [{'name': 'page-53.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-53.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 55: [{'name': 'page-54.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-54.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 56: [{'name': 'page-55.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-55.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 57: [{'name': 'page-56.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-56.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 58: [{'name': 'page-57.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-57.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 59: [{'name': 'page-58.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-58.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 60: [{'name': 'page-59.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-59.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 61: [{'name': 'page-60.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-60.jpg \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "> Image for page 62: [{'name': 'page-61.jpg', 'height': 0, 'width': 0, 'x': 0, 'y': 0, 'type': 'full_page_screenshot'}]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: GET https://api.cloud.llamaindex.ai/api/parsing/job/a0af2de7-8064-4372-9094-0c91b54ed38f/result/image/page-61.jpg \"HTTP/1.1 200 OK\"\n" + ] + } + ], + "source": [ + "image_dicts = parser_gpt4o.get_images(md_json_objs, download_path=\"data_images\")" + ] + }, + { + "cell_type": "markdown", + "id": "fd3e098b-0606-4429-b48d-d4fe0140fc0e", + "metadata": {}, + "source": [ + "## Build Multimodal Index\n", + "\n", + "In this section we build the multimodal index over the parsed deck. \n", + "\n", + "We do this by creating **text** nodes from the document that contain metadata referencing the original image path.\n", + "\n", + "In this example we're indexing the text node for retrieval. The text node has a reference to both the parsed text as well as the image screenshot." + ] + }, + { + "cell_type": "markdown", + "id": "3aae2dee-9d85-4604-8a51-705d4db527f7", + "metadata": {}, + "source": [ + "#### Get Text Nodes" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "id": "18c24174-05ce-417f-8dd2-79c3f375db03", + "metadata": {}, + "outputs": [], + "source": [ + "from llama_index.core.schema import TextNode\n", + "from typing import Optional" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "id": "8e331dfe-a627-4e23-8c57-70ab1d9342e4", + "metadata": {}, + "outputs": [], + "source": [ + "# get pages loaded through llamaparse\n", + "import re\n", + "\n", + "\n", + "def get_page_number(file_name):\n", + " match = re.search(r\"-page-(\\d+)\\.jpg$\", str(file_name))\n", + " if match:\n", + " return int(match.group(1))\n", + " return 0\n", + "\n", + "\n", + "def _get_sorted_image_files(image_dir):\n", + " \"\"\"Get image files sorted by page.\"\"\"\n", + " raw_files = [f for f in list(Path(image_dir).iterdir()) if f.is_file()]\n", + " sorted_files = sorted(raw_files, key=get_page_number)\n", + " return sorted_files" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "id": "15b20d60", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of image files: 62\n", + "First few image files:\n", + "a0af2de7-8064-4372-9094-0c91b54ed38f-page-0.jpg\n", + "a0af2de7-8064-4372-9094-0c91b54ed38f-page-1.jpg\n", + "a0af2de7-8064-4372-9094-0c91b54ed38f-page-10.jpg\n", + "a0af2de7-8064-4372-9094-0c91b54ed38f-page-11.jpg\n", + "a0af2de7-8064-4372-9094-0c91b54ed38f-page-12.jpg\n" + ] + } + ], + "source": [ + "import os\n", + "\n", + "image_files = os.listdir(\"data_images)\n", + "print(f\"Number of image files: {len(image_files)}\")\n", + "print(\"First few image files:\")\n", + "for file in image_files[:5]:\n", + " print(file)" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "id": "346fe5ef-171e-4a54-9084-7a7805103a13", + "metadata": {}, + "outputs": [], + "source": [ + "from copy import deepcopy\n", + "from pathlib import Path\n", + "\n", + "\n", + "# attach image metadata to the text nodes\n", + "def get_text_nodes(docs, image_dir=None, json_dicts=None):\n", + " nodes = []\n", + " image_files = _get_sorted_image_files(image_dir) if image_dir is not None else None\n", + " md_texts = [d[\"md\"] for d in json_dicts] if json_dicts is not None else None\n", + "\n", + " for doc_idx, doc in enumerate(docs):\n", + " doc_chunks = doc.text.split(\"---\")\n", + " for chunk_idx, doc_chunk in enumerate(doc_chunks):\n", + " page_num = doc_idx * len(doc_chunks) + chunk_idx + 1\n", + " chunk_metadata = {\"page_num\": page_num}\n", + " if image_files is not None and page_num <= len(image_files):\n", + " chunk_metadata[\"image_path\"] = str(image_files[page_num - 1])\n", + " if md_texts is not None and page_num <= len(md_texts):\n", + " chunk_metadata[\"parsed_text_markdown\"] = md_texts[page_num - 1]\n", + " chunk_metadata[\"parsed_text\"] = doc_chunk\n", + " node = TextNode(\n", + " text=\"\",\n", + " metadata=chunk_metadata,\n", + " )\n", + " nodes.append(node)\n", + "\n", + " return nodes" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "id": "f591669c-5a8e-491d-9cef-0b754abbf26f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of text nodes: 62\n", + "\n", + "Content of the last node (index 61):\n", + "page_num: 62\n", + "image_path: data_images_rag\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-61.jpg\n", + "parsed_text_markdown: # Definitions\n", + "\n", + "## Other Terms\n", + "\n", + "**Cost of Supply** is the WTI equivalent price that generates a 10% after-tax return on a point-forward and fully burdened basis. Fully burdened includes capital infrastructure, foreign exchange, price-related inflation, G&A and carbon tax (if currently assessed). If no carbon tax exists for the asset, carbon pricing aligned with internal energy scenarios are applied. All barrels of resource in the Cost of Supply calculation are discounted at 10%.\n", + "\n", + "**Distributions** is defined as the total of the ordinary dividend, share repurchases and variable return of cash (VROC). Also referred to as return of capital.\n", + "\n", + "**Free cash flow breakeven** is the WTI price at which cash from operations equals capital expenditures and investments. Also referred to as capital breakeven. Cash from operations is a non-GAAP measure defined in this Appendix.\n", + "\n", + "**Leverage ratio** refers to net debt divided by cash from operations. Net debt and cash from operations are non-GAAP measures defined in this Appendix.\n", + "\n", + "**Optimized Cascade® Process** is a ConocoPhillips proprietary licensed process for technology to liquefy natural gas. More information can be found at [http://lnglicensing.conocophillips.com/what-we-do/lng-technology/optimized-cascade-process](http://lnglicensing.conocophillips.com/what-we-do/lng-technology/optimized-cascade-process).\n", + "\n", + "**Reserve replacement** is defined by the Company as a ratio representing the change in proved reserves, net of production, divided by current year production. The Company believes that reserve replacement is useful to investors to help understand how changes in proved reserves, net of production, compare with the Company’s current year production, inclusive of acquisitions and dispositions.\n", + "\n", + "**Resources:** The company estimates its total resources based on the Petroleum Resources Management System (PRMS), a system developed by industry that classifies recoverable hydrocarbons into commercial and sub-commercial to reflect their status at the time of reporting. Proved, probable and possible reserves are classified as commercial, while remaining resources are categorized as sub-commercial or contingent. The company’s resource estimate includes volumes associated with both commercial and contingent categories. The SEC permits oil and gas companies, in their filings with the SEC, to disclose only proved, probable and possible reserves. U.S. investors are urged to consider closely the oil and gas disclosures in our Form 10-K and other reports and filings with the SEC.\n", + "\n", + "**Resource life** is calculated as total resource under $40 Cost of Supply divided by 2022 production.\n", + "\n", + "**Return of capital** is defined as the total of the ordinary dividend, share repurchases and variable return of cash (VROC). Also referred to as distributions.\n", + "parsed_text: Definitions\n", + " Other Terms\n", + " Cost of Supply is the WTI equivalent price that generates a 10% after-tax return on a point-forward and fully burdened basis. Fully burdened includes capital infrastructure; foreign\n", + " exchange; price-related inflation, G&A and carbon tax (if currently assessed) If no carbon tax exists for the asset; carbon pricing aligned with internal energy scenarios are applied.\n", + " All barrels of resource in the Cost of Supply calculation are discounted at 10%_\n", + " Distributions is defined as the total of the ordinary dividend, share repurchases and variable return of cash (VROC) Also referred to as return of capital.\n", + " Free cash flow breakeven is the WTI price at which cash from operations equals capital expenditures and investments. Also referred to as capital breakeven. Cash from operations\n", + " is a non-GAAP measure defined in this Appendix:\n", + " Leverage ratio refers to net debt divided by cash from operations Net debt and cash from operations are non-GAAP measures defined in this Appendix\n", + " Optimized Cascade @ Process is a ConocoPhillips proprietary licensed process for technology to liquefy natural gas. More information can be found at\n", + " http: / /Inglicensing conocophillipscom/what-we-do/lng-technology/optimized-cascade-process\n", + " believes that reserve replacement is useful to investors to help understand how changes in proved reserves, net of production, compare with the Companys current year\n", + " Reserve replacement is defined by the Company as a ratio representing the change in proved reserves, net of production, divided by current year production The Company\n", + " production; inclusive of acquisitions and dispositions\n", + " hydrocarbons into commercial and sub-commercial to reflect their status at the time of reporting: Proved, probable and possible reserves are classified as commercial, while\n", + " Resources: The company estimates its total resources based on the Petroleum Resources Management System (PRMS), a system developed by industry that classifies recoverable\n", + " remaining resources are categorized as sub-commercial or contingent: The companys resource estimate includes volumes associated with both commercial and contingent\n", + " categories The SEC permits oil and gas companies, in their filings with the SEC, to disclose only proved, probable and possible reserves U.S. investors are urged to consider closely\n", + " the oil and gas disclosures in our Form 10-K and other reports andfilings with the SEC.\n", + " Resource life is calculated as total resource under $40 Cost of Supply divided by 2022 production.\n", + " Return of capital is defined as the total of the ordinary dividend, share repurchases and variable return of cash (VROC) Also referred to as distributions\n", + " ConocoPhillips\n", + "\n", + "Content of the 10th node (index 9):\n", + "page_num: 10\n", + "image_path: data_images_rag\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-9.jpg\n", + "parsed_text_markdown: # Strategy Powers Our Returns-Focused Value Proposition\n", + "\n", + "## Rigorous Capital Allocation Framework\n", + "- Commitment to disciplined reinvestment rate\n", + "- Cost of Supply analysis informs investment decisions\n", + "- Balance of short-cycle, flexible unconventional with select longer-cycle, low-decline conventional\n", + "\n", + "## Differentiated Portfolio Depth, Durability and Diversity\n", + "- ~20 BBOE, <$40/BBL WTI low Cost of Supply resource base\n", + "- Leading Lower 48 unconventional position, complemented with premium Alaska and International assets\n", + "- Strong track record of active portfolio management\n", + "\n", + "## Valued Role in the Energy Transition\n", + "- Accelerating GHG-intensity reduction target through 2030\n", + "- Built attractive LNG portfolio\n", + "- Evaluating longer term low-carbon options in hydrogen and CCS\n", + "\n", + "*Reinvestment rate is a non-GAAP measure defined in the Appendix.*\n", + "parsed_text: Strategy Powers Our Returns-Focused Value Proposition\n", + " S\n", + " Rigorous Capital Differentiated Portfolio Valued Role in the\n", + " Allocation Framework Depth, Durability and Diversity Energy Transition\n", + " Commitment to 20 BBOE, S40/BBL WTI Accelerating GHG-intensity\n", + " disciplined reinvestment rate low Cost of Supply resource base reduction target through 2030\n", + " Leading Lower 48\n", + " Cost of Supply analysis unconventional position; Built attractive\n", + " informs investment decisions complemented with premium LNG portfolio\n", + " Alaska and International assets\n", + " Balance of short-cycle, Evaluating longer term\n", + " flexible unconventional Strong track record of activeportfolio management IoW-carbon options in\n", + " with select longer-cycle, hydrogen and CCS\n", + " low-decline conventional\n", + " Reinvestment rate is non-GAAP measure defined in the Appendix ConocoPhillips\n" + ] + } + ], + "source": [ + "text_nodes = get_text_nodes(docs_text, image_dir=\"data_images\", json_dicts=md_json_list)\n", + "\n", + "print(f\"Number of text nodes: {len(text_nodes)}\")\n", + "\n", + "if len(text_nodes) > 0:\n", + " last_index = len(text_nodes) - 1\n", + " print(f\"\\nContent of the last node (index {last_index}):\")\n", + " print(text_nodes[last_index].get_content(metadata_mode=\"all\"))\n", + "else:\n", + " print(\"The text_nodes list is empty.\")\n", + "\n", + "# Print content of the 10th node (if it exists)\n", + "if len(text_nodes) > 10:\n", + " print(\"\\nContent of the 10th node (index 9):\")\n", + " print(text_nodes[9].get_content(metadata_mode=\"all\"))\n", + "else:\n", + " print(\"\\nThere are fewer than 11 nodes.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "32c13950-c1db-435f-b5b4-89d62b8b7744", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "page_num: 11\n", + "image_path: data_images_rag\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-10.jpg\n", + "parsed_text_markdown: # Commitment to Disciplined Reinvestment Rate\n", + "\n", + "| | Industry Growth Focus | ConocoPhillips Strategy Reset | Disciplined Reinvestment Rate is the Foundation for Superior Returns on and of Capital, while Driving Durable CFO Growth |\n", + "|---|---|---|---|\n", + "| | >100% Reinvestment Rate | <60% Reinvestment Rate | ~50% 10-Year Reinvestment Rate
~6% CFO CAGR 2024-2032
at $60/BBL WTI Mid-Cycle Planning Price |\n", + "\n", + "| ConocoPhillips Average Annual Reinvestment Rate (%) | 2012-2016 | 2017-2022 | 2023E | 2024-2028 | 2029-2032 |\n", + "|---|---|---|---|---|---|\n", + "| 100% | | | | | |\n", + "| 75% | | | | | |\n", + "| 50% | | | | | |\n", + "| 25% | | | | | |\n", + "| 0% | | | | | |\n", + "\n", + "| | | | | | |\n", + "|---|---|---|---|---|---|\n", + "| | ~ $75/BBL WTI Average | ~ $63/BBL WTI Average | at $80/BBL WTI | at $60/BBL WTI
at $80/BBL WTI | at $60/BBL WTI
at $80/BBL WTI |\n", + "\n", + "*Reinvestment rate and cash from operations (CFO) are non-GAAP measures. Definitions and reconciliations are included in the Appendix.*\n", + "parsed_text: Commitment to Disciplined Reinvestment Rate\n", + " Industry ConocoPhillips\n", + " Strategy Reset Disciplined Reinvestment Rate is the Foundation for Superior\n", + " Growth Focus Returns on and of Capital, while Driving Durable CFO Growth\n", + " 100% <60% 50% 6% at $60/BBL WTI\n", + " Reinvestment Rate Reinvestment Rate Reinvestment Rate10-YearCFO CAGR Planning PriceMid-Cycle\n", + " 2024-2032\n", + " 2 100%\n", + " 1 75%\n", + " 1 50%\n", + " 1 WTIat $80/BBL at S80/BBL\n", + " 25% 'S75/BBL $63/BBL WTI\n", + " WTI WTI at S80/BBL at S60/BBL at S60/BBL\n", + " Average Average WTI WTI WTI\n", + " 0%\n", + " 2012-2016 2017-2022 2023E 2024-2028 2029-2032\n", + " Historic Reinvestment Rate Reinvestment Rate at $60/BBL WTI Reinvestment Rate at $80/BBL WTI\n", + " Reinvestment rate and cash from operations (CFO) are non-GAAP measures: Definitions and reconciliations are included in the Appendix ConocoPhillips\n" + ] + } + ], + "source": [ + "print(text_nodes[10].get_content(metadata_mode=\"all\"))" + ] + }, + { + "cell_type": "markdown", "id": "4f404f56-db1e-4ed7-9ba1-ead763546348", "metadata": {}, "source": [ @@ -394,10 +1632,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 91, "id": "6ea53c31-0e38-421c-8d9b-0e3adaa1677e", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n" + ] + } + ], "source": [ "import os\n", "from llama_index.core import (\n", @@ -432,7 +1678,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 109, "id": "35a94be2-e289-41a6-92e4-d3cb428fb0c8", "metadata": {}, "outputs": [], @@ -509,15 +1755,13 @@ " return Response(\n", " response=str(llm_response),\n", " source_nodes=nodes,\n", - " metadata={\"text_nodes\": text_nodes, \"image_nodes\": image_nodes},\n", - " )\n", - "\n", - " return response" + " metadata={\"text_nodes\": nodes, \"image_nodes\": image_nodes},\n", + " )" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 110, "id": "0890be59-fb12-4bb5-959b-b2d9600f7774", "metadata": {}, "outputs": [], @@ -543,7 +1787,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 111, "id": "c0b15a48-d177-4666-aec2-98ee90664642", "metadata": {}, "outputs": [], @@ -565,7 +1809,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 112, "id": "2065d2c6-d6ba-4ee3-8e9e-dbc83cbcec1b", "metadata": {}, "outputs": [], @@ -575,7 +1819,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 113, "id": "bcaea1a8-26c9-4385-8f62-32855aa898b6", "metadata": {}, "outputs": [ @@ -588,7 +1832,7 @@ " Under $40/BBL Cost of Supply 10-Year Plan Cumulative Production (BBOE)\n", " S50 S32/BBL Lower 48 Alaska\n", " Average Cost of Supply\n", - " 3$40 GKA GWA\n", + " 3 $40 GKA GWA\n", " GPA WNS\n", " $30 EMENA\n", " 3 Norway\n", @@ -599,7 +1843,7 @@ " APLNG Montney\n", " S0\n", " 10 15 20 Bakken\n", - " Resource (BBOE) Eagle Ford Other MalaysiaChina Surmont\n", + " Resource (BBOE) Eagle Ford Other Malaysia ChinaSurmont\n", " Lower 48 Canada Alaska EMENA Asia Pacific\n", "Costs assumemid-cycle price environment of S60/BBL WTI:\n", " ConocoPhillips\n" @@ -612,10 +1856,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 114, "id": "f6bcfbc6-4e9b-41ad-ad81-1c4245b95cd5", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n" + ] + } + ], "source": [ "base_index = VectorStoreIndex(base_nodes, embed_model=embed_model)\n", "base_query_engine = base_index.as_query_engine(llm=llm, similarity_top_k=9)" @@ -633,45 +1885,41 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 115, "id": "5b7a8c5f-39fc-4d04-8c56-3642f5718437", "metadata": {}, "outputs": [], "source": [ - "from llama_index.core.tools import QueryEngineTool\n", - "from llama_index.core.agent import FunctionCallingAgentWorker\n", - "\n", + "from llama_index.core.tools import QueryEngineTool, ToolMetadata\n", + "from llama_index.core.agent import ReActAgent\n", "\n", - "vector_tool = QueryEngineTool.from_defaults(\n", + "vector_tool = QueryEngineTool(\n", " query_engine=query_engine,\n", - " name=\"vector_tool\",\n", - " description=(\n", - " \"Useful for retrieving specific context from the data. Do NOT select if question asks for a summary of the data.\"\n", - " ),\n", + " metadata=ToolMetadata(\n", + " name=\"vector_tool\",\n", + " description=\"Useful for retrieving specific context from the data. Do NOT select if question asks for a summary of the data.\"\n", + " )\n", ")\n", - "agent = FunctionCallingAgentWorker.from_tools(\n", - " [vector_tool], llm=llm, verbose=True\n", - ").as_agent()" + "\n", + "agent = ReActAgent.from_tools([vector_tool], llm=llm, verbose=True)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 118, "id": "2b4f7eb1-d247-45fa-bb41-c02fc353a22a", "metadata": {}, "outputs": [], "source": [ - "# define a similar agent for the baseline\n", - "base_vector_tool = QueryEngineTool.from_defaults(\n", + "base_vector_tool = QueryEngineTool(\n", " query_engine=base_query_engine,\n", - " name=\"vector_tool\",\n", - " description=(\n", - " \"Useful for retrieving specific context from the data. Do NOT select if question asks for a summary of the data.\"\n", - " ),\n", + " metadata=ToolMetadata(\n", + " name=\"vector_tool\",\n", + " description=\"Useful for retrieving specific context from the data. Do NOT select if question asks for a summary of the data.\"\n", + " )\n", ")\n", - "base_agent = FunctionCallingAgentWorker.from_tools(\n", - " [base_vector_tool], llm=llm, verbose=True\n", - ").as_agent()" + "\n", + "base_agent = ReActAgent.from_tools([base_vector_tool], llm=llm, verbose=True)" ] }, { @@ -686,7 +1934,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 117, "id": "1cdce5d8-6bb3-4cd3-929d-1cec249d9052", "metadata": {}, "outputs": [ @@ -694,78 +1942,64 @@ "name": "stdout", "output_type": "stream", "text": [ - "Added user message to memory: How does the Conoco Phillips capex/EUR in the delaware basin compare against other competitors?\n", - "=== Calling Function ===\n", - "Calling function: vector_tool with args: {\"input\": \"Conoco Phillips capex/EUR in the Delaware Basin\"}\n", - "=== Function Output ===\n", - "The ConocoPhillips capex/EUR in the Delaware Basin is $10/BOE.\n", - "\n", - "I obtained this information from the image provided. The image clearly shows a bar chart under the section \"Delaware Basin Well Capex/EUR ($/BOE)\" where ConocoPhillips is listed with a capex/EUR of $10/BOE. This information is consistent with the parsed markdown text, which also lists ConocoPhillips' capex/EUR as $10/BOE in the Delaware Basin. There are no discrepancies between the image and the parsed markdown text in this case.\n", - "=== Calling Function ===\n", - "Calling function: vector_tool with args: {\"input\": \"competitors capex/EUR in the Delaware Basin\"}\n", - "=== Function Output ===\n", - "The competitors' Capex/EUR in the Delaware Basin can be found in the image on the slide titled \"Delaware: Vast Inventory with Proven Track Record of Performance.\" The relevant information is presented in a bar chart under the section \"Delaware Basin Well Capex/EUR ($/BOE)\".\n", - "\n", - "Here are the details:\n", - "\n", - "- ConocoPhillips: $10/BOE\n", - "- Competitor 1: $15/BOE\n", - "- Competitor 2: $20/BOE\n", - "- Competitor 3: $25/BOE\n", - "- Competitor 4: $30/BOE\n", - "- Competitor 5: $35/BOE\n", - "- Competitor 6: $40/BOE\n", - "- Competitor 7: $45/BOE\n", - "\n", - "This information was obtained directly from the image, which provides a clear visual representation of the Capex/EUR values for ConocoPhillips and its competitors in the Delaware Basin. The parsed markdown text also confirms these values, ensuring consistency between the image and the text.\n", - "=== LLM Response ===\n", - "The capital expenditure per estimated ultimate recovery (capex/EUR) for ConocoPhillips in the Delaware Basin is $10 per barrel of oil equivalent (BOE). When compared to its competitors, ConocoPhillips has a significantly lower capex/EUR. Here are the capex/EUR values for ConocoPhillips and its competitors:\n", - "\n", - "- **ConocoPhillips**: $10/BOE\n", - "- **Competitor 1**: $15/BOE\n", - "- **Competitor 2**: $20/BOE\n", - "- **Competitor 3**: $25/BOE\n", - "- **Competitor 4**: $30/BOE\n", - "- **Competitor 5**: $35/BOE\n", - "- **Competitor 6**: $40/BOE\n", - "- **Competitor 7**: $45/BOE\n", - "\n", - "This data indicates that ConocoPhillips has a more cost-efficient operation in the Delaware Basin compared to its competitors.\n", - "The capital expenditure per estimated ultimate recovery (capex/EUR) for ConocoPhillips in the Delaware Basin is $10 per barrel of oil equivalent (BOE). When compared to its competitors, ConocoPhillips has a significantly lower capex/EUR. Here are the capex/EUR values for ConocoPhillips and its competitors:\n", - "\n", - "- **ConocoPhillips**: $10/BOE\n", - "- **Competitor 1**: $15/BOE\n", - "- **Competitor 2**: $20/BOE\n", - "- **Competitor 3**: $25/BOE\n", - "- **Competitor 4**: $30/BOE\n", - "- **Competitor 5**: $35/BOE\n", - "- **Competitor 6**: $40/BOE\n", - "- **Competitor 7**: $45/BOE\n", + "> Running step 73d53dd0-1680-4102-9c4a-503bba8b0327. Step input: How does the Conoco Phillips capex/EUR in the delaware basin compare against other competitors?\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1;3;38;5;200mThought: The current language of the user is English. I need to use a tool to help me answer the question.\n", + "Action: vector_tool\n", + "Action Input: {'input': 'Conoco Phillips capex/EUR in the Delaware Basin compared to competitors'}\n", + "\u001b[0m" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1;3;34mObservation: ConocoPhillips' capex/EUR in the Delaware Basin is $8/BOE, which is lower compared to its competitors. The competitors' capex/EUR ranges from $10/BOE to $24/BOE.\n", "\n", - "This data indicates that ConocoPhillips has a more cost-efficient operation in the Delaware Basin compared to its competitors.\n" + "This information was obtained from the image on page 38, which shows a bar chart comparing the capex/EUR of ConocoPhillips and its competitors in the Delaware Basin. The parsed markdown text also confirms this data, listing ConocoPhillips at $8/BOE and competitors ranging from $10/BOE to $24/BOE. There are no discrepancies between the image and the parsed markdown text.\n", + "\u001b[0m> Running step f551acef-d4d6-494d-8356-e716563189d0. Step input: None\n" ] - } - ], - "source": [ - "# response = agent.query(\"Tell me about the different regions and subregions where Conoco Phillips has a production base.\")\n", - "response = agent.query(\n", - " \"How does the Conoco Phillips capex/EUR in the delaware basin compare against other competitors?\"\n", - ")\n", - "print(str(response))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d584c560-8f49-4c10-a4db-2e0d3b7085d2", - "metadata": {}, - "outputs": [ + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ + "\u001b[1;3;38;5;200mThought: I can answer without using any more tools. I'll use the user's language to answer.\n", + "Answer: ConocoPhillips' capex/EUR in the Delaware Basin is $8/BOE, which is lower compared to its competitors. The competitors' capex/EUR ranges from $10/BOE to $24/BOE.\n", + "\u001b[0mConocoPhillips' capex/EUR in the Delaware Basin is $8/BOE, which is lower compared to its competitors. The competitors' capex/EUR ranges from $10/BOE to $24/BOE.\n", + "\n", + "Source nodes found:\n", + "\n", + "Node 0:\n", "page_num: 38\n", - "image_path: data_images/d9137e19-3974-4b5d-998f-dac0cf29dd9d-page-37.jpg\n", + "image_path: data_images_rag\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-37.jpg\n", "parsed_text_markdown: # Delaware: Vast Inventory with Proven Track Record of Performance\n", "\n", "## Prolific Acreage Spanning Over ~659,000 Net Acres¹\n", @@ -784,32 +2018,33 @@ "| Months | 2019 | 2020 | 2021 | 2022 |\n", "|--------|------|------|------|------|\n", "| 1 | 0 | 0 | 0 | 0 |\n", - "| 2 | 5 | 6 | 7 | 8 |\n", - "| 3 | 10 | 12 | 14 | 16 |\n", - "| 4 | 15 | 18 | 21 | 24 |\n", - "| 5 | 20 | 24 | 28 | 32 |\n", - "| 6 | 25 | 30 | 35 | 40 |\n", - "| 7 | 30 | 36 | 42 | 48 |\n", - "| 8 | 35 | 42 | 49 | 56 |\n", - "| 9 | 40 | 48 | 56 | 64 |\n", - "| 10 | 45 | 54 | 63 | 72 |\n", - "| 11 | 50 | 60 | 70 | 80 |\n", - "| 12 | 55 | 66 | 77 | 88 |\n", - "\n", - "~30% Improved Performance from 2019 to 2022\n", + "| 2 | 2 | 2.5 | 3 | 3.5 |\n", + "| 3 | 4 | 5 | 6 | 7 |\n", + "| 4 | 6 | 7.5 | 9 | 10.5 |\n", + "| 5 | 8 | 10 | 12 | 14 |\n", + "| 6 | 10 | 12.5 | 15 | 17.5 |\n", + "| 7 | 12 | 15 | 18 | 21 |\n", + "| 8 | 14 | 17.5 | 21 | 24.5 |\n", + "| 9 | 16 | 20 | 24 | 28 |\n", + "| 10 | 18 | 22.5 | 27 | 31.5 |\n", + "| 11 | 20 | 25 | 30 | 35 |\n", + "| 12 | 22 | 27.5 | 33 | 38.5 |\n", + "\n", + "- ~30% Improved Performance from 2019 to 2022\n", "\n", "## Delaware Basin Well Capex/EUR⁴ ($/BOE)\n", "\n", "| Company | Capex/EUR |\n", "|------------------|-----------|\n", - "| ConocoPhillips | 10 |\n", - "| Competitor 1 | 15 |\n", - "| Competitor 2 | 20 |\n", - "| Competitor 3 | 25 |\n", - "| Competitor 4 | 30 |\n", - "| Competitor 5 | 35 |\n", - "| Competitor 6 | 40 |\n", - "| Competitor 7 | 45 |\n", + "| ConocoPhillips | 8 |\n", + "| Competitor 1 | 10 |\n", + "| Competitor 2 | 12 |\n", + "| Competitor 3 | 14 |\n", + "| Competitor 4 | 16 |\n", + "| Competitor 5 | 18 |\n", + "| Competitor 6 | 20 |\n", + "| Competitor 7 | 22 |\n", + "| Competitor 8 | 24 |\n", "\n", "---\n", "\n", @@ -817,8 +2052,7 @@ "² Source: Enverus and ConocoPhillips (March 2023). \n", "³ Source: Enverus (March 2023) based on wells online year. \n", "⁴ Source: Enverus (March 2023). Average single well capex/EUR. Top eight public operators based on wells online in years 2021-2022, greater than 50% oil weight. COP based on COP well design. Competitors include: CVX, DVN, EOG, MTDR, OXY, PR and XOM.\n", - "parsed_text: \n", - "Delaware: Vast Inventory with Proven Track Record of Performance\n", + "parsed_text: Delaware: Vast Inventory with Proven Track Record of Performance\n", " New Prolific Acreage Spanning Over 12-Month Cumulative Production? (BOE/FT)\n", " Mexico 659,000 Net Acres' 40\n", " Texas 3828\n", @@ -834,20 +2068,566 @@ " 65% 25\n", " Delaware Basin 20\n", " Midland Basin 15\n", - " Low HighCost of Supplyz 10 ConocoPhillips\n", + " Low High Cost of Supplyz 10 ConocoPhillips\n", " High Single-Digit Production Growth\n", - " \"Unconventional acres. 2Source: Enverus and ConocoPhillips (March 2023). 3SourceEnverus (March 2023) based on wells online year: \"Source; Enverus (March 2023). Average single well capex/EUR Top eight public operators based on\n", - "wells online in years 2021-2022, greater than 50% oil weight; COP based on COP well design: Competitors include; CVX DVN, EOG; MTDR, OXY, PR and XOM: ConocoPhillips\n" + " \"Unconventional acres. 2Source: Enverus and ConocoPhillips (March 2023). 3Source Enverus (March 2023) based on wells online year: \"Source; Enverus (March 2023). Average single well capex/EUR Top eight public operators based on\n", + "wells online in years 2021-2022, greater than 50% oil weight; COP based on COP well design: Competitors include; CVX DVN, EOG; MTDR, OXY, PR and XOM: ConocoPhillips\n", + "\n", + "Node 1:\n", + "page_num: 37\n", + "image_path: data_images_rag\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-36.jpg\n", + "parsed_text_markdown: # Deep, Durable and Diverse Portfolio with Significant Growth Runway\n", + "\n", + "## 2022 Lower 48 Unconventional Production¹ (MBOED)\n", + "\n", + "| Company | Production (MBOED) |\n", + "|------------------|--------------------|\n", + "| ConocoPhillips | 800 |\n", + "| Competitor 1 | 700 |\n", + "| Competitor 2 | 700 |\n", + "| Competitor 3 | 600 |\n", + "| Competitor 4 | 600 |\n", + "| Competitor 5 | 500 |\n", + "| Competitor 6 | 400 |\n", + "\n", + "## Net Remaining Well Inventory²\n", + "\n", + "| Company | Well Inventory |\n", + "|------------------|--------------------|\n", + "| ConocoPhillips | 13,000 |\n", + "| Competitor 1 | 10,000 |\n", + "| Competitor 2 | 10,000 |\n", + "| Competitor 3 | 8,000 |\n", + "| Competitor 4 | 8,000 |\n", + "| Competitor 5 | 6,000 |\n", + "| Competitor 6 | 4,000 |\n", + "\n", + "## Cost of Supply\n", + "\n", + "| Resource (BBOE) | WTI Cost of Supply ($/BBL) |\n", + "|------------------|----------------------------|\n", + "| 0 | $0 |\n", + "| 2 | $10 |\n", + "| 4 | $20 |\n", + "| 6 | $30 |\n", + "| 8 | $40 |\n", + "| 10 | $50 |\n", + "\n", + "- Delaware Basin\n", + "- Midland Basin\n", + "- Eagle Ford\n", + "- Bakken\n", + "- Other\n", + "\n", + "**~$32/BBL** \n", + "Average Cost of Supply\n", + "\n", + "---\n", + "\n", + "**Largest Lower 48 Unconventional Producer, Growing into the Next Decade**\n", + "\n", + "---\n", + "\n", + "¹Source: Wood Mackenzie Lower 48 Unconventional Plays 2022 Production. Competitors include CVX, DVN, EOG, FANG, MRO, OXY, PXD and XOM, greater than 50% liquids weight. \n", + "²Source: Wood Mackenzie (March 2023), Lower 48\n", + "\n", + "ConocoPhillips\n", + "parsed_text: Deep, Durable and Diverse Portfolio with Significant Growth Runway\n", + " 1,200 2022 Lower 48 Unconventional Production' (MBOED S50 ~S32/BBL\n", + " 000 ConocoPhillips Cost of SupplyAverage\n", + " 00 S40\n", + " 500 3\n", + " 400 1 S30\n", + " 200\n", + " 5\n", + " 15,000 ConocoPhillipsNet Remaining Well Inventory? 1 S20\n", + " 12,000 S10\n", + " 000\n", + " 0o0 SO\n", + " 3,000 10\n", + " Resource (BBOE)\n", + " Delaware Basin Midland Basin Eagle Ford Bakken Other\n", + " Largest Lower 48 Unconventional Producer; Growing into the Next Decade\n", + " onshore operated inventory that achieves 15% IRR at $SO/BBL WTI, Competitors include CVX, DVN, EOG, FANG, MRO, OXY, PXD, and XOM:\n", + " Source: Wood Mackenzie Lower 48 Unconventional Plays 2022 Production Competitors include CVX, DVN; EOG, FANG, MRO, OXY, PXD and XOM; greater than 50% liquids weight: ?Source: Wood Mackenzie (March 2023), Lower 48\n", + " ConocoPhillips\n", + "\n", + "Node 2:\n", + "page_num: 39\n", + "image_path: data_images_rag\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-38.jpg\n", + "parsed_text_markdown: # Midland: Acreage in the Heart of Liquids-Rich Basin\n", + "\n", + "## High-Margin Play Spanning Over ~251,000 Net Acres¹\n", + "\n", + "![Map of Texas and New Mexico highlighting the Delaware Basin and Midland Basin]\n", + "\n", + "### Total 10-Year Operated Permian Inventory\n", + "- 35% Midland Basin\n", + "- Delaware Basin\n", + "\n", + "### Cost of Supply²\n", + "- Low to High\n", + "\n", + "### 12-Month Cumulative Production³ (BOE/FT)\n", + "- Improved Performance from 2019 to 2022 (~6%)\n", + "\n", + "| Months | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |\n", + "|--------|---|---|---|---|---|---|---|---|---|----|----|----|\n", + "| 2019 | 0 | | | | | | | | | | | 25 |\n", + "| 2020-2022 | 0 | | | | | | | | | | | 30 |\n", + "\n", + "### Midland Basin Well Capex/EUR⁴ ($/BOE)\n", + "\n", + "| Company | Capex/EUR ($/BOE) |\n", + "|-----------------|-------------------|\n", + "| Competitor 1 | 15 |\n", + "| Competitor 2 | 20 |\n", + "| Competitor 3 | 25 |\n", + "| ConocoPhillips | 10 |\n", + "| Competitor 4 | 20 |\n", + "| Competitor 5 | 25 |\n", + "| Competitor 6 | 30 |\n", + "\n", + "### Low to Mid Single-Digit Production Growth\n", + "\n", + "---\n", + "\n", + "¹ Unconventional acres. \n", + "² Source: Enverus and ConocoPhillips (March 2023). \n", + "³ Source: Enverus (March 2023) based on wells online year. \n", + "⁴ Source: Enverus (March 2023). Average single well capex/EUR. Top eight public operators based on wells online in years 2021-2022, greater than 50% oil weight. Competitors include FANG, OVV, OXY, PXD, SM, VTLE and XOM.\n", + "parsed_text: Midland: Acreage in the Heart of Liquids-Rich Basin\n", + " New High-Margin Play Spanning Over 12-Month Cumulative Production? (BOE/FT)\n", + " Mexico ~251,000 Net Acres' 30\n", + " Texas 2020-2022\n", + " 20 2019\n", + " 10 ~6%\n", + " Improved Performancefrom 2019 to 2022\n", + " Total\n", + " Permian Inventory\n", + " 10-Year Operated\n", + " 2 3 10 11 12\n", + " 35% Months\n", + " Midland Basin Well Capex/EUR4 (S/BOE)\n", + " 25\n", + " Delaware Basin 20\n", + " Midland Basin 15 ConocoPhillips\n", + " Low High Cost of Supplyz 10\n", + "Low to Mid Single-Digit Production Growth\n", + " 4Source; Enverus (March 2023). Average single well capex/EUR Top eight public operators based on wells online in years 2021-2022, greater\n", + " IUnconventional acres; ?Source: Enverus and ConocoPhillips (March 2023). 3Source; Enverus (March 2023) based on wells online year: than 50% oil weight Competitors include FANG, OVV, OXY;, PXD, SM; VTLE and XOM; ConocoPhillips\n", + "\n", + "Node 3:\n", + "page_num: 42\n", + "image_path: data_images_rag\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-41.jpg\n", + "parsed_text_markdown: # Eagle Ford and Bakken Delivering Material Free Cash Flow\n", + "\n", + "## ~199,000 Net Acres¹ in Eagle Ford\n", + "## ~560,000 Net Acres¹ in Bakken\n", + "\n", + "![Eagle Ford and Bakken Map](image)\n", + "\n", + "### Consistent and Proven Track Record in Basin Sweet Spots\n", + "\n", + "#### Eagle Ford Well Capex/EUR³ ($/BOE)\n", + "\n", + "| Company | Capex/EUR ($/BOE) |\n", + "|-----------------|-------------------|\n", + "| ConocoPhillips | 10 |\n", + "| Competitor 1 | 15 |\n", + "| Competitor 2 | 20 |\n", + "| Competitor 3 | 25 |\n", + "| Competitor 4 | 30 |\n", + "\n", + "#### Bakken Well Capex/EUR⁴ ($/BOE)\n", + "\n", + "| Company | Capex/EUR ($/BOE) |\n", + "|-----------------|-------------------|\n", + "| ConocoPhillips | 5 |\n", + "| Competitor 1 | 10 |\n", + "| Competitor 2 | 15 |\n", + "| Competitor 3 | 20 |\n", + "| Competitor 4 | 25 |\n", + "\n", + "### Sustains Production Over the Decade\n", + "\n", + "#### Production (MBOED)\n", + "\n", + "| Year Range | Bakken | Eagle Ford |\n", + "|------------------|--------|------------|\n", + "| 2023E | 150 | 150 |\n", + "| 2024-2028 Average| 150 | 200 |\n", + "| 2029-2032 Average| 150 | 200 |\n", + "\n", + "### Delivers ~$20B FCF\n", + "### Over the Next 10 Years at $60/BBL WTI\n", + "\n", + "---\n", + "\n", + "¹Unconventional acres. \n", + "²Source: Enverus and ConocoPhillips (March 2023). \n", + "³Source: Enverus (March 2023); Average single well capex/EUR; Top eight public operators based on wells online in vintage years 2019-2022, greater than 50% oil weight; Competitors include: BP, CHK, CPE, DVN, EOG, MRO, XOM. \n", + "⁴Source: Enverus (March 2023); Average single well capex/EUR; Top eight operators based on wells online in vintage years 2019-2022, greater than 50% oil weight; Competitors include: CHRD, Continental, DVN, ERF, HES, MRO, XOM. \n", + "Free cash flow (FCF) is a non-GAAP measure defined in the Appendix.\n", + "parsed_text: Eagle Ford and Bakken Delivering Material Free Cash Flow\n", + " 199,000 Net Acres' in Eagle Ford Consistent and Proven Track Record Sustains Production\n", + " ~560,000 Net Acres' in Bakken in Basin Sweet Spots Over the Decade\n", + " 30 Eagle Ford Well Capex/EUR? IBOE) Production (MBOED)\n", + " 400\n", + " Texas\n", + " 20 300\n", + " ConocoPhillips\n", + " 10\n", + " 200\n", + " Eagle Ford\n", + " 100\n", + " Montana North Bakken Well Capex/EUR4 (S/BOE)\n", + " Dakota 15\n", + " 2023E 2024-2028 2029-2032\n", + " Average Average\n", + " 10 ConocoPhillips Bakken Eagle Ford\n", + " Bakken Delivers ~S20B FCF\n", + " Low High Cost of Supply? Over the Next 10 Years at $60/BBL WTI\n", + " 50% oil weight; Competitors include: BP; CHK, CPE; DVN; EOG, MGY and MRO: \"Source: Enverus (March 2023); Average single well capex/EUR; Top eight operators based on wells online in vintage years 2019-2022, greater than 50%\n", + " IUnconventional acres; ?Source Enverus andConocoPhillips (March 2023). Source; Enverus (March 2023); Average single well capex/EUR; Top eight public operators based on wells online in vintage years 2019-2022, greater than\n", + " oil weight; Competitors include CHRD Continental; DVN, ERF, HES MRO and XOM; ConocoPhillips\n", + " Free cash flow (FCF) is non-GAAP measure defined in the Appendix;\n", + "\n", + "Node 4:\n", + "page_num: 48\n", + "image_path: data_images_rag\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-47.jpg\n", + "parsed_text_markdown: # Committed to Top-Quartile Returns on Capital\n", + "\n", + "## Five-Year Average ROCE1\n", + "**Peer-Leading ROCE Performance**\n", + "\n", + "| Company | ROCE (%) |\n", + "|------------------|----------|\n", + "| ConocoPhillips | 14% |\n", + "| Independent Peers2 | 12% |\n", + "| Independent Peers2 | 10% |\n", + "| Integrated Peers2 | 8% |\n", + "| Integrated Peers2 | 6% |\n", + "| Integrated Peers2 | 4% |\n", + "| Integrated Peers2 | 2% |\n", + "\n", + "## Earnings ($B)\n", + "**Low Cost of Supply Investments Fuel Expanding Margins**\n", + "\n", + "| Year Range | Earnings ($B) |\n", + "|------------------|---------------|\n", + "| 2023E | 10 |\n", + "| 2024-2028 Average| 20 |\n", + "| 2029-2032 Average| 30 |\n", + "\n", + "**~10% CAGR 2024-2032 at $60/BBL WTI**\n", + "\n", + "## Return on Capital Employed (ROCE)\n", + "**Near-Term Delivery of S&P 500 Top-Quartile ROCE**\n", + "\n", + "| Year Range | ROCE (%) |\n", + "|------------------|----------|\n", + "| 2023E | 10 |\n", + "| 2024-2028 Average| 20 |\n", + "| 2029-2032 Average| 30 |\n", + "\n", + "**S&P 500 Top Quartile3**\n", + "\n", + "| Year Range | ROCE (%) |\n", + "|------------------|----------|\n", + "| 2023E | 10 |\n", + "| 2024-2028 Average| 20 |\n", + "| 2029-2032 Average| 30 |\n", + "\n", + "**$60/BBL WTI Mid-Cycle Planning Price**\n", + "\n", + "**$80/BBL WTI Upside Sensitivity**\n", + "\n", + "---\n", + "\n", + "1Source: Bloomberg Return on Capital 2018 through 2022. \n", + "2Integrated peers include CVX and XOM. Independent peers include APA, DVN, EOG, HES, OXY and PXD. \n", + "3Represents top quartile of five-year average ROCE (2018-2022). \n", + "Earnings refers to net income. Return on capital employed (ROCE) is a non-GAAP measure defined in the Appendix.\n", + "parsed_text: Committed to Top-Quartile Returns on Capital\n", + " Five-Year Average ROCE' 30 Low Cost of Supply Investments Fuel Expanding MarginsEarnings (SB)\n", + " Peer-Leading ROCE Performance\n", + " 2024-2032 at $60/BBL WTI10% CAGR\n", + " 20\n", + " 14% ConocoPhillips\n", + " 10\n", + " 12%\n", + " 2023E 2024-2028 2029-2032\n", + " 109 Average Average\n", + " Near-Term Delivery of S&P 500 Top-Quartile ROCE\n", + " Return on Capital Employed (ROCE)\n", + " 40%\n", + " 30%\n", + " 4% 20% s&P 500 Top Quartile?\n", + " 0%\n", + " 2%\n", + " 2023E 2024-2028 2029-2032\n", + " 0% Average Average\n", + " Independent Peers? Integrated Peers? S6O/BBL WTI Mid-Cycle Planning Price S8O/BBL WTI Upside Sensitivity\n", + " Source: Bloomberg Return on Capital 2018 through 2022. 2Integrated peers include CVX and XOM Independent peers include APA; DVN; EOG, HES; OXY and PXD. 3Represents top quartile of five-year average ROCE (2018-2022)\n", + " for constituents as of December 31, 2022\n", + " Earnings refers to net income Return on capital employed (ROCE) is non-GAAP measure defined in the Appendix ConocoPhillips\n", + "\n", + "Node 5:\n", + "page_num: 41\n", + "image_path: data_images_rag\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-40.jpg\n", + "parsed_text_markdown: # Permian Drives Free Cash Flow in Lower 48\n", + "\n", + "## ~7%\n", + "### 10-Year Production CAGR\n", + "\n", + "## ~50%\n", + "### Reinvestment Rate¹\n", + "\n", + "## <$35/BBL\n", + "### Program Cost of Supply\n", + "\n", + "### Production (MBOED)\n", + "#### Growing to Plateau in the 2nd Decade\n", + "\n", + "| Year | Production (MBOED) | FCF ($B) |\n", + "|--------------|--------------------|----------|\n", + "| 2023E | 600 | 4 |\n", + "| 2024-2028 | 900 | 8 |\n", + "| 2029-2032 | 1,200 | 12 |\n", + "\n", + "- $60/BBL WTI Mid-Cycle Planning Price\n", + "- $80/BBL WTI Upside Sensitivity\n", + "\n", + "### ~ $45B FCF Generated Over the Next 10 Years at $60/BBL WTI\n", + "\n", + "¹Over the next 10 years at $60/bbl. \n", + "Reinvestment rate and free cash flow (FCF) are non-GAAP measures defined in the Appendix.\n", + "\n", + "---\n", + "\n", + "### Top-Tier Permian Position, Growing into the Next Decade\n", + "parsed_text: Permian Drives Free Cash Flow in Lower 48\n", + " ~7% ~50% S35/BBL\n", + " 10-Year Production CAGR Reinvestment Ratel Program Cost of Supply\n", + " 1,500 Production (MBOED) $12 FCF (SB)\n", + " Growing to Plateau ~S45B FCF\n", + " in the 2nd Decade $10 Generated Over\n", + " 1,200 the Next 10 Yearsat $60/BBL WTI\n", + " S8\n", + " 900\n", + " $6\n", + " 600\n", + " 300 S2\n", + " $0\n", + " 2023E 2024-2028 2029-2032 2023E 2024-2028 2029-2032\n", + " Average Average Average Average\n", + " S60/BBL WTI Mid-Cycle Planning Price S8O/BBL WTI Upside Sensitivity\n", + " Top-Tier Permian Position, Growing into the Next Decade\n", + "\"Over the next 10 years at S60/bbl.\n", + " Reinvestment rate and free cash flow (FCF) are non-GAAP measures defined in the Appendix ConocoPhillips\n", + "\n", + "Node 6:\n", + "page_num: 21\n", + "image_path: data_images_rag\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-20.jpg\n", + "parsed_text_markdown: # Low Capital Intensity Production Growth\n", + "\n", + "## Material Low Cost of Supply Resource Base\n", + "### Leveraging Existing Infrastructure\n", + "\n", + "**~$30/BBL** \n", + "Average Cost of Supply\n", + "\n", + "| WTI Cost of Supply ($/BBL) | Resource (BBOE) |\n", + "|----------------------------|-----------------|\n", + "| $50 | |\n", + "| $40 | |\n", + "| $30 | |\n", + "| $20 | |\n", + "| $10 | |\n", + "| $0 | 0 |\n", + "| | 3 |\n", + "| | 6 |\n", + "| | 9 |\n", + "\n", + "**Legend:**\n", + "- **Blue:** LNG\n", + "- **Purple:** Surmont\n", + "- **Teal:** Montney\n", + "- **Gray:** Conventional International\n", + "- **Light Purple:** Alaska\n", + "\n", + "## Capital-Efficient Production Growth\n", + "### Underpins Growing Distribution Capacity\n", + "\n", + "**Production Mix¹**\n", + "- Oil ~60%\n", + "- NGL ~5%\n", + "- North American Gas ~5%\n", + "- International Gas ~30%\n", + "\n", + "| Production (MBOED) | 2023E | 2024-2028 Average | 2029-2032 Average |\n", + "|--------------------|-------|-------------------|-------------------|\n", + "| 1,200 | | | |\n", + "| 1,000 | | | |\n", + "| 800 | | | |\n", + "| 600 | | | |\n", + "| 400 | | | |\n", + "| 200 | | | |\n", + "| 0 | | | |\n", + "\n", + "**Legend:**\n", + "- **Blue:** LNG\n", + "- **Light Blue:** Surmont\n", + "- **Teal:** Montney\n", + "- **Gray:** Conventional International\n", + "- **Light Purple:** Alaska\n", + "\n", + "**4% CAGR at ~40% Reinvestment Rate** \n", + "Over the Next 10 Years at $60/BBL WTI\n", + "\n", + "---\n", + "\n", + "¹Average product mix from 2023-2032, oil includes bitumen. \n", + "Reinvestment rate is a non-GAAP measure defined in the Appendix.\n", + "parsed_text: Low Capital Intensity Production Growth\n", + " Material Low Cost of Supply Resource Base Capital-Efficient Production Growth\n", + " Underpins Growing Distribution Capacity\n", + " Leveraging Existing Infrastructure\n", + " S50 S30/BBL Production Mixl\n", + " Average Oil 60% NGL ~5% North American Gas 5% International Gas 30%\n", + " S40 Cost ofSupply 1,200\n", + " 3 S30 1 000\n", + " 1 S20 800\n", + " 600\n", + " 58 400\n", + " E 810 200\n", + " 2023E 2024-2028 2029-2032\n", + " So Average Average\n", + " LNG Surmont Montney Conventional International Alaska\n", + " Resource (BBOE)\n", + " LNG Surmont Montney Conventional International Alaska 4% CAGR at ~40% Reinvestment Rate\n", + " Over the Next 10 Years at $60/BBL WTI\n", + "'Average product mix from 2023-2032, oil includes bitumen;\n", + "Reinvestment rate non-GAAP measure defined in the Appendix ConocoPhillips\n", + "\n", + "Node 7:\n", + "page_num: 36\n", + "image_path: data_images_rag\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-35.jpg\n", + "parsed_text_markdown: # Premier Lower 48 Assets Underpin Our Returns-Focused Strategy\n", + "\n", + "## Industry Leader Focused on Maximizing Returns\n", + "\n", + "- Largest Lower 48 unconventional producer with deep, durable and diverse unconventional portfolio\n", + "- Disciplined development optimizing returns and recovery\n", + "\n", + "## Production and Free Cash Flow Growth into the Next Decade\n", + "\n", + "- Permian premising ~7% production growth, doubling free cash flow by end of decade\n", + "- Eagle Ford and Bakken delivering material free cash flow\n", + "\n", + "## Delivering Continuous Improvements\n", + "\n", + "- Accelerating technology across four core basins to enhance value\n", + "- Delivering on emissions reductions and sustainable development\n", + "\n", + "*Free cash flow (FCF) is a non-GAAP measure defined in the Appendix.*\n", + "parsed_text: Premier Lower 48 Assets Underpin Our Returns-Focused Strategy\n", + " Industry Leader Focused Production and Free Cash Flow Delivering Continuous\n", + " on Maximizing Returns Growth into the Next Decade Improvements\n", + " Largest Lower 48 unconventional\n", + " producer with deep, durable and 7% production growth; doublingPermian premising Accelerating technology\n", + " across four core basins\n", + " diverse unconventionalportfolio free cash flow by end of decade to enhance value\n", + " Disciplined development optimizing delivering material free cash flowEagle Ford and Bakken Delivering on emissions reductions\n", + " returns and recovery and sustainable development\n", + " Free cash flow (FCF) isnon-GAAP measure defined in the Appendix ConocoPhillips\n", + "\n", + "Node 8:\n", + "page_num: 55\n", + "image_path: data_images_rag\\a0af2de7-8064-4372-9094-0c91b54ed38f-page-54.jpg\n", + "parsed_text_markdown: # ConocoPhillips Remains the Must-Own E&P Company\n", + "\n", + "## What You Heard Today\n", + "\n", + "We are committed to delivering superior returns on and of capital through the cycles\n", + "\n", + "---\n", + "\n", + "We have a deep, durable and diverse portfolio\n", + "\n", + "---\n", + "\n", + "We are progressing our 2050 Net-Zero ambition and accelerating our 2030 GHG emissions intensity reduction target\n", + "\n", + "## Foundational Principles\n", + "\n", + "- Balance Sheet Strength\n", + "- Disciplined Investments\n", + "- Peer-Leading Distributions\n", + "- ESG Excellence\n", + "\n", + "**Deliver Superior Returns Through Cycles**\n", + "\n", + "## A Compelling Returns Focused 10-Year Plan\n", + "\n", + "- **Peer leading ROCE** improving through time\n", + "- **Top quartile** ordinary dividend growth\n", + "- **>90% market cap1** distributed\n", + "- **~$35/BBL** WTI FCF Breakeven2\n", + "- **~6% CFO CAGR, ~11% FCF CAGR**\n", + "- Unhedged for **price upside**\n", + "\n", + "---\n", + "\n", + "1 Market cap of ~$121B at March 31, 2023 close. 2 Average over the next ten years. CAGRs calculated from FY2024 at $60/BBL WTI. Cash from operations (CFO), free cash flow (FCF) and return on capital employed (ROCE) are non-GAAP measures defined in the appendix.\n", + "\n", + "ConocoPhillips\n", + "parsed_text: ConocoPhillips Remains the Must-Own E&P Company\n", + " What You Foundational A Compelling Returns\n", + " Heard Today Principles Focused 10-Year Plan\n", + " We are committed to 9 improving through timePeer leading ROCE\n", + " delivering superior returns Balance Sheet\n", + " on and of capital Strength\n", + " through the cycles Top quartile ordinary dividend growth\n", + " We have adeep, durable RETURNS S) >90% market cap' distributed\n", + " and diverse portfolio InvestmentsDisciplined Peer-Leading\n", + " Distributions\n", + " S35/BBL WTI FCF Breakeven?\n", + " ESG\n", + " We are progressing our Excellence\n", + " 2050 Net-Zero ambition and 6% CFO CAGR, ~11% FCF CAGR\n", + " accelerating our 2030 GHG emissionsintensity reduction target Deliver Superior Returns\n", + " Unhedged for price upside\n", + " Through Cycles\n", + " \"Market cap of ~S1Z1B at March 31 2023 close. ~Average over the next ten years:\n", + " CAGRs calculated from FY2024 at S60/BBL WTI Cash from operations (CFO); free cash flow (FCF) and return on capital employed (ROCE) are non-GAAP measures defined in the appendix ConocoPhillips\n", + "\n", + "Full response:\n", + "ConocoPhillips' capex/EUR in the Delaware Basin is $8/BOE, which is lower compared to its competitors. The competitors' capex/EUR ranges from $10/BOE to $24/BOE.\n" ] } ], "source": [ - "print(response.source_nodes[0].get_content(metadata_mode=\"all\"))" + "response = agent.chat(\"How does the Conoco Phillips capex/EUR in the delaware basin compare against other competitors?\")\n", + "print(str(response))\n", + "\n", + "if hasattr(response, 'source_nodes') and response.source_nodes:\n", + " print(\"\\nSource nodes found:\")\n", + " for i, node in enumerate(response.source_nodes):\n", + " print(f\"\\nNode {i}:\")\n", + " print(node.get_content(metadata_mode=\"all\"))\n", + "else:\n", + " print(\"\\nNo source nodes found in the response.\")\n", + "\n", + "# Also, let's print the full response to see what we got\n", + "print(\"\\nFull response:\")\n", + "print(response)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 119, "id": "d21d694b-6618-4d04-a6f6-8b0c2625f539", "metadata": {}, "outputs": [ @@ -855,48 +2635,113 @@ "name": "stdout", "output_type": "stream", "text": [ - "Added user message to memory: How does the Conoco Phillips capex/EUR in the delaware basin compare against other competitors?\n", - "=== Calling Function ===\n", - "Calling function: vector_tool with args: {\"input\": \"Conoco Phillips capex/EUR in the Delaware Basin\"}\n", - "=== Function Output ===\n", - "ConocoPhillips' capex/EUR in the Delaware Basin is approximately $20/BOE.\n", - "=== Calling Function ===\n", - "Calling function: vector_tool with args: {\"input\": \"competitors capex/EUR in the Delaware Basin\"}\n", - "=== Function Output ===\n", - "The average single well capex/EUR for competitors in the Delaware Basin is between $10 and $25 per BOE.\n", - "=== LLM Response ===\n", - "ConocoPhillips' capex/EUR in the Delaware Basin is approximately $20 per BOE. In comparison, the average capex/EUR for competitors in the Delaware Basin ranges between $10 and $25 per BOE. This places ConocoPhillips' capex/EUR towards the higher end of the competitive range.\n", - "ConocoPhillips' capex/EUR in the Delaware Basin is approximately $20 per BOE. In comparison, the average capex/EUR for competitors in the Delaware Basin ranges between $10 and $25 per BOE. This places ConocoPhillips' capex/EUR towards the higher end of the competitive range.\n" + "> Running step d6f1ee48-be2d-413a-b7ca-2ac39771dff9. Step input: How does the Conoco Phillips capex/EUR in the delaware basin compare against other competitors?\n" ] - } - ], - "source": [ - "# base_response = base_agent.query(\"Tell me about the different regions and subregions where Conoco Phillips has a production base.\")\n", - "base_response = base_agent.query(\n", - " \"How does the Conoco Phillips capex/EUR in the delaware basin compare against other competitors?\"\n", - ")\n", - "print(str(base_response))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d3afccae-ad8d-4c5d-9d93-810dba413a5d", - "metadata": {}, - "outputs": [ + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1;3;38;5;200mThought: The current language of the user is: English. I need to use a tool to help me answer the question.\n", + "Action: vector_tool\n", + "Action Input: {'input': 'Conoco Phillips capex/EUR in the Delaware Basin compared to competitors'}\n", + "\u001b[0m" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n" + ] + }, { "name": "stdout", "output_type": "stream", "text": [ + "\u001b[1;3;34mObservation: ConocoPhillips' capex/EUR in the Delaware Basin is lower compared to its competitors.\n", + "\u001b[0m> Running step acfde3aa-a6f9-4aa7-8613-9389f8e86646. Step input: None\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[1;3;38;5;200mThought: I have the information needed to answer the question.\n", + "Answer: ConocoPhillips' capex/EUR in the Delaware Basin is lower compared to its competitors.\n", + "\u001b[0mConocoPhillips' capex/EUR in the Delaware Basin is lower compared to its competitors.\n", + "\n", + "Source nodes found:\n", + "\n", + "Node 0:\n", + "Delaware: Vast Inventory with Proven Track Record of Performance\n", + " New Prolific Acreage Spanning Over 12-Month Cumulative Production? (BOE/FT)\n", + " Mexico 659,000 Net Acres' 40\n", + " Texas 3828\n", + " 30 2019\n", + " 20 30%\n", + " 10 Improved Performancefrom 2019 to 2022\n", + " Total\n", + " Permian Inventory\n", + " 10-Year Operated\n", + " 2 10 11 12\n", + " Months\n", + " Delaware Basin Well Capex/EUR4 (S/BOE)\n", + " 65% 25\n", + " Delaware Basin 20\n", + " Midland Basin 15\n", + " Low High Cost of Supplyz 10 ConocoPhillips\n", + " High Single-Digit Production Growth\n", + " \"Unconventional acres. 2Source: Enverus and ConocoPhillips (March 2023). 3Source Enverus (March 2023) based on wells online year: \"Source; Enverus (March 2023). Average single well capex/EUR Top eight public operators based on\n", + "wells online in years 2021-2022, greater than 50% oil weight; COP based on COP well design: Competitors include; CVX DVN, EOG; MTDR, OXY, PR and XOM: ConocoPhillips\n", + "\n", + "Node 1:\n", + " Midland: Acreage in the Heart of Liquids-Rich Basin\n", + " New High-Margin Play Spanning Over 12-Month Cumulative Production? (BOE/FT)\n", + " Mexico ~251,000 Net Acres' 30\n", + " Texas 2020-2022\n", + " 20 2019\n", + " 10 ~6%\n", + " Improved Performancefrom 2019 to 2022\n", + " Total\n", + " Permian Inventory\n", + " 10-Year Operated\n", + " 2 3 10 11 12\n", + " 35% Months\n", + " Midland Basin Well Capex/EUR4 (S/BOE)\n", + " 25\n", + " Delaware Basin 20\n", + " Midland Basin 15 ConocoPhillips\n", + " Low High Cost of Supplyz 10\n", + "Low to Mid Single-Digit Production Growth\n", + " 4Source; Enverus (March 2023). Average single well capex/EUR Top eight public operators based on wells online in years 2021-2022, greater\n", + " IUnconventional acres; ?Source: Enverus and ConocoPhillips (March 2023). 3Source; Enverus (March 2023) based on wells online year: than 50% oil weight Competitors include FANG, OVV, OXY;, PXD, SM; VTLE and XOM; ConocoPhillips\n", + "\n", + "Node 2:\n", "Deep, Durable and Diverse Portfolio with Significant Growth Runway\n", - " 1,2002022 Lower 48 Unconventional Production' (MBOED S50 ~S32/BBL\n", + " 1,200 2022 Lower 48 Unconventional Production' (MBOED S50 ~S32/BBL\n", " 000 ConocoPhillips Cost of SupplyAverage\n", " 00 S40\n", " 500 3\n", " 400 1 S30\n", " 200\n", " 5\n", - " 15,000ConocoPhillipsNet Remaining Well Inventory? 1 S20\n", + " 15,000 ConocoPhillipsNet Remaining Well Inventory? 1 S20\n", " 12,000 S10\n", " 000\n", " 0o0 SO\n", @@ -904,22 +2749,183 @@ " Resource (BBOE)\n", " Delaware Basin Midland Basin Eagle Ford Bakken Other\n", " Largest Lower 48 Unconventional Producer; Growing into the Next Decade\n", - " onshore operated inventory that achieves 15% IRR at $SO/BBL WTI, Competitors include CVX, DVN, EOG, FANG, MRO, OXY, PXD,and XOM:\n", - " Source: Wood Mackenzie Lower 48 Unconventional Plays 2022 ProductionCompetitors include CVX, DVN; EOG, FANG, MRO, OXY, PXD and XOM; greaterthan50% liquids weight: ?Source: Wood Mackenzie (March 2023), Lower 48\n", - " ConocoPhillips\n" + " onshore operated inventory that achieves 15% IRR at $SO/BBL WTI, Competitors include CVX, DVN, EOG, FANG, MRO, OXY, PXD, and XOM:\n", + " Source: Wood Mackenzie Lower 48 Unconventional Plays 2022 Production Competitors include CVX, DVN; EOG, FANG, MRO, OXY, PXD and XOM; greater than 50% liquids weight: ?Source: Wood Mackenzie (March 2023), Lower 48\n", + " ConocoPhillips\n", + "\n", + "Node 3:\n", + "Eagle Ford and Bakken Delivering Material Free Cash Flow\n", + " 199,000 Net Acres' in Eagle Ford Consistent and Proven Track Record Sustains Production\n", + " ~560,000 Net Acres' in Bakken in Basin Sweet Spots Over the Decade\n", + " 30 Eagle Ford Well Capex/EUR? IBOE) Production (MBOED)\n", + " 400\n", + " Texas\n", + " 20 300\n", + " ConocoPhillips\n", + " 10\n", + " 200\n", + " Eagle Ford\n", + " 100\n", + " Montana North Bakken Well Capex/EUR4 (S/BOE)\n", + " Dakota 15\n", + " 2023E 2024-2028 2029-2032\n", + " Average Average\n", + " 10 ConocoPhillips Bakken Eagle Ford\n", + " Bakken Delivers ~S20B FCF\n", + " Low High Cost of Supply? Over the Next 10 Years at $60/BBL WTI\n", + " 50% oil weight; Competitors include: BP; CHK, CPE; DVN; EOG, MGY and MRO: \"Source: Enverus (March 2023); Average single well capex/EUR; Top eight operators based on wells online in vintage years 2019-2022, greater than 50%\n", + " IUnconventional acres; ?Source Enverus andConocoPhillips (March 2023). Source; Enverus (March 2023); Average single well capex/EUR; Top eight public operators based on wells online in vintage years 2019-2022, greater than\n", + " oil weight; Competitors include CHRD Continental; DVN, ERF, HES MRO and XOM; ConocoPhillips\n", + " Free cash flow (FCF) is non-GAAP measure defined in the Appendix;\n", + "\n", + "Node 4:\n", + "Committed to Top-Quartile Returns on Capital\n", + " Five-Year Average ROCE' 30 Low Cost of Supply Investments Fuel Expanding MarginsEarnings (SB)\n", + " Peer-Leading ROCE Performance\n", + " 2024-2032 at $60/BBL WTI10% CAGR\n", + " 20\n", + " 14% ConocoPhillips\n", + " 10\n", + " 12%\n", + " 2023E 2024-2028 2029-2032\n", + " 109 Average Average\n", + " Near-Term Delivery of S&P 500 Top-Quartile ROCE\n", + " Return on Capital Employed (ROCE)\n", + " 40%\n", + " 30%\n", + " 4% 20% s&P 500 Top Quartile?\n", + " 0%\n", + " 2%\n", + " 2023E 2024-2028 2029-2032\n", + " 0% Average Average\n", + " Independent Peers? Integrated Peers? S6O/BBL WTI Mid-Cycle Planning Price S8O/BBL WTI Upside Sensitivity\n", + " Source: Bloomberg Return on Capital 2018 through 2022. 2Integrated peers include CVX and XOM Independent peers include APA; DVN; EOG, HES; OXY and PXD. 3Represents top quartile of five-year average ROCE (2018-2022)\n", + " for constituents as of December 31, 2022\n", + " Earnings refers to net income Return on capital employed (ROCE) is non-GAAP measure defined in the Appendix ConocoPhillips\n", + "\n", + "Node 5:\n", + "ConocoPhillips Remains the Must-Own E&P Company\n", + " What You Foundational A Compelling Returns\n", + " Heard Today Principles Focused 10-Year Plan\n", + " We are committed to 9 improving through timePeer leading ROCE\n", + " delivering superior returns Balance Sheet\n", + " on and of capital Strength\n", + " through the cycles Top quartile ordinary dividend growth\n", + " We have adeep, durable RETURNS S) >90% market cap' distributed\n", + " and diverse portfolio InvestmentsDisciplined Peer-Leading\n", + " Distributions\n", + " S35/BBL WTI FCF Breakeven?\n", + " ESG\n", + " We are progressing our Excellence\n", + " 2050 Net-Zero ambition and 6% CFO CAGR, ~11% FCF CAGR\n", + " accelerating our 2030 GHG emissionsintensity reduction target Deliver Superior Returns\n", + " Unhedged for price upside\n", + " Through Cycles\n", + " \"Market cap of ~S1Z1B at March 31 2023 close. ~Average over the next ten years:\n", + " CAGRs calculated from FY2024 at S60/BBL WTI Cash from operations (CFO); free cash flow (FCF) and return on capital employed (ROCE) are non-GAAP measures defined in the appendix ConocoPhillips\n", + "\n", + "Node 6:\n", + "Permian Drives Free Cash Flow in Lower 48\n", + " ~7% ~50% S35/BBL\n", + " 10-Year Production CAGR Reinvestment Ratel Program Cost of Supply\n", + " 1,500 Production (MBOED) $12 FCF (SB)\n", + " Growing to Plateau ~S45B FCF\n", + " in the 2nd Decade $10 Generated Over\n", + " 1,200 the Next 10 Yearsat $60/BBL WTI\n", + " S8\n", + " 900\n", + " $6\n", + " 600\n", + " 300 S2\n", + " $0\n", + " 2023E 2024-2028 2029-2032 2023E 2024-2028 2029-2032\n", + " Average Average Average Average\n", + " S60/BBL WTI Mid-Cycle Planning Price S8O/BBL WTI Upside Sensitivity\n", + " Top-Tier Permian Position, Growing into the Next Decade\n", + "\"Over the next 10 years at S60/bbl.\n", + " Reinvestment rate and free cash flow (FCF) are non-GAAP measures defined in the Appendix ConocoPhillips\n", + "\n", + "Node 7:\n", + "ConocoPhillips Remains the Must-Own E&P Company\n", + " The Macro What You'Il Hear Today\n", + " Oil Price (S/BBL WTI)\n", + " 120 We are committed to\n", + " delivering superior returns\n", + " 100 on and of capital\n", + " through the cycles\n", + " 80\n", + " 60 We have a deep, durable\n", + " S6O/BBL WTI and diverse portfolio\n", + " Mid-Cycle\n", + " 40 Planning Price\n", + " We are progressing our\n", + " 20 2050 Net-Zero ambition and\n", + " accelerating our 2030 GHG emissionsintensity reduction target\n", + " 2019 2021 2023 2024+\n", + " ConocoPhillips\n", + "\n", + "Node 8:\n", + "Low Capital Intensity Production Growth\n", + " Material Low Cost of Supply Resource Base Capital-Efficient Production Growth\n", + " Underpins Growing Distribution Capacity\n", + " Leveraging Existing Infrastructure\n", + " S50 S30/BBL Production Mixl\n", + " Average Oil 60% NGL ~5% North American Gas 5% International Gas 30%\n", + " S40 Cost ofSupply 1,200\n", + " 3 S30 1 000\n", + " 1 S20 800\n", + " 600\n", + " 58 400\n", + " E 810 200\n", + " 2023E 2024-2028 2029-2032\n", + " So Average Average\n", + " LNG Surmont Montney Conventional International Alaska\n", + " Resource (BBOE)\n", + " LNG Surmont Montney Conventional International Alaska 4% CAGR at ~40% Reinvestment Rate\n", + " Over the Next 10 Years at $60/BBL WTI\n", + "'Average product mix from 2023-2032, oil includes bitumen;\n", + "Reinvestment rate non-GAAP measure defined in the Appendix ConocoPhillips\n", + "\n", + "Full response:\n", + "ConocoPhillips' capex/EUR in the Delaware Basin is lower compared to its competitors.\n" ] } ], "source": [ - "print(base_response.source_nodes[0].get_content(metadata_mode=\"llm\"))" + "# Query the base agent\n", + "base_response = base_agent.chat(\n", + " \"How does the Conoco Phillips capex/EUR in the delaware basin compare against other competitors?\"\n", + ")\n", + "print(str(base_response))\n", + "\n", + "# Print source nodes if available\n", + "if hasattr(base_response, 'source_nodes') and base_response.source_nodes:\n", + " print(\"\\nSource nodes found:\")\n", + " for i, node in enumerate(base_response.source_nodes):\n", + " print(f\"\\nNode {i}:\")\n", + " print(node.get_content(metadata_mode=\"llm\"))\n", + "else:\n", + " print(\"\\nNo source nodes found in the response.\")\n", + "\n", + "# Print the full response\n", + "print(\"\\nFull response:\")\n", + "print(base_response)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5fea2b52", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "llama_index_v3", + "display_name": "medium", "language": "python", - "name": "llama_index_v3" + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -930,7 +2936,8 @@ "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3" + "pygments_lexer": "ipython3", + "version": "3.9.19" } }, "nbformat": 4,