diff --git "a/sandbox/20240310 - CQA - Semantic Routing 1.ipynb" "b/sandbox/20240310 - CQA - Semantic Routing 1.ipynb" --- "a/sandbox/20240310 - CQA - Semantic Routing 1.ipynb" +++ "b/sandbox/20240310 - CQA - Semantic Routing 1.ipynb" @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "07f255d7", "metadata": { "tags": [] @@ -14,7 +14,7 @@ "True" ] }, - "execution_count": 2, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" } @@ -35,9 +35,17 @@ "load_dotenv()" ] }, + { + "cell_type": "markdown", + "id": "4c9258cc-3800-4485-bdd8-889b299b9133", + "metadata": {}, + "source": [ + "# Import objects" + ] + }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "6af1a96e", "metadata": { "tags": [] @@ -48,29 +56,128 @@ "llm = get_llm(provider=\"openai\")" ] }, + { + "cell_type": "code", + "execution_count": 53, + "id": "a9128bfc-4b24-4b25-b7a7-68423b1124b1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Auto-updated model_name to rerank-english-v3.0 for API provider cohere\n", + "Loading APIRanker model rerank-english-v3.0\n" + ] + } + ], + "source": [ + "from climateqa.engine.reranker import get_reranker\n", + "\n", + "reranker = get_reranker(\"large\")\n", + "# from rerankers import Reranker\n", + "# # Specific flashrank model.\n", + "# # reranker = Reranker('ms-marco-TinyBERT-L-2-v2', model_type='flashrank')\n", + "# # reranker = Reranker('ms-marco-MiniLM-L-12-v2', model_type='flashrank')\n", + "# # reranker = Reranker('cross-encoder/ms-marco-MiniLM-L-4-v2', model_type='cross-encoder')\n", + "# # reranker = Reranker(\"mixedbread-ai/mxbai-rerank-xsmall-v1\", model_type='cross-encoder')\n", + "# # reranker = Reranker(\"mixedbread-ai/mxbai-rerank-xsmall-v1\", model_type='cross-encoder')\n", + "# reranker = Reranker(\"cohere\", lang='en', api_key = \"XXX\")" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "942d2705-22dd-46cf-8c31-6daa127e4743", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sentence_transformers.SentenceTransformer:Load pretrained SentenceTransformer: BAAI/bge-base-en-v1.5\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loading embeddings model: BAAI/bge-base-en-v1.5\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:sentence_transformers.SentenceTransformer:Use pytorch device_name: cuda\n" + ] + } + ], + "source": [ + "from climateqa.engine.vectorstore import get_pinecone_vectorstore\n", + "from climateqa.engine.embeddings import get_embeddings_function\n", + "from climateqa.engine.retriever import ClimateQARetriever\n", + "\n", + "embeddings_function = get_embeddings_function()\n", + "vectorstore = get_pinecone_vectorstore(embeddings_function)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "882811c8-5890-4048-8630-d052c5179d7d", + "metadata": {}, + "outputs": [], + "source": [ + "import torch" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "51aed81d-860b-409a-bae0-f0e1eeb0f120", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "torch.cuda.is_available()" + ] + }, { "cell_type": "markdown", "id": "16eb91cb-3bfb-4c0c-b29e-753c954c2399", - "metadata": {}, + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, "source": [ "# Semantic Routing" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "1e769371-1f8c-4f34-89c5-c0f9914d47a0", "metadata": { "tags": [] }, "outputs": [], "source": [ - "from climateqa.engine.chains.intent_routing import make_intent_router_chain,SAMPLE_QUESTIONS" + "from climateqa.engine.chains.intent_routing import make_intent_router_chain" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "480ad611-33c7-49ea-b02c-94d6ce1f1d1a", "metadata": { "tags": [] @@ -82,34 +189,24 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "82cf49d9-d48e-4d5c-8666-bcc95f637371", "metadata": { "tags": [] }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Est-ce que l'IA a un impact sur l'environnement ?\n", - "{'language': 'French', 'intent': 'ai_impact'}\n", - "----------------------------------------------------------------------------------------------------\n" - ] - } - ], + "outputs": [], "source": [ - "for question in SAMPLE_QUESTIONS:\n", - " output = router_chain.invoke({\"input\":question})\n", - " print(question)\n", - " print(output)\n", - " print(\"-\"*100)\n", - " break" + "# for question in SAMPLE_QUESTIONS:\n", + "# output = router_chain.invoke({\"input\":question})\n", + "# print(question)\n", + "# print(output)\n", + "# print(\"-\"*100)\n", + "# break" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "d8ef7e0f-ac5f-4323-b02e-753ce2b4afda", "metadata": { "tags": [] @@ -121,7 +218,7 @@ "{'intent': 'search'}" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -133,7 +230,9 @@ { "cell_type": "markdown", "id": "6f50f767-64e9-4f5d-82b4-496530532ad9", - "metadata": {}, + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, "source": [ "# Query Rewriter" ] @@ -147,7 +246,7 @@ }, "outputs": [], "source": [ - "from climateqa.engine.chains.query_rewriting import make_query_rewriter_chain,make_query_decomposition_chain\n", + "from climateqa.engine.chains.query_transformation import make_query_rewriter_chain,make_query_decomposition_chain\n", "from climateqa.engine.chains.translation import make_translation_chain" ] }, @@ -209,23 +308,12 @@ }, { "cell_type": "code", - "execution_count": 112, + "execution_count": 11, "id": "4151d2e4-0bfe-4642-a185-2dcb639e6f78", "metadata": { "tags": [] }, "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", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n" - ] - }, { "data": { "text/plain": [ @@ -241,7 +329,7 @@ " 'sources': ['OpenAlex']}]}" ] }, - "execution_count": 112, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -430,64 +518,201 @@ }, { "cell_type": "markdown", - "id": "8d89f36b-fc04-4d0c-b9c4-990b489b7fc3", + "id": "8664f5f1-0db8-4c3d-8229-e1719224cde5", "metadata": {}, "source": [ - "## Test simple route chains" + "## Graph" ] }, { "cell_type": "code", - "execution_count": 12, - "id": "1d884bb7-7230-47cb-a778-36cffed1fcde", - "metadata": { - "tags": [] - }, + "execution_count": 55, + "id": "2376e1d7-5893-4022-a0af-155bb8c1950f", + "metadata": {}, "outputs": [], "source": [ - "from climateqa.engine.chains.route_chitchat import make_chitchat_chain\n", - "from climateqa.engine.chains.route_ai_impact import make_ai_impact_chain\n", - "\n", - "chitchat_chain = make_chitchat_chain(llm)\n", - "ai_impact_chain = make_ai_impact_chain(llm)" + "from climateqa.engine.graph import make_graph_agent,display_graph\n", + "agent = make_graph_agent(llm,vectorstore,reranker)" ] }, { "cell_type": "code", - "execution_count": 15, - "id": "586a4ead-6064-42e8-9f3c-8973b8d754c6", - "metadata": { - "tags": [] - }, + "execution_count": 56, + "id": "a1f78d00-e4a0-40f3-a1e9-61dea83fa6cb", + "metadata": {}, + "outputs": [ + { + "data": { + "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAJ+AuEDASIAAhEBAxEB/8QAHQABAAIDAQEBAQAAAAAAAAAAAAYHBAUIAwkBAv/EAGEQAAEDBAADAgoGBQcFDAYJBQEAAgMEBQYRBxIhEzEIFBYiMkFRVZTRFRdhcZPhI1RWgZIJJDNCUpGhGDU4U7E2Q0Vic3SDorKztLUlcnV3gsEmNDc5RHaEwtRjlZaj0v/EABsBAQADAQEBAQAAAAAAAAAAAAABAgMFBAYH/8QAOBEBAAIBAQYEAwYFBAMBAAAAAAECAxESEyExUVIEFEGRobHwFWFxgcHRBSIyYuEzNELxI2Oycv/aAAwDAQACEQMRAD8A+qaIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAv5e9sTHPe4MY0bLnHQA9pX9LS5r/uNv3/MKj/u3K9K7Vor1THGXt5VWX3xQfEs+aeVVl98UHxLPmqwtNgtbrVRE22kJMLCSYG9fNH2LL8nrX7to/wGfJci38U8PW012J4ffDsfZ393wWJ5VWX3xQfEs+aeVVl98UHxLPmq78nrX7to/wABnyTyetfu2j/AZ8lX7V8P2W94Ps7+74LE8qrL74oPiWfNPKqy++KD4lnzVd+T1r920f4DPknk9a/dtH+Az5J9q+H7Le8H2d/d8FieVVl98UHxLPmnlVZffFB8Sz5qu/J61+7aP8BnyTyetfu2j/AZ8k+1fD9lveD7O/u+CxPKqy++KD4lnzTyqsvvig+JZ81Xfk9a/dtH+Az5J5PWv3bR/gM+Sfavh+y3vB9nf3fBaNHXU1wi7WlqIqmLfLzwvD279mwvdQPhJBHTUeRRQxsijbd38rGNDQP0MPcAp4uxOnCY5TET7xq5WSuxaa9BERVZiIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiIC0ua/7jb9/zCo/7ty3S0ua/wC42/f8wqP+7ctcX+pX8YTHOEFs/wDmmi/5Bn/ZCzFh2f8AzTRf8gz/ALIWYvz7L/Xb8ZfYxyFCKTjRh9wyOvsVJdX1VzoTMyeOCinkYHxNLpY2yBhY97QDtjXF2+mtqbrn/FfpWw8b/EsSs+T2/G7hcK6fIaO80BZbWP5XFtXSTn1yyhp5GuIIeSWsIVsdItFtfRne01mNEo4aeETYM64e1eU10dVZYaLndVsmoqns429s+OPkkdE0TEhg2I9kE6IBW9tvHHCbti18yKmvW7XZGl9ydJSTxzUo5ebb4XMEg2Oo83r6tqnMcuGZ4rwJrsQtVhyK25NZq2RtVVQW4u7SkfcHOlkopHAsmk7CQuaBs7B6bAUaueKXSptHGxtqx/M6ikvuLUrbdLfoameqrZYjO17R2nM9rtyN5Y3BrtbIbyr17jHMz6Rrw4+msfvwefe3iI9eH7rgzHwncYx6HH57eyuu9LdLtHbnVMNsrDG2Msc90sThCRP0DQ0MJ5uYkE8pVt26vhulvpq2n7TsKmJs0faxOifyuAI5mOAc06PUOAI7iAVVHGq019NjGAXC3WesuUOO3+huFVRW2Ayztp2RSRuLIh1cW9o08o66B9itKy3Vt7tVLXsp6qkZUMEggrYHQzMB9T2O6tP2FeW8V2ImsN6TbamLSzURFg2Z/Cr+gyT/ANrv/wC5hU5UG4Vf0GSf+13/APcwqcr9B/41/wDzX/5h8nn/ANW34iIihgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgLS5r/uNv3/MKj/u3LdLHuNDFdLfU0c4JgqInQyBp0eVwIOj9xV6TFbxafRMcJVfQU8VXYaaCeNs0MtM1j43jbXNLACCPWCFEWcAeGkb2vZgOONe07Dm2yEEH2+irOi4S2+GNkbLtemsYA1oFb3AfuX9fVVQ++L38b+S4c/wu21M1yxGv3S7s+Owzzqq7/J+4ZfsBjf8A/a4f/wDlT1jGxsa1oDWtGgB3ALafVVQ++L38b+SfVVQ++L38b+SpP8Ktb+rNE/lJHjsNeVWtRbL6qqH3xe/jfyVReCdS1vF/gJjeWZFe7pJd659W2Z1PUdmwiOqlibpoHTzWNVfsf/2x7St9oYukrLUPvvB3Bcous9zvGH2S6XGfl7Wrq6CKSWTTQ0czi0k6AA+4BWF9VVD74vfxv5J9VVD74vfxv5K0fwm1eMZY9pVnx2GecSq4+D/wzOt4BjZ13btcPT/qqW49jdpxO1x22y22ltNvjLnMpaKFsUbSTskNaABsklST6qqH3xe/jfyT6qqH3xe/jfyUz/CrW4Tm+EkeNwxxir+OFX9Bkn/td/8A3MKnK02MYtSYnRz09JJUTCec1EklTJzvc8ta3e/uaFuV3Z0jSI9IiPaIhxclovebR6iIiqzEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQFzv8Ayfv+ibhf/KXD/wAfULohc7/yfv8Aom4X/wApcP8Ax9Qg6IREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQFzv8Ayfv+ibhf/KXD/wAfULohc7/yfv8Aom4X/wApcP8Ax9Qg6IREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERARabI8roMYij8ZdJNUzb7Cjp28802tb5W+wbG3HTRsbI2FE5s9ySpcTS2e30cezoVdW6STXqJDGaH3Bx+9axjtMazwj750bUw5MnGsLFRVr5Z5d+rWT+KZPLPLv1ayfxTK26juj3a+UzdFlIq18s8u/VrJ/FMnlnl36tZP4pk3Ud0e55TN0WUirXyzy79Wsn8UyeWeXfq1k/imTdR3R7nlM3RzJ/KgcDXZRhVs4k2yDnr7ABRXENG3Po3v8x3/RyPPQeqVxPornH+Tp4HP4n8bYMlroXGxYkWXBz+4PrN7p2b+xzTJ/0YB9JfRnIbpf8qsNxst0t1iq7bcKeSlqYHmbUkb2lrmn7wSoJ4P3Di4eDrgIxewstdXG+pkq6itqjIJZ5HaALuUADTWsaAP7O+8lN1HdHueUzdHSqKtfLPLv1ayfxTJ5Z5d+rWT+KZN1HdHueUzdFlIq18s8u/VrJ/FMnlnl36tZP4pk3Ud0e55TN0WUirXyzy79Wsn8UyeWeXfq1k/imTdR3R7nlM3RZSKt2ZvlUR2+32eoH9htRLET+/kd/sW/x/P6W7VcdDW08tnuUnSOCpcCyc62RFIOjjoE8vR2gTy6G1E4p01rMT+E/pzUvgyUjW0JSiIsXnEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQFrsivcOOWSsuU7S9lPGXCNp06R3c1g363OIA+0rYqE8WHuFmtUX+9S3WmEm+7TSXt/67Wfv0tcVYteInkvSu3aK9UdooZ3yS1te8T3Oq06eXew3vIjZ7I2bIaPvJ25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miAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICrrgrdvpagyp3kD9X/YZFWwdh2HZfSfKW/wA/12UfN22982nb5fScrFUL4YWvNrVR5A3OLxRXiomvVVPa30TA0QW5xb2EL9Rs29o5tnzu/wBJyCaIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiDnn+T+/0RsE++4f8AmFSuhlzz/J/f6I2CffcP/MKldDICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiCtshtVDPx2xK4SZo+318Fsq44sUEum3Bp1zTlvMN9n7eU9/eFZKq7Jbri8PhCYZQVmPVVVlk1qrZKC9s32NLCNdrG7ztbd015p+8K0UBERAREQEREBERAREQEREBERAREQEREBERAREQFVPg92vCbVbM1bg94rbxTzZXcJ7o+tYWmC4uLO3hZuNm2NPLo+d3+k5Wsq64K3b6WoMqd5A/V/2GRVsHYdh2X0nylv8AP9dlHzdtvfNp2+X0nILFREQEREBERAREQEREBERAREQEREBERAREQEREHPP8n9/ojYJ99w/8wqV0Muef5P7/AERsE++4f+YVK6GQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREELu9VmzOKmPwW+jopMEfRVDrpVSEeMR1I12IYOYHlPXfmn7wpoq2yG1UM/HbErhJmj7fXwWyrjixQS6bcGnXNOW8w32ft5T394VkoCIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgKF8MLXm1qo8gbnF4orxUTXqqntb6JgaILc4t7CF+o2be0c2z53f6TlNFVPg92vCbVbM1bg94rbxTzZXcJ7o+tYWmC4uLO3hZuNm2NPLo+d3+k5BayIiAiIgIiICIiAiIgIiICLSZJl9BjLY2T9rU1kwJhoaVvPNKB3kDYDW9w5nENGxs9QopJnmS1JLoLPbqKProVNW+WT7NhrAB9wcfvWsYrTGs6RH3zo2phyZONYWMirXyzy79Wsn8UyeWeXfq1k/imVt1HdHu18pm6LKRVr5Z5d+rWT+KZPLPLv1ayfxTJuo7o9zymbospFWvlnl36tZP4pk8s8u/VrJ/FMm6juj3PKZuiylwx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5DZMIx61Pb3SUtshY/7y4N2T95U0RB+AAAADQHqC/URAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAVf8eeEsXHPhTesInuclogujqftKyKISuY2KojmIDSQNuEfLvfTm3o60bARBzXw3/k9+DXD10M89imyuvj0e3v83bsJ9f6FobGR9jmlTmG10dlzC/0NupIKCigZSsipqaJsccbey7mtaAAPsCttVbW//aBkv3Uv/dKmb/b5fwj/AOquV/FP9pb8vnDKRRXJbrmdHchHYcbs91oeQHxiuvclJJz9djkbSyDXd15vX3Banyg4m/sTjf8A/lE3/wDBXzmzMviIxzMa8PeP3RzjnxDyOx5NimJYvDXivvTKqqnqrXT009VHDAGbbEypkZFtzpBsuJ0GnTSTsRKqzjipQWbHbfcpKiwVtwy+C0U90uVDSOqKqhkpZnkyQwySRtkbIzoWuAPI0kaLmmx71w8q+KdFb6rKqQ4lkFoqny2y441d3TT04cwNeRI+Bg08ba5jmOaQB+7O+qKhnt2O0tde73dZbJd23qGsr6pss004ZI0NkPJrs9Su81gbrQ1r17RasRETD2VyY6VisxGsc+GvX19lXXXixmGGDMcVddYr7fqa+2mzWi819LHHyfSDGFr52RBrHdmS8jQHN5oK2eB2O92DwmblT33JZcpqjh1O9lZNRxUzmt8dlHJyxANI2HEHW9HR3ram+Q8DscymXL5Lg+tkdkz6SWoMcwjdTS0zQ2GSBzWhzHAgO2Seo9mwtbbuE9dgN6qMos1wuea5LNQx2tzcnuzYY/F2yGTYfHTO04E9wbo769dkztVmJiPrkne45rMV4TMdI56R6+nHVaiKADIOJnXeE439n/0om/8A4KzrHec8qbrTxXfFbHb7c4ntqmkv8tRIwaOuWM0jA7roekO/fq0sNmXjnHMceHvH7t9dI2y3fG2PaHsddIw5rhsEcj+hWq4meBZwg4p9rLccRprXcJNn6Qsn8zl5j3uIZ5j3H2va5be4f56xn/2rF/2Hq2V9B4f/AG1Pz+b7L+Ef7X85Vd4O3g/WXwbsHq8YsVxr7nS1VwluL5riWF4e9kbOUcjWjQbEzv3s8x6AgC0URbOyIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICIiAiIgIiICqu/wAdwt+cXuobZrjWU9S2nMc1LDztPLHoje/arURW/lmtqXjWJ/eJ/Rhmw08RScd+Uql+k679nL38J+afSdd+zl7+E/NW0i8/lvDdk+7mfZHhfv8Af/CpfpOu/Zy9/Cfmn0nXfs5e/hPzVtInlvDdk+59keF+/wB/8Kl+k679nL38J+afSdd+zl7+E/NW0ieW8N2T7n2R4X7/AH/wqX6Trv2cvfwn5p9J137OXv4T81bSJ5bw3ZPufZHhfv8Af/Coom3G636wNbYrpTsguDJpJain5GMYGuBJO/tCt1EW/wDLWsUpGkQ6WDBTw1N3j5CIih6BERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQf/2Q==", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display_graph(agent)" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "3a07607b-eb02-467f-a255-0c6bcdc6f62c", + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "L'impact environnemental de l'intelligence artificielle n'est pas couvert par les rapports du GIEC ou de l'IPBES. Cependant, il existe des recherches récentes sur le sujet. Par exemple, vous pouvez consulter le travail de l'experte en IA et climat, Sasha Luccioni, qui a publié des articles sur l'empreinte carbone de l'IA, notamment sur le coût énergétique de l'inférence des modèles d'IA et sur l'estimation de l'empreinte carbone de l'entraînement de grands modèles de langage.\n", + "... Analyzing user message\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": [ + "{'intent': 'search', 'language': 'English', 'query': 'What evidence do we have of climate change?'}\n", + "... Thinking step by step to answer the question\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", + "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", + "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"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": [ + "{'questions': [{'question': 'What are the key indicators of climate change?', 'sources': ['IPCC']}, {'question': 'How do scientists gather evidence of climate change?', 'sources': ['IPCC']}, {'question': 'What data supports the existence of climate change?', 'sources': ['IPCC']}]}\n", + "... Searching in the knowledge base\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": [ + "The evidence of climate change is supported by a broad range of indicators across various domains, as highlighted in the IPCC and IPBES reports:\n", "\n", - "Si vous souhaitez en savoir plus sur l'empreinte carbone de cet outil spécifique, je vous recommande de consulter les outils tels que CodeCarbon pour mesurer l'empreinte carbone de votre code, ou Ecologits pour mesurer l'empreinte carbone de l'utilisation des API de modèles de langage. De plus, vous pouvez visiter cette page pour en apprendre davantage sur l'empreinte carbone de ClimateQ&A : [Lien vers l'empreinte carbone de ClimateQ&A](https://climateqa.com/docs/carbon-footprint/)" + "- Surface air temperature and precipitation are key indicators of climate change [Doc 3, Doc 5].\n", + "- Monitoring surface temperatures is integral to understanding climate change [Doc 3].\n", + "- Upper-air temperatures are crucial indicators of different causal mechanisms underlying climate change [Doc 3].\n", + "- Large-scale changes in the global hydrological cycle are monitored through indicators like ocean and land precipitation-evaporation, global precipitation, total column water vapor, surface humidity, and global river runoff [Doc 3].\n", + "- A warming world may lead to changes in large-scale circulation patterns such as the Hadley circulation, monsoon systems, and the position and strength of the sub-tropical and polar jets [Doc 3].\n", + "- The evidence for climate change is not solely based on increasing surface temperatures but on a variety of indicators across the atmosphere, ocean, cryosphere, and biosphere [Doc 6, Doc 11].\n", + "- Scientists use multiple lines of evidence, including paleorecords, contemporary observations, manipulation experiments, and models, to attribute changes in marine ecosystems to climate change [Doc 8, Doc 10].\n", + "- Geological and biological materials like corals, trees, glacier ice, and fossil pollen preserve evidence of past climate changes, aiding in understanding climate change over time [Doc 9].\n", + "- Multiple data sources, methodologies, and approaches are used to construct climate information, including theoretical understanding, observed data, simulations, and experiments [Doc 7, Doc 13].\n", + "- To generate robust information on regional climate change, consistency among data sources is crucial, and observational uncertainty should be considered [Doc 14].\n", + "- The evidence base for climate change includes observed changes, model projections, and process-oriented attribution of changes to human interventions [Doc 15].\n", + "\n", + "Overall, the evidence for climate change is derived from a comprehensive analysis of various indicators and data sources across different domains, providing a coherent picture of a warming world." ] } ], "source": [ - "async for event in ai_impact_chain.astream_events({\"question\":\"Mais c'est quoi l'empreinte carbone de cet outil, ça doit consommer pas mal ...\"},version = \"v1\"):\n", - " if event[\"event\"] == \"on_chain_stream\":\n", - " print(event[\"data\"][\"chunk\"],end = \"\")" + "verbose = False\n", + "question = \"What evidence do we have of climate change?\"\n", + "\n", + "steps_display = {\n", + " \"categorize_intent\":(\"... Analyzing user message\",True),\n", + " \"transform_query\":(\"... Thinking step by step to answer the question\",True),\n", + " \"retrieve_documents\":(\"... Searching in the knowledge base\",False),\n", + "}\n", + "\n", + "def display_steps(event):\n", + "\n", + " for event_name,(event_description,display_output) in steps_display.items():\n", + " if event[\"name\"] == event_name:\n", + " if event[\"event\"] == \"on_chain_start\":\n", + " print(event_description)\n", + " elif event[\"event\"] == \"on_chain_end\":\n", + " if display_output:\n", + " print(event[\"data\"][\"output\"])\n", + "\n", + "async for event in agent.astream_events({\"user_input\":question,\"sources_input\":[\"auto\"],\"audience\":\"experts\"},version = \"v1\"):\n", + "\n", + " if verbose:\n", + " print(event)\n", + " print(\"-\"*50)\n", + " else:\n", + " \n", + " if event[\"event\"] == \"on_chat_model_stream\":\n", + " print(event[\"data\"][\"chunk\"].content,end = \"\")\n", + "\n", + " if event[\"name\"] == \"retrieve_documents\" and event[\"event\"] == \"on_chain_end\":\n", + " docs = event[\"data\"][\"output\"][\"documents\"]\n", + " \n", + " display_steps(event)" ] }, { "cell_type": "code", - "execution_count": 366, - "id": "6f3a1c52-f92a-442b-9442-22415087da8b", - "metadata": { - "tags": [] - }, + "execution_count": 50, + "id": "a09f58e5-368b-486b-a458-7cfe56445c08", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[Document(page_content='Summary: The image is a graphical representation of human-environment interactions from 1970 to 2020, depicting the substantial increase in global economic growth and its varied environmental impacts across different categories of countries (developed, developing, and least developed countries). This graph shows key indicators such as Gross Domestic Product (GDP), Domestic Material Consumption, Extraction of Living Biomass, Protection of Key Biodiversity Areas (KBAs), Air Pollution, and Fertilizer Use, indicating disparities in economic growth, resource consumption, environmental conservation, and pollution among these groups of countries.', metadata={'chunk_type': 'image', 'document_id': 'document24', 'document_number': 24.0, 'element_id': 'Picture_0_32', 'figure_code': 'N/A', 'file_size': 230.771484375, 'image_path': '/dbfs/mnt/ai4sclqa/raw/climateqa/documents/document24/images/Picture_0_32.png', 'n_pages': 60.0, 'name': 'Summary for Policymakers. Global assessment report on biodiversity and ecosystem services of the IPBES (Version 1)', 'num_characters': 'N/A', 'num_tokens': 'N/A', 'num_tokens_approx': 'N/A', 'num_words': 'N/A', 'page_number': 33, 'release_date': 2019.0, 'report_type': 'SPM', 'section_header': 'N/A', 'short_name': 'IPBES GAR SPM', 'source': 'IPBES', 'toc_level0': 'N/A', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/record/3553579/files/ipbes_global_assessment_report_summary_for_policymakers.pdf', 'similarity_score': 0.658392608, 'content': 'Summary: The image is a graphical representation of human-environment interactions from 1970 to 2020, depicting the substantial increase in global economic growth and its varied environmental impacts across different categories of countries (developed, developing, and least developed countries). This graph shows key indicators such as Gross Domestic Product (GDP), Domestic Material Consumption, Extraction of Living Biomass, Protection of Key Biodiversity Areas (KBAs), Air Pollution, and Fertilizer Use, indicating disparities in economic growth, resource consumption, environmental conservation, and pollution among these groups of countries.', 'reranking_score': 0.9946669340133667, 'query_used_for_retrieval': 'What are the key indicators of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content='This image is a representation of the four-box model used to communicate the level of scientific confidence in relation to climate change and biodiversity findings. It visually summarizes how confidence is categorized based on the strength of evidence and the degree of consensus among experts. The model categorizes findings into four different types of confidence levels: Inconclusive, Established but Incomplete, Unresolved, and Well Established, each corresponding to different intersections of evidence and agreement. The shading gradient indicates that higher confidence is represented towards the top right corner, which combines a high level of agreement with robust quantity and quality of evidence. This framework is instrumental in communicating scientific assessments from organizations such as IPBES.', metadata={'chunk_type': 'image', 'document_id': 'document34', 'document_number': 34.0, 'element_id': 'Picture_0_47', 'figure_code': 'Figure \\r\\nSPM.A1', 'file_size': 79.890625, 'image_path': '/dbfs/mnt/ai4sclqa/raw/climateqa/documents/document34/images/Picture_0_47.png', 'n_pages': 52.0, 'name': 'Summary for Policymakers. Regional Assessment Report on Biodiversity and Ecosystem Services for Europe and Central Asia', 'num_characters': 'N/A', 'num_tokens': 'N/A', 'num_tokens_approx': 'N/A', 'num_words': 'N/A', 'page_number': 48, 'release_date': 2018.0, 'report_type': 'SPM', 'section_header': 'N/A', 'short_name': 'IPBES RAR ECA SPM', 'source': 'IPBES', 'toc_level0': 'N/A', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/record/3237468/files/ipbes_assessment_spm_eca_EN.pdf', 'similarity_score': 0.659100771, 'content': 'This image is a representation of the four-box model used to communicate the level of scientific confidence in relation to climate change and biodiversity findings. It visually summarizes how confidence is categorized based on the strength of evidence and the degree of consensus among experts. The model categorizes findings into four different types of confidence levels: Inconclusive, Established but Incomplete, Unresolved, and Well Established, each corresponding to different intersections of evidence and agreement. The shading gradient indicates that higher confidence is represented towards the top right corner, which combines a high level of agreement with robust quantity and quality of evidence. This framework is instrumental in communicating scientific assessments from organizations such as IPBES.', 'reranking_score': 0.9927500486373901, 'query_used_for_retrieval': 'How do scientists gather evidence of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content='by interactions of climate change with other environmental, \\r\\nsociocultural, political and economic drivers and associated \\r\\nunderlying causes. Developing effective responses is also \\r\\nchallenged by incomplete knowledge of climate change \\r\\npatterns and by many gaps in understanding of how climate \\r\\nchange affects sustainability of uses (established but \\r\\nincomplete) {4.2.1.2}.', metadata={'chunk_type': 'text', 'document_id': 'document26', 'document_number': 26.0, 'element_id': 'N/A', 'figure_code': 'N/A', 'file_size': 'N/A', 'image_path': 'N/A', 'n_pages': 44.0, 'name': 'Summary for Policymakers. Summary for policymakers of the thematic assessment of the sustainable use of wild species of the IPBES', 'num_characters': 379.0, 'num_tokens': 75.0, 'num_tokens_approx': 81.0, 'num_words': 61.0, 'page_number': 23, 'release_date': 2022.0, 'report_type': 'SPM', 'section_header': 'B2 The sustainability of the use of wild species \\r\\nis influenced negatively or positively by \\r\\nmultiple drivers.', 'short_name': 'IPBES TAM SW SPM', 'source': 'IPBES', 'toc_level0': 'Table of Contents', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/record/7411847/files/EN_SPM_SUSTAINABLE%20USE%20OF%20WILD%20SPECIES.pdf', 'similarity_score': 0.624824047, 'content': 'by interactions of climate change with other environmental, \\r\\nsociocultural, political and economic drivers and associated \\r\\nunderlying causes. Developing effective responses is also \\r\\nchallenged by incomplete knowledge of climate change \\r\\npatterns and by many gaps in understanding of how climate \\r\\nchange affects sustainability of uses (established but \\r\\nincomplete) {4.2.1.2}.', 'reranking_score': 0.9903822541236877, 'query_used_for_retrieval': 'What data supports the existence of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content='Summary: This figure visually represents a comparison of different pathways towards sustainable development, categorized by scenarios such as Green Economy, Low Carbon, and Ecotopian approaches. Each pathway is assessed for its effectiveness in addressing a range of sustainability goals, indicated by varying shades of green. Darker shades correlate with a greater number of goals addressed. The diagram serves as a tool for understanding the spectrum and relative impact of sustainability strategies within scenario archetypes outlined by the IPCC and IPBES reports on climate change and biodiversity. The pathways range from resource sparing to local multifunctionality, highlighting diverse strategies to combat climate change and protect biodiversity.', metadata={'chunk_type': 'image', 'document_id': 'document34', 'document_number': 34.0, 'element_id': 'Picture_0_35', 'figure_code': 'N/A', 'file_size': 66.1787109375, 'image_path': '/dbfs/mnt/ai4sclqa/raw/climateqa/documents/document34/images/Picture_0_35.png', 'n_pages': 52.0, 'name': 'Summary for Policymakers. Regional Assessment Report on Biodiversity and Ecosystem Services for Europe and Central Asia', 'num_characters': 'N/A', 'num_tokens': 'N/A', 'num_tokens_approx': 'N/A', 'num_words': 'N/A', 'page_number': 36, 'release_date': 2018.0, 'report_type': 'SPM', 'section_header': 'N/A', 'short_name': 'IPBES RAR ECA SPM', 'source': 'IPBES', 'toc_level0': 'N/A', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/record/3237468/files/ipbes_assessment_spm_eca_EN.pdf', 'similarity_score': 0.657539964, 'content': 'Summary: This figure visually represents a comparison of different pathways towards sustainable development, categorized by scenarios such as Green Economy, Low Carbon, and Ecotopian approaches. Each pathway is assessed for its effectiveness in addressing a range of sustainability goals, indicated by varying shades of green. Darker shades correlate with a greater number of goals addressed. The diagram serves as a tool for understanding the spectrum and relative impact of sustainability strategies within scenario archetypes outlined by the IPCC and IPBES reports on climate change and biodiversity. The pathways range from resource sparing to local multifunctionality, highlighting diverse strategies to combat climate change and protect biodiversity.', 'reranking_score': 0.9874748587608337, 'query_used_for_retrieval': 'What are the key indicators of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content='Summary:\\nThe image illustrates the four-box model for qualitative communication of confidence from scientific reports. It showcases a matrix with two axes: \"Level of Agreement\" on the vertical axis, ranging from low to high, and the horizontal axis representing the \"Quantity and Quality of Evidence,\" ranging from robust to low. The four quadrants formed are labeled as \"Established but incomplete,\" \"Well established,\" \"Inconclusive,\" and \"Unresolved,\" indicating various degrees of scientific confidence based on the agreement among experts and the evidence\\'s quality. Additionally, a separate \"Certainty Scale\" bar on the right side of the diagram indicates a continuum from low to high certainty. This model is used for assessing and communicating the confidence in scientific findings related to climate change and biodiversity.', metadata={'chunk_type': 'image', 'document_id': 'document26', 'document_number': 26.0, 'element_id': 'Picture_0_38', 'figure_code': 'N/A', 'file_size': 56.0205078125, 'image_path': '/dbfs/mnt/ai4sclqa/raw/climateqa/documents/document26/images/Picture_0_38.png', 'n_pages': 44.0, 'name': 'Summary for Policymakers. Summary for policymakers of the thematic assessment of the sustainable use of wild species of the IPBES', 'num_characters': 'N/A', 'num_tokens': 'N/A', 'num_tokens_approx': 'N/A', 'num_words': 'N/A', 'page_number': 39, 'release_date': 2022.0, 'report_type': 'SPM', 'section_header': 'N/A', 'short_name': 'IPBES TAM SW SPM', 'source': 'IPBES', 'toc_level0': 'Table of Contents', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/record/7411847/files/EN_SPM_SUSTAINABLE%20USE%20OF%20WILD%20SPECIES.pdf', 'similarity_score': 0.636326432, 'content': 'Summary:\\nThe image illustrates the four-box model for qualitative communication of confidence from scientific reports. It showcases a matrix with two axes: \"Level of Agreement\" on the vertical axis, ranging from low to high, and the horizontal axis representing the \"Quantity and Quality of Evidence,\" ranging from robust to low. The four quadrants formed are labeled as \"Established but incomplete,\" \"Well established,\" \"Inconclusive,\" and \"Unresolved,\" indicating various degrees of scientific confidence based on the agreement among experts and the evidence\\'s quality. Additionally, a separate \"Certainty Scale\" bar on the right side of the diagram indicates a continuum from low to high certainty. This model is used for assessing and communicating the confidence in scientific findings related to climate change and biodiversity.', 'reranking_score': 0.9869220852851868, 'query_used_for_retrieval': 'How do scientists gather evidence of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content='by interactions of climate change with other environmental, \\r\\nsociocultural, political and economic drivers and associated \\r\\nunderlying causes. Developing effective responses is also \\r\\nchallenged by incomplete knowledge of climate change \\r\\npatterns and by many gaps in understanding of how climate \\r\\nchange affects sustainability of uses (established but \\r\\nincomplete) {4.2.1.2}.', metadata={'chunk_type': 'text', 'document_id': 'document26', 'document_number': 26.0, 'element_id': 'N/A', 'figure_code': 'N/A', 'file_size': 'N/A', 'image_path': 'N/A', 'n_pages': 44.0, 'name': 'Summary for Policymakers. Summary for policymakers of the thematic assessment of the sustainable use of wild species of the IPBES', 'num_characters': 379.0, 'num_tokens': 75.0, 'num_tokens_approx': 81.0, 'num_words': 61.0, 'page_number': 23, 'release_date': 2022.0, 'report_type': 'SPM', 'section_header': 'B2 The sustainability of the use of wild species \\r\\nis influenced negatively or positively by \\r\\nmultiple drivers.', 'short_name': 'IPBES TAM SW SPM', 'source': 'IPBES', 'toc_level0': 'Table of Contents', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/record/7411847/files/EN_SPM_SUSTAINABLE%20USE%20OF%20WILD%20SPECIES.pdf', 'similarity_score': 0.653102875, 'content': 'by interactions of climate change with other environmental, \\r\\nsociocultural, political and economic drivers and associated \\r\\nunderlying causes. Developing effective responses is also \\r\\nchallenged by incomplete knowledge of climate change \\r\\npatterns and by many gaps in understanding of how climate \\r\\nchange affects sustainability of uses (established but \\r\\nincomplete) {4.2.1.2}.', 'reranking_score': 0.9700126051902771, 'query_used_for_retrieval': 'What are the key indicators of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content='The Assessment is critical today because evidence has \\r\\naccumulated that the multiple threats to biodiversity have \\r\\nintensified since previous reports, and that the sustainable use \\r\\nof nature will be vital for adapting to and mitigating dangerous \\r\\nanthropogenic interference with the climate system, as well as \\r\\nfor achieving many of our most important development goals.\\nThe findings of this Assessment focus on the global scale, \\r\\nspanning the period from the 1970s to 2050. They are based \\r\\non an unprecedented collection of evidence, integrating \\r\\nnatural and social science perspectives, a range of knowledge \\r\\nsystems and multiple dimensions of value. This is the first \\r\\nglobal-level assessment to systematically consider evidence \\r\\nabout the contributions of indigenous and local knowledge \\r\\nand practices, and issues concerning Indigenous Peoples and \\r\\nLocal Communities. All these features result in a more holistic \\r\\nassessment of indirect drivers as root causes of changes \\r\\nin nature and the associated risks to the quality of life of \\r\\nall people.', metadata={'chunk_type': 'text', 'document_id': 'document24', 'document_number': 24.0, 'element_id': 'N/A', 'figure_code': 'N/A', 'file_size': 'N/A', 'image_path': 'N/A', 'n_pages': 60.0, 'name': 'Summary for Policymakers. Global assessment report on biodiversity and ecosystem services of the IPBES (Version 1)', 'num_characters': 1065.0, 'num_tokens': 196.0, 'num_tokens_approx': 225.0, 'num_words': 169.0, 'page_number': 5, 'release_date': 2019.0, 'report_type': 'SPM', 'section_header': 'FOREWORDFOREWORD\\n\\x0c', 'short_name': 'IPBES GAR SPM', 'source': 'IPBES', 'toc_level0': 'N/A', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/record/3553579/files/ipbes_global_assessment_report_summary_for_policymakers.pdf', 'similarity_score': 0.651207328, 'content': 'The Assessment is critical today because evidence has \\r\\naccumulated that the multiple threats to biodiversity have \\r\\nintensified since previous reports, and that the sustainable use \\r\\nof nature will be vital for adapting to and mitigating dangerous \\r\\nanthropogenic interference with the climate system, as well as \\r\\nfor achieving many of our most important development goals.\\nThe findings of this Assessment focus on the global scale, \\r\\nspanning the period from the 1970s to 2050. They are based \\r\\non an unprecedented collection of evidence, integrating \\r\\nnatural and social science perspectives, a range of knowledge \\r\\nsystems and multiple dimensions of value. This is the first \\r\\nglobal-level assessment to systematically consider evidence \\r\\nabout the contributions of indigenous and local knowledge \\r\\nand practices, and issues concerning Indigenous Peoples and \\r\\nLocal Communities. All these features result in a more holistic \\r\\nassessment of indirect drivers as root causes of changes \\r\\nin nature and the associated risks to the quality of life of \\r\\nall people.', 'reranking_score': 0.9676424860954285, 'query_used_for_retrieval': 'What are the key indicators of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content=\"Summary: This visual summary presents an assessment of global environmental changes and their impact on nature's capacity to support human well-being between 1970 and the present, indicating overall declines in various ecosystem services across multiple categories. This decline is signalled by downward arrows in categories such as habitat creation, pollination, air and climate regulation, as well as freshwater regulation. The chart differentiates between consistent regional trends and variable outcomes, while also providing indicators for each service that demonstrate the observed changes.\", metadata={'chunk_type': 'image', 'document_id': 'document24', 'document_number': 24.0, 'element_id': 'Picture_0_24', 'figure_code': 'N/A', 'file_size': 620.9736328125, 'image_path': '/dbfs/mnt/ai4sclqa/raw/climateqa/documents/document24/images/Picture_0_24.png', 'n_pages': 60.0, 'name': 'Summary for Policymakers. Global assessment report on biodiversity and ecosystem services of the IPBES (Version 1)', 'num_characters': 'N/A', 'num_tokens': 'N/A', 'num_tokens_approx': 'N/A', 'num_words': 'N/A', 'page_number': 25, 'release_date': 2019.0, 'report_type': 'SPM', 'section_header': 'N/A', 'short_name': 'IPBES GAR SPM', 'source': 'IPBES', 'toc_level0': 'N/A', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/record/3553579/files/ipbes_global_assessment_report_summary_for_policymakers.pdf', 'similarity_score': 0.651050925, 'content': \"Summary: This visual summary presents an assessment of global environmental changes and their impact on nature's capacity to support human well-being between 1970 and the present, indicating overall declines in various ecosystem services across multiple categories. This decline is signalled by downward arrows in categories such as habitat creation, pollination, air and climate regulation, as well as freshwater regulation. The chart differentiates between consistent regional trends and variable outcomes, while also providing indicators for each service that demonstrate the observed changes.\", 'reranking_score': 0.9634665846824646, 'query_used_for_retrieval': 'What are the key indicators of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content='by interactions of climate change with other environmental, \\r\\nsociocultural, political and economic drivers and associated \\r\\nunderlying causes. Developing effective responses is also \\r\\nchallenged by incomplete knowledge of climate change \\r\\npatterns and by many gaps in understanding of how climate \\r\\nchange affects sustainability of uses (established but \\r\\nincomplete) {4.2.1.2}.', metadata={'chunk_type': 'text', 'document_id': 'document26', 'document_number': 26.0, 'element_id': 'N/A', 'figure_code': 'N/A', 'file_size': 'N/A', 'image_path': 'N/A', 'n_pages': 44.0, 'name': 'Summary for Policymakers. Summary for policymakers of the thematic assessment of the sustainable use of wild species of the IPBES', 'num_characters': 379.0, 'num_tokens': 75.0, 'num_tokens_approx': 81.0, 'num_words': 61.0, 'page_number': 23, 'release_date': 2022.0, 'report_type': 'SPM', 'section_header': 'B2 The sustainability of the use of wild species \\r\\nis influenced negatively or positively by \\r\\nmultiple drivers.', 'short_name': 'IPBES TAM SW SPM', 'source': 'IPBES', 'toc_level0': 'Table of Contents', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/record/7411847/files/EN_SPM_SUSTAINABLE%20USE%20OF%20WILD%20SPECIES.pdf', 'similarity_score': 0.623599827, 'content': 'by interactions of climate change with other environmental, \\r\\nsociocultural, political and economic drivers and associated \\r\\nunderlying causes. Developing effective responses is also \\r\\nchallenged by incomplete knowledge of climate change \\r\\npatterns and by many gaps in understanding of how climate \\r\\nchange affects sustainability of uses (established but \\r\\nincomplete) {4.2.1.2}.', 'reranking_score': 0.9539093375205994, 'query_used_for_retrieval': 'How do scientists gather evidence of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content=\"Summary: The image is a four-box model that represents a framework used by the IPBES to communicate the confidence level of scientific findings related to biodiversity and climate change. It illustrates the relationship between the quantity and quality of evidence and the level of agreement among experts, with confidence increasing from the bottom left corner ('Inconclusive' with low evidence and agreement) to the top right corner ('Well established' with high evidence and agreement). The degree of shading in each box corresponds to the level of certainty, which is also represented by an adjacent certainty scale with 'High' at the top and 'Low' at the bottom. This model serves as a guideline for assessing the degree of confidence in key findings within environmental reports.\", metadata={'chunk_type': 'image', 'document_id': 'document32', 'document_number': 32.0, 'element_id': 'Picture_0_41', 'figure_code': 'Figure \\r\\nSPM.A1', 'file_size': 57.51171875, 'image_path': '/dbfs/mnt/ai4sclqa/raw/climateqa/documents/document32/images/Picture_0_41.png', 'n_pages': 44.0, 'name': 'Summary for Policymakers. Regional Assessment Report on Biodiversity and Ecosystem Services for Asia and the Pacific', 'num_characters': 'N/A', 'num_tokens': 'N/A', 'num_tokens_approx': 'N/A', 'num_words': 'N/A', 'page_number': 42, 'release_date': 2018.0, 'report_type': 'SPM', 'section_header': 'N/A', 'short_name': 'IPBES RAR AP SPM', 'source': 'IPBES', 'toc_level0': 'N/A', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/record/3237383/files/ipbes_assessment_spm_ap_EN.pdf', 'similarity_score': 0.612060189, 'content': \"Summary: The image is a four-box model that represents a framework used by the IPBES to communicate the confidence level of scientific findings related to biodiversity and climate change. It illustrates the relationship between the quantity and quality of evidence and the level of agreement among experts, with confidence increasing from the bottom left corner ('Inconclusive' with low evidence and agreement) to the top right corner ('Well established' with high evidence and agreement). The degree of shading in each box corresponds to the level of certainty, which is also represented by an adjacent certainty scale with 'High' at the top and 'Low' at the bottom. This model serves as a guideline for assessing the degree of confidence in key findings within environmental reports.\", 'reranking_score': 0.9479717016220093, 'query_used_for_retrieval': 'How do scientists gather evidence of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content='instance, water, energy and shelter provision for the growing \\r\\npopulation at other scales {2.2.1.3, 8.4.2}. Effective means for \\r\\nenhancing such coordination and collaboration include the \\r\\nengagement of scientists with leaders in government, \\r\\nbusiness and civil society to develop the knowledge, tools \\r\\nand practices necessary to integrate social-ecological \\r\\ninteractions into decision-making {1.3.2.1, 2.3.2.2, 6.4.3, \\r\\n6.4.4, 8.2.3}, and cross-disciplinary and multi-actor \\r\\ncollaboration in research, restoration planning and \\r\\nimplementation {6.4.2.3, 6,4,3, 8.2.3}.', metadata={'chunk_type': 'text', 'document_id': 'document36', 'document_number': 36.0, 'element_id': 'N/A', 'figure_code': 'N/A', 'file_size': 'N/A', 'image_path': 'N/A', 'n_pages': 48.0, 'name': 'Summary for Policymakers. Assessment Report on Land Degradation and Restoration', 'num_characters': 575.0, 'num_tokens': 163.0, 'num_tokens_approx': 190.0, 'num_words': 143.0, 'page_number': 37, 'release_date': 2018.0, 'report_type': 'SPM', 'section_header': 'Table SPM 1 Responses to address land degradation, their impacts and outcomes for \\r\\nbiodiversity and ecosystem services. ', 'short_name': 'IPBES AR LDR SPM', 'source': 'IPBES', 'toc_level0': 'N/A', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/records/3237411/files/ipbes_assessment_spm_ldra_EN.pdf?download=1', 'similarity_score': 0.605369747, 'content': 'instance, water, energy and shelter provision for the growing \\r\\npopulation at other scales {2.2.1.3, 8.4.2}. Effective means for \\r\\nenhancing such coordination and collaboration include the \\r\\nengagement of scientists with leaders in government, \\r\\nbusiness and civil society to develop the knowledge, tools \\r\\nand practices necessary to integrate social-ecological \\r\\ninteractions into decision-making {1.3.2.1, 2.3.2.2, 6.4.3, \\r\\n6.4.4, 8.2.3}, and cross-disciplinary and multi-actor \\r\\ncollaboration in research, restoration planning and \\r\\nimplementation {6.4.2.3, 6,4,3, 8.2.3}.', 'reranking_score': 0.9426116943359375, 'query_used_for_retrieval': 'How do scientists gather evidence of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content='20. United Nations Development Programme (2015). Human Development \\r\\nData (1990-2015) Retrieved from http://hdr.undp.org/en/data\\r\\n21. Van der Esch, S., ten Brink, B., Stehfest, E., Bakkenes, M., Sewell, \\r\\nA., Bouwman, A., Meijer, J., Westhoek, H., and van den Berg, M. \\r\\n(2017). Exploring future changes in land use and land condition and \\r\\nthe impacts on food, water, climate change and biodiversity: Scenarios \\r\\nfor the UNCCD Global Land Outlook. The Hague: PBL Netherlands \\r\\nEnvironmental Assessment Agency. Retrieved from http://www.pbl.nl/\\r\\nsites/default/files/cms/publicaties/pbl-2017-exploring-future-changes\\x02in-land-use-and-land-condition-2076.pdf', metadata={'chunk_type': 'text', 'document_id': 'document36', 'document_number': 36.0, 'element_id': 'N/A', 'figure_code': 'N/A', 'file_size': 'N/A', 'image_path': 'N/A', 'n_pages': 48.0, 'name': 'Summary for Policymakers. Assessment Report on Land Degradation and Restoration', 'num_characters': 655.0, 'num_tokens': 184.0, 'num_tokens_approx': 214.0, 'num_words': 161.0, 'page_number': 28, 'release_date': 2018.0, 'report_type': 'SPM', 'section_header': 'Figure SPM 9 Land degradation affects countries of all income levels and at all levels of human \\r\\ndevelopment. ', 'short_name': 'IPBES AR LDR SPM', 'source': 'IPBES', 'toc_level0': 'N/A', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/records/3237411/files/ipbes_assessment_spm_ldra_EN.pdf?download=1', 'similarity_score': 0.622500896, 'content': '20. United Nations Development Programme (2015). Human Development \\r\\nData (1990-2015) Retrieved from http://hdr.undp.org/en/data\\r\\n21. Van der Esch, S., ten Brink, B., Stehfest, E., Bakkenes, M., Sewell, \\r\\nA., Bouwman, A., Meijer, J., Westhoek, H., and van den Berg, M. \\r\\n(2017). Exploring future changes in land use and land condition and \\r\\nthe impacts on food, water, climate change and biodiversity: Scenarios \\r\\nfor the UNCCD Global Land Outlook. The Hague: PBL Netherlands \\r\\nEnvironmental Assessment Agency. Retrieved from http://www.pbl.nl/\\r\\nsites/default/files/cms/publicaties/pbl-2017-exploring-future-changes\\x02in-land-use-and-land-condition-2076.pdf', 'reranking_score': 0.8312966823577881, 'query_used_for_retrieval': 'What data supports the existence of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content='This image is a representation of the four-box model used to communicate the level of scientific confidence in relation to climate change and biodiversity findings. It visually summarizes how confidence is categorized based on the strength of evidence and the degree of consensus among experts. The model categorizes findings into four different types of confidence levels: Inconclusive, Established but Incomplete, Unresolved, and Well Established, each corresponding to different intersections of evidence and agreement. The shading gradient indicates that higher confidence is represented towards the top right corner, which combines a high level of agreement with robust quantity and quality of evidence. This framework is instrumental in communicating scientific assessments from organizations such as IPBES.', metadata={'chunk_type': 'image', 'document_id': 'document34', 'document_number': 34.0, 'element_id': 'Picture_0_47', 'figure_code': 'Figure \\r\\nSPM.A1', 'file_size': 79.890625, 'image_path': '/dbfs/mnt/ai4sclqa/raw/climateqa/documents/document34/images/Picture_0_47.png', 'n_pages': 52.0, 'name': 'Summary for Policymakers. Regional Assessment Report on Biodiversity and Ecosystem Services for Europe and Central Asia', 'num_characters': 'N/A', 'num_tokens': 'N/A', 'num_tokens_approx': 'N/A', 'num_words': 'N/A', 'page_number': 48, 'release_date': 2018.0, 'report_type': 'SPM', 'section_header': 'N/A', 'short_name': 'IPBES RAR ECA SPM', 'source': 'IPBES', 'toc_level0': 'N/A', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/record/3237468/files/ipbes_assessment_spm_eca_EN.pdf', 'similarity_score': 0.621113539, 'content': 'This image is a representation of the four-box model used to communicate the level of scientific confidence in relation to climate change and biodiversity findings. It visually summarizes how confidence is categorized based on the strength of evidence and the degree of consensus among experts. The model categorizes findings into four different types of confidence levels: Inconclusive, Established but Incomplete, Unresolved, and Well Established, each corresponding to different intersections of evidence and agreement. The shading gradient indicates that higher confidence is represented towards the top right corner, which combines a high level of agreement with robust quantity and quality of evidence. This framework is instrumental in communicating scientific assessments from organizations such as IPBES.', 'reranking_score': 0.6637013554573059, 'query_used_for_retrieval': 'What data supports the existence of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content='biodiversity (well established) {4.2.2.2, 4.2.2.3.1}. Climate \\r\\nchange alone is projected to decrease ocean net primary \\r\\nproduction by between 3 and 10 per cent, and fish biomass \\r\\nby between 3 and 25 per cent (in low and high warming \\r\\nscenarios, respectively) by the end of the century (established \\r\\nbut incomplete) {4.2.2.2.1}. Whether or not the current \\r\\nremoval of nearly 30 per cent of anthropogenic carbon \\r\\ndioxide emissions by terrestrial ecosystems continues into the \\r\\nfuture varies greatly from one scenario to the next and \\r\\ndepends heavily on how climate change, atmospheric carbon \\r\\ndioxide and land-use change interact. Important regulating \\r\\ncontributions of nature, such as coastal and soil protection, \\r\\ncrop pollination and carbon storage, are projected to decline\\r\\n(established but incomplete) {4.2.4, 4.3.2.1}. In contrast, \\r\\nsubstantial increases in food, feed, timber and bioenergy', metadata={'chunk_type': 'text', 'document_id': 'document24', 'document_number': 24.0, 'element_id': 'N/A', 'figure_code': 'N/A', 'file_size': 'N/A', 'image_path': 'N/A', 'n_pages': 60.0, 'name': 'Summary for Policymakers. Global assessment report on biodiversity and ecosystem services of the IPBES (Version 1)', 'num_characters': 908.0, 'num_tokens': 223.0, 'num_tokens_approx': 253.0, 'num_words': 190.0, 'page_number': 39, 'release_date': 2019.0, 'report_type': 'SPM', 'section_header': \"Figure SPM 7 Summary of recent status and trends in aspects of nature and nature's \\r\\ncontributions to people that support progress towards achieving selected targets \\r\\nof the Sustainable Development Goals. \", 'short_name': 'IPBES GAR SPM', 'source': 'IPBES', 'toc_level0': 'N/A', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/record/3553579/files/ipbes_global_assessment_report_summary_for_policymakers.pdf', 'similarity_score': 0.61879009, 'content': 'biodiversity (well established) {4.2.2.2, 4.2.2.3.1}. Climate \\r\\nchange alone is projected to decrease ocean net primary \\r\\nproduction by between 3 and 10 per cent, and fish biomass \\r\\nby between 3 and 25 per cent (in low and high warming \\r\\nscenarios, respectively) by the end of the century (established \\r\\nbut incomplete) {4.2.2.2.1}. Whether or not the current \\r\\nremoval of nearly 30 per cent of anthropogenic carbon \\r\\ndioxide emissions by terrestrial ecosystems continues into the \\r\\nfuture varies greatly from one scenario to the next and \\r\\ndepends heavily on how climate change, atmospheric carbon \\r\\ndioxide and land-use change interact. Important regulating \\r\\ncontributions of nature, such as coastal and soil protection, \\r\\ncrop pollination and carbon storage, are projected to decline\\r\\n(established but incomplete) {4.2.4, 4.3.2.1}. In contrast, \\r\\nsubstantial increases in food, feed, timber and bioenergy', 'reranking_score': 0.465409517288208, 'query_used_for_retrieval': 'What data supports the existence of climate change?', 'sources_used': ['IPBES']}),\n", + " Document(page_content='13. Van der Esch, S., ten Brink, B., Stehfest, E., Bakkenes, M., Sewell, \\r\\nA., Bouwman, A., Meijer, J., Westhoek, H., and van den Berg, M. \\r\\n(2017). Exploring future changes in land use and land condition and \\r\\nthe impacts on food, water, climate change and biodiversity: Scenarios \\r\\nfor the UNCCD Global Land Outlook. The Hague: PBL Netherlands \\r\\nEnvironmental Assessment Agency. Retrieved from http://www.pbl.nl/\\r\\nsites/default/files/cms/publicaties/pbl-2017-exploring-future-changes\\x02in-land-use-and-land-condition-2076.pdf.', metadata={'chunk_type': 'text', 'document_id': 'document36', 'document_number': 36.0, 'element_id': 'N/A', 'figure_code': 'N/A', 'file_size': 'N/A', 'image_path': 'N/A', 'n_pages': 48.0, 'name': 'Summary for Policymakers. Assessment Report on Land Degradation and Restoration', 'num_characters': 526.0, 'num_tokens': 152.0, 'num_tokens_approx': 176.0, 'num_words': 132.0, 'page_number': 25, 'release_date': 2018.0, 'report_type': 'SPM', 'section_header': 'Figure SPM 7 Human activity has changed the surface of the planet in profound and \\r\\nfar-reaching ways. ', 'short_name': 'IPBES AR LDR SPM', 'source': 'IPBES', 'toc_level0': 'N/A', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://zenodo.org/records/3237411/files/ipbes_assessment_spm_ldra_EN.pdf?download=1', 'similarity_score': 0.616809428, 'content': '13. Van der Esch, S., ten Brink, B., Stehfest, E., Bakkenes, M., Sewell, \\r\\nA., Bouwman, A., Meijer, J., Westhoek, H., and van den Berg, M. \\r\\n(2017). Exploring future changes in land use and land condition and \\r\\nthe impacts on food, water, climate change and biodiversity: Scenarios \\r\\nfor the UNCCD Global Land Outlook. The Hague: PBL Netherlands \\r\\nEnvironmental Assessment Agency. Retrieved from http://www.pbl.nl/\\r\\nsites/default/files/cms/publicaties/pbl-2017-exploring-future-changes\\x02in-land-use-and-land-condition-2076.pdf.', 'reranking_score': 0.19112645089626312, 'query_used_for_retrieval': 'What data supports the existence of climate change?', 'sources_used': ['IPBES']})]" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "docs" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "9b41f377-b3a9-41eb-acef-fb3ea131c374", + "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", "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n" ] }, @@ -495,132 +720,59 @@ "name": "stdout", "output_type": "stream", "text": [ - "Je suis désolé, mais je ne comprends pas la question. Pouvez-vous poser une question sur l'environnement ou le climat ?" + "L'impact environnemental de l'intelligence artificielle (IA) n'est pas couvert spécifiquement par les rapports du GIEC ou de l'IPBES. Cependant, il existe des recherches récentes sur ce sujet. Par exemple, vous pouvez consulter le travail de l'experte en IA et climat, Sasha Luccioni, qui a publié plusieurs articles sur l'empreinte carbone de l'IA, notamment sur le coût énergétique de l'inférence des modèles d'IA et sur l'estimation de l'empreinte carbone de l'entraînement de grands modèles de langage.\n", + "\n", + "De plus, il existe des outils tels que CodeCarbon et Ecologits qui peuvent vous aider à calculer l'empreinte carbone de vos modèles d'IA. Si vous souhaitez en savoir plus sur l'empreinte carbone de l'IA, je vous recommande de consulter ces ressources et outils. Vous pouvez également visiter cette page pour en apprendre davantage sur l'empreinte carbone de ClimateQ&A : [Lien vers la page sur l'empreinte carbone de ClimateQ&A](https://climateqa.com/docs/carbon-footprint/)\n" ] + }, + { + "data": { + "text/plain": [ + "{'user_input': \"C'est quoi l'empreinte carbone de l'IA\",\n", + " 'language': 'French',\n", + " 'intent': 'ai_impact',\n", + " 'query': \"C'est quoi l'empreinte carbone de l'IA\",\n", + " 'answer': \"L'impact environnemental de l'intelligence artificielle (IA) n'est pas couvert spécifiquement par les rapports du GIEC ou de l'IPBES. Cependant, il existe des recherches récentes sur ce sujet. Par exemple, vous pouvez consulter le travail de l'experte en IA et climat, Sasha Luccioni, qui a publié plusieurs articles sur l'empreinte carbone de l'IA, notamment sur le coût énergétique de l'inférence des modèles d'IA et sur l'estimation de l'empreinte carbone de l'entraînement de grands modèles de langage.\\n\\nDe plus, il existe des outils tels que CodeCarbon et Ecologits qui peuvent vous aider à calculer l'empreinte carbone de vos modèles d'IA. Si vous souhaitez en savoir plus sur l'empreinte carbone de l'IA, je vous recommande de consulter ces ressources et outils. Vous pouvez également visiter cette page pour en apprendre davantage sur l'empreinte carbone de ClimateQ&A : [Lien vers la page sur l'empreinte carbone de ClimateQ&A](https://climateqa.com/docs/carbon-footprint/)\"}" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "async for event in chitchat_chain.astream_events({\"question\":\"Vas y blbablablala\"},version = \"v1\"):\n", - " if event[\"event\"] == \"on_chain_stream\":\n", - " print(event[\"data\"][\"chunk\"],end = \"\")" + "output = await agent.ainvoke({\"user_input\":\"C'est quoi l'empreinte carbone de l'IA\"})\n", + "output" ] }, { "cell_type": "markdown", - "id": "0f917a1d-fca1-4e6d-9a24-19a14868d155", + "id": "8d89f36b-fc04-4d0c-b9c4-990b489b7fc3", "metadata": {}, "source": [ - "## Graph definition" + "## Test simple route chains" ] }, { "cell_type": "code", - "execution_count": 16, - "id": "0e380744-e03d-408d-9282-3fcb6925413b", + "execution_count": 36, + "id": "1d884bb7-7230-47cb-a778-36cffed1fcde", "metadata": { "tags": [] }, "outputs": [], "source": [ - "from langchain.schema import Document\n", - "from langgraph.graph import END, StateGraph" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "id": "345c7f3a-e1f3-4b13-b33f-ac58f93a0b95", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "from typing_extensions import TypedDict\n", - "from typing import List\n", - "\n", - "### State\n", - "\n", - "class GraphState(TypedDict):\n", - " \"\"\"\n", - " Represents the state of our graph.\n", - " \"\"\"\n", - " user_input : str\n", - " language : str\n", - " intent : str\n", - " query: str\n", - " questions : List[dict]\n", - " answer: str\n", - " audience: str\n", - " sources_input: str\n", - " documents: List[Document]" - ] - }, - { - "cell_type": "markdown", - "id": "56cae016-ca44-422a-a7a9-b8cb600652f1", - "metadata": {}, - "source": [ - "## Functions definition" - ] - }, - { - "cell_type": "code", - "execution_count": 130, - "id": "9104f33a-5150-401f-b9a3-27d4b97f0b77", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "# NODES\n", - "def route_input_message(state):\n", - " output = router_chain.invoke({\"input\":state[\"user_input\"]})\n", - " if \"language\" not in output: output[\"language\"] = \"English\"\n", - " output[\"query\"] = state[\"user_input\"]\n", - " return output\n", + "from climateqa.engine.chains.answer_chitchat import make_chitchat_chain\n", + "from climateqa.engine.chains.answer_ai_impact import make_ai_impact_chain\n", "\n", - "def translate_query(state):\n", - " user_input = state[\"user_input\"]\n", - " translation = translation_chain.invoke({\"input\":user_input})\n", - " return {\"query\":translation[\"translation\"]}\n", - " \n", - "def transform_query(state):\n", - " \n", - " new_state = {}\n", - " \n", - " # Decomposition\n", - " decomposition_output = decomposition_chain.invoke({\"input\":state[\"query\"]})\n", - " new_state.update(decomposition_output)\n", - " \n", - " # Query Analysis\n", - " questions = []\n", - " for question in new_state[\"questions\"]:\n", - " question_state = {\"question\":question}\n", - " analysis_output = rewriter_chain.invoke({\"input\":question})\n", - " question_state.update(analysis_output)\n", - " questions.append(question_state)\n", - " new_state[\"questions\"] = questions\n", - " \n", - " return new_state\n", - "\n", - "\n", - "async def answer_chitchat(state,config):\n", - " answer = await chitchat_chain.ainvoke({\"question\":state[\"user_input\"]},config)\n", - " return {\"answer\":answer}\n", - "\n", - "async def answer_ai_impact(state,config):\n", - " answer = await ai_impact_chain.ainvoke({\"question\":state[\"user_input\"]},config)\n", - " return {\"answer\":answer}\n", - " \n", - "def answer_rag(state):\n", - " answer = \"\\n\".join([x[\"question\"] for x in state[\"questions\"]])\n", - " return {\"answer\":answer}" + "chitchat_chain = make_chitchat_chain(llm)\n", + "ai_impact_chain = make_ai_impact_chain(llm)" ] }, { "cell_type": "code", - "execution_count": 132, - "id": "49473d76-fe32-4197-97ab-b806e6364adb", + "execution_count": 37, + "id": "586a4ead-6064-42e8-9f3c-8973b8d754c6", "metadata": { "tags": [] }, @@ -629,50 +781,34 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", - "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n" ] }, { - "data": { - "text/plain": [ - "{'query': \"I am not really sure what you mean. What role do cloud formations play in modulating the Earth's radiative balance, and how are they represented in current climate models?\",\n", - " 'questions': [{'question': \"What role do cloud formations play in modulating the Earth's radiative balance?\",\n", - " 'sources': ['IPCC']},\n", - " {'question': 'How are cloud formations represented in current climate models?',\n", - " 'sources': ['IPCC']}]}" - ] - }, - "execution_count": 132, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "L'impact environnemental de l'intelligence artificielle n'est pas couvert par les rapports du GIEC ou de l'IPBES. Cependant, il existe des recherches récentes sur ce sujet. Par exemple, vous pouvez consulter le travail de l'experte en IA et climat, Sasha Luccioni, qui a publié des articles sur l'empreinte carbone de l'IA, notamment sur le coût énergétique de l'inférence des modèles d'IA et sur l'estimation de l'empreinte carbone de l'entraînement de grands modèles de langage.\n", + "\n", + "Si vous souhaitez en savoir plus sur l'empreinte carbone de l'IA, je vous recommande de consulter les liens suivants :\n", + "- \"Power Hungry Processing: Watts Driving the Cost of AI Deployment?\" - https://arxiv.org/abs/2311.16863\n", + "- \"Counting Carbon: A Survey of Factors Influencing the Emissions of Machine Learning\" - https://arxiv.org/abs/2302.08476\n", + "- \"Estimating the Carbon Footprint of BLOOM, a 176B Parameter Language Model\" - https://arxiv.org/abs/2211.02001\n", + "\n", + "De plus, il existe des outils tels que CodeCarbon (https://github.com/mlco2/codecarbon) pour mesurer l'empreinte carbone de votre code, et Ecologits (https://ecologits.ai/) pour mesurer l'empreinte carbone de l'utilisation des API de grands modèles de langage. Ces ressources pourraient vous aider à mieux comprendre l'impact environnemental de l'IA. Si vous souhaitez en savoir plus sur l'empreinte carbone de ClimateQ&A, vous pouvez consulter cette page : https://climateqa.com/docs/carbon-footprint/." + ] } ], "source": [ - "state = {\n", - " \"query\":\"I am not really sure what you mean. What role do cloud formations play in modulating the Earth's radiative balance, and how are they represented in current climate models?\"\n", - "}\n", - "\n", - "output = transform_query(state)\n", - "state.update(output)\n", - "state" - ] - }, - { - "cell_type": "markdown", - "id": "1788fbb7-90df-41e5-88c4-83c5e59fe23c", - "metadata": { - "tags": [] - }, - "source": [ - "## Retriever & Reranker" + "async for event in ai_impact_chain.astream_events({\"question\":\"Mais c'est quoi l'empreinte carbone de cet outil, ça doit consommer pas mal ...\"},version = \"v1\"):\n", + " if event[\"event\"] == \"on_chain_stream\":\n", + " print(event[\"data\"][\"chunk\"],end = \"\")" ] }, { "cell_type": "code", - "execution_count": 158, - "id": "fbaaaa6b-2020-4713-93aa-371e34897f2d", + "execution_count": 38, + "id": "6f3a1c52-f92a-442b-9442-22415087da8b", "metadata": { "tags": [] }, @@ -681,44 +817,44 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:sentence_transformers.SentenceTransformer:Load pretrained SentenceTransformer: BAAI/bge-base-en-v1.5\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": [ - "Auto-updated model_name to rerank-english-v3.0 for API provider cohere\n", - "Loading APIRanker model rerank-english-v3.0\n", - "Loading embeddings model: BAAI/bge-base-en-v1.5\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\theo.alvesdacosta\\Anaconda3\\envs\\py310\\lib\\site-packages\\huggingface_hub\\file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n", - " warnings.warn(\n", - "INFO:sentence_transformers.SentenceTransformer:Use pytorch device_name: cpu\n" + "Je suis désolé, je ne peux répondre qu'aux questions liées à l'environnement et au climat. N'hésitez pas à poser une question sur ces sujets!" ] } ], "source": [ - "from rerankers import Reranker\n", - "# Specific flashrank model.\n", - "# reranker = Reranker('ms-marco-TinyBERT-L-2-v2', model_type='flashrank')\n", - "# reranker = Reranker('ms-marco-MiniLM-L-12-v2', model_type='flashrank')\n", - "# reranker = Reranker('cross-encoder/ms-marco-MiniLM-L-4-v2', model_type='cross-encoder')\n", - "# reranker = Reranker(\"mixedbread-ai/mxbai-rerank-xsmall-v1\", model_type='cross-encoder')\n", - "# reranker = Reranker(\"mixedbread-ai/mxbai-rerank-xsmall-v1\", model_type='cross-encoder')\n", - "reranker = Reranker(\"cohere\", lang='en', api_key = \"ZpTzfMXLsHfICzYrST2fPmk8ep9javfIUPWD2Ovw\")\n", - "\n", - "from climateqa.engine.vectorstore import get_pinecone_vectorstore\n", - "from climateqa.engine.embeddings import get_embeddings_function\n", - "from climateqa.engine.retriever import ClimateQARetriever\n", - "\n", - "embeddings_function = get_embeddings_function()\n", - "vectorstore = get_pinecone_vectorstore(embeddings_function)" + "async for event in chitchat_chain.astream_events({\"question\":\"Vas y blbablablala\"},version = \"v1\"):\n", + " if event[\"event\"] == \"on_chain_stream\":\n", + " print(event[\"data\"][\"chunk\"],end = \"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "0e380744-e03d-408d-9282-3fcb6925413b", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "from langchain.schema import Document\n", + "from langgraph.graph import END, StateGraph" + ] + }, + { + "cell_type": "markdown", + "id": "1788fbb7-90df-41e5-88c4-83c5e59fe23c", + "metadata": { + "tags": [] + }, + "source": [ + "## Retriever & Reranker" ] }, { @@ -1149,152 +1285,6 @@ " return {\"answer\":answer}" ] }, - { - "cell_type": "markdown", - "id": "80c16e2f-67c7-4029-94b9-ecda0a1bfe82", - "metadata": {}, - "source": [ - "## Create the nodes" - ] - }, - { - "cell_type": "code", - "execution_count": 125, - "id": "7746307d-fbe2-4184-a973-ad3ca065d160", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "# GRAPH\n", - "\n", - "\n", - "workflow = StateGraph(GraphState)\n", - "\n", - "# Define the nodes\n", - "workflow.add_node(\"route_input_message\", route_input_message) # categorize email\n", - "workflow.add_node(\"search\", search) # web search\n", - "workflow.add_node(\"transform_query\", transform_query) # web search\n", - "workflow.add_node(\"translate_query\", translate_query) # web search\n", - "workflow.add_node(\"answer_chitchat\", answer_chitchat)\n", - "workflow.add_node(\"answer_ai_impact\", answer_ai_impact)\n", - "workflow.add_node(\"retrieve_documents\",retrieve_documents)\n", - "workflow.add_node(\"answer_rag\",answer_rag)" - ] - }, - { - "cell_type": "markdown", - "id": "6e3595a1-c055-4313-9166-99cb20ddde87", - "metadata": {}, - "source": [ - "## Create the edges" - ] - }, - { - "cell_type": "code", - "execution_count": 126, - "id": "d0bbf204-569a-467e-b83c-90bcb7eaef04", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "# CONDITIONAL EDGES\n", - "\n", - "def route_entry_point(state):\n", - " intent = state[\"intent\"]\n", - " if intent in [\"chitchat\",\"esg\"]:\n", - " return \"answer_chitchat\"\n", - " elif intent == \"ai_impact\":\n", - " return \"answer_ai_impact\"\n", - " else:\n", - " # Search route\n", - " return \"search\"\n", - " \n", - "def route_translation(state):\n", - " if state[\"language\"].lower() == \"english\":\n", - " return \"transform_query\"\n", - " else:\n", - " return \"translate_query\"" - ] - }, - { - "cell_type": "code", - "execution_count": 127, - "id": "63dff57d-c3a6-46a3-aeb8-d973733d0424", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "workflow.set_entry_point(\"route_input_message\")\n", - "\n", - "def make_id_dict(values):\n", - " return {k:k for k in values}\n", - "\n", - "workflow.add_conditional_edges(\n", - " \"route_input_message\",\n", - " route_entry_point,\n", - " make_id_dict([\"answer_chitchat\",\"answer_ai_impact\",\"search\"])\n", - ")\n", - "\n", - "workflow.add_conditional_edges(\n", - " \"search\",\n", - " route_translation,\n", - " make_id_dict([\"translate_query\",\"transform_query\"])\n", - ")\n", - "\n", - "workflow.add_edge(\"translate_query\", \"transform_query\")\n", - "workflow.add_edge(\"transform_query\", \"retrieve_documents\")\n", - "workflow.add_edge(\"retrieve_documents\", \"answer_rag\")\n", - "workflow.add_edge(\"answer_rag\", END)\n", - "workflow.add_edge(\"answer_chitchat\", END)\n", - "workflow.add_edge(\"answer_ai_impact\", END)" - ] - }, - { - "cell_type": "markdown", - "id": "cef52a0b-7698-4481-bb5f-23585d8e426a", - "metadata": {}, - "source": [ - "## Compile and visualize the graph" - ] - }, - { - "cell_type": "code", - "execution_count": 128, - "id": "fa093ca6-59d3-4682-9af7-0b272bc1af86", - "metadata": { - "tags": [] - }, - "outputs": [ - { - "data": { - "image/jpeg": "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", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# Compile\n", - "app = workflow.compile()\n", - "\n", - "from langchain_core.runnables.graph import CurveStyle, NodeColors, MermaidDrawMethod\n", - "from IPython.display import display, HTML, Image\n", - "\n", - "display(\n", - " Image(\n", - " app.get_graph(xray = True).draw_mermaid_png(\n", - " draw_method=MermaidDrawMethod.API,\n", - " )\n", - " )\n", - ")" - ] - }, { "cell_type": "markdown", "id": "827873ee-f74d-4ed6-a4f8-fc8a3ef6aea8", @@ -1305,14 +1295,6 @@ "## Test the graph" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "7578ffac-0bbd-425c-aeb1-e5a7c190f558", - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": 105, @@ -1445,900 +1427,13 @@ " print(event)\n", " print(\"\")" ] - }, - { - "cell_type": "markdown", - "id": "6641ed5d", - "metadata": {}, - "source": [ - "# Retriever" - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "id": "e7b74a25", - "metadata": { - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loading embeddings model: BAAI/bge-base-en-v1.5\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "C:\\Users\\theo.alvesdacosta\\Anaconda3\\envs\\py310\\lib\\site-packages\\huggingface_hub\\file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n", - " warnings.warn(\n", - "C:\\Users\\theo.alvesdacosta\\Anaconda3\\envs\\py310\\lib\\site-packages\\huggingface_hub\\file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "from climateqa.engine.vectorstore import get_pinecone_vectorstore\n", - "from climateqa.engine.embeddings import get_embeddings_function\n", - "from climateqa.engine.retriever import ClimateQARetriever\n", - "\n", - "embeddings_function = get_embeddings_function()\n", - "vectorstore = get_pinecone_vectorstore(embeddings_function)\n", - "# retriever = ClimateQARetriever(vectorstore=vectorstore,\n", - "# sources = [\"IPCC\"],\n", - "# # reports = ias_reports,\n", - "# min_size = 200,\n", - "# k_summary = 5,k_total = 100,\n", - "# threshold = 0.5)" - ] - }, - { - "cell_type": "code", - "execution_count": 282, - "id": "f1fe3448", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "# query = \"What is the impact of El Nino on climate change ?\"\n", - "# query = \"Are human activities causing global warming?\"\n", - "# query = \"What does Morrison argue about indegenous knowledge (IK) and local knowledge (LK) on internal migration ?\"\n", - "query = \"What does Morrison argue about IK and LK on internal migration ?\"" - ] - }, - { - "cell_type": "code", - "execution_count": 283, - "id": "c1684d42", - "metadata": { - "tags": [] - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "7b7b78a45db645b6a52c66c8298683bf", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "Batches: 0%| | 0/1 [00:00 Introduction '}, 'index': 43, 'relevance_score': 0.05051767}, {'document': {'text': \"FAQ 10.3 (continued)\\nIn climate-sensitive livelihoods, an integrated approach informed by science that examines multiple stressors, along \\r\\nwith IKLK, appears to be of immense value. For instance, in building farmers' resilience, enhancing CCA, ensuring \\r\\ncross-cultural communication and promoting local skills, Indigenous People's intuitive thinking processes and \\r\\ngeographic knowledge of remote areas are very important.\\nThere is also a widespread recognition that IKLK are important in ensuring successful ecosystem-based adaptation \\r\\n(EbA). However, this recognition requires more practical application and translation into IKLK-driven EbA projects. \\r\\nFor instance, in the Coral Triangle region, creating historical timelines and mapping seasonal calendars can help to \\r\\ncapture IKLK while also feeding this information into climate science and climate adaptation planning. Identifying \\r\\nindigenous crop species for agriculture by using IKLK is already identified as an important way to localise climate \\r\\nadaptation: an example is Bali's vital contribution of moral economies to food systems which have long built \\r\\nresilience among groups of communities in terms of food security and sovereignty, even with the challenges faced \\r\\ndue to modernising of local food systems.\"}, 'index': 47, 'relevance_score': 0.05033063}, {'document': {'text': 'contextualisation is greatly needed. IK and LK will shape perceptions \\r\\nwhich are vital to managing climate risk in day-to-day activities and \\r\\nlonger-term actions.\\n 1.3.2.3 Indigenous Knowledge and Local Knowledge '}, 'index': 48, 'relevance_score': 0.04822634}, {'document': {'text': 'et al., 2020). There are examples of integrating IK and LK into resource \\r\\nmanagement systems and school curricula and in local institutions with \\r\\nexisting decision-making process to strengthen their capacity to address'}, 'index': 31, 'relevance_score': 0.03890198}, {'document': {'text': 'Humans create, use, and adapt knowledge systems to interact with \\r\\ntheir environment (Agrawal, 1995; Escobar, 2001; Sillitoe, 2007), and \\r\\nto observe and respond to change (Huntington, 2000; Gearheard et al., \\r\\n2013; Maldonado et al., 2016; Yeh, 2016). Indigenous knowledge \\r\\n(IK) refers to the understandings, skills, and philosophies developed \\r\\nby societies with long histories of interaction with their natural \\r\\nsurroundings. It is passed on from generation to generation, flexible, \\r\\nand adaptive in changing conditions, and increasingly challenged \\r\\nin the context of contemporary climate change. Local knowledge \\r\\n(LK) is what non-Indigenous communities, both rural and urban, \\r\\nuse on a daily and lifelong basis. It is multi-generational, embedded \\r\\nin community practices and cultures and adaptive to changing \\r\\nconditions (FAO, 2018). Each chapter of SROCC cites examples of IK \\r\\nand LK related to ocean and cryosphere change.'}, 'index': 40, 'relevance_score': 0.026205413}, {'document': {'text': 'In some specific contexts, climate change will also imply no-analogue \\r\\nchanges, such as rapid ice-melt and changing conditions in the Arctic \\r\\nthat have no precedent in the modern era, and could thus limit the \\r\\nrelevance of IK and LK in efforts to address significantly different \\r\\ncircumstances. Except in these specific situations, the literature \\n373373'}, 'index': 19, 'relevance_score': 0.020685459}, {'document': {'text': 'Observations: IK and LK observations document glacier and sea ice dynamics, permafrost dynamics, coastal processes, etc. \\r\\n(Sections 2.3.2.2.2, 2.5, 3.2.2, 3.4.1.1, 3.4.1.1, 3.4.1.2, 4.3.2.4.2, 5.2.3 and Box 2.4), and how they interact with social-cultural factors \\r\\n(West and Hovelsrud, 2010). Researchers have begun documenting IK and LK observations only recently (Sections 2.3.1.1, 3.2, 3.4, \\r\\n3.5, Box 4.4, 5.4.2.2.1).'}, 'index': 17, 'relevance_score': 0.01665704}, {'document': {'text': \"The understandings, skills and philosophies developed by societies \\r\\nwith long histories of interaction with their natural surroundings. \\r\\nFor many indigenous peoples, IK informs decision making about \\r\\nfundamental aspects of life, from day-to-day activities to longer term \\r\\nactions. This knowledge is integral to cultural complexes, which also \\r\\nencompass language, systems of classification, resource use practices, \\r\\nsocial interactions, values, ritual and spirituality. These distinctive \\r\\nways of knowing are important facets of the world's cultural diversity \\r\\n(UNESCO, 2018). See also Local knowledge (LK).\\n Indigenous knowledge (IK) \\n\\nIndustrial revolution \\nA period of rapid industrial growth with far-reaching social and eco\\x02nomic consequences, beginning in Britain during the second half of \\n Industrial revolution \\n\\nJustice Justice\\n\\x0c\\nis concerned with ensuring that people get what is due to them setting \\r\\nout the moral or legal principles of fairness and equity in the way \\r\\npeople are treated, often based on the ethics and values of society. \\n Justice Justice\\n\\x0c \\n\\nInternal variability \\nSee Climate variability.\"}, 'index': 46, 'relevance_score': 0.0062170783}, {'document': {'text': 'IKLK are crucial determinants of adaptation in agriculture for many \\r\\ncommunities globally. Indigenous Peoples have intimate knowledge \\r\\nabout their surrounding environment and are attentive observers of \\r\\nclimate changes. As a result, they are often best placed to enact successful \\r\\nadaptation measures, including shifting to different crops, changing \\r\\ncropping times or returning to traditional varieties (Mugambiwa, 2018; \\r\\nKamara et al., 2019; Nelson et al., 2019) (Section 4.8.4).'}, 'index': 36, 'relevance_score': 0.006168995}, {'document': {'text': 'Box 9.9 (continued)\\nMigration is a common response (Sitati et al., 2021) and may be an effective adaptive response to climate-induced conflict. Bosetti et al. \\r\\n(2018) find that countries with high emigration propensity display lower sensitivity of conflict to temperature, with no evidence of \\r\\ndetrimental impacts on the destination countries. IK has also been applied to enable adaptation amidst conflict, for example, in Libya, to \\r\\ndeal with erratic rainfall (Biagetti, 2017).'}, 'index': 20, 'relevance_score': 0.0056200363}, {'document': {'text': 'Internal migration, displacement and urbanisation\\nClimate change can have opposing influences on migration flows. Deteriorating economic conditions caused by climate hazards can \\r\\nencourage out-migration (Wiederkehr et al., 2018). However, these same economic losses undermine household resources needed to \\r\\nmigrate (Cattaneo and Peri, 2016). The net effect of these two forces leads to mixed results across study methodologies and contexts \\r\\n(Carleton and Hsiang, 2016; Borderon et al., 2019; Cattaneo et al., 2019; Hoffmann et al., 2020).'}, 'index': 9, 'relevance_score': 0.0040385914}, {'document': {'text': 'Small-scale climate-induced displacement within Europe occurs in the \\r\\naftermath of flood and drought disasters and over short distances \\r\\n(Cattaneo et al., 2019). The unequal distribution of future climate risks \\r\\n(Section 13.1) and adaptive capacity across European regions may \\r\\nincrease pressure for internal migration (Williges et al., 2017; Forzieri \\r\\net al., 2018). For instance, projected SLR (Section 13.2.1; Cross-Chapter \\r\\nBox SLR in Chapter 3) may result in planned relocation of coastal \\r\\nsettlements and inland migration in the UK, the Netherlands and the \\r\\nnorthern Mediterranean (Mulligan et al., 2014; Antonioli et al., 2017). \\r\\nThe number of people living in areas at risk in Europe is projected to \\r\\nincrease with future SSPs increasing exposure (Merkens et al., 2016; \\r\\nByers et al., 2018; Harrison et al., 2019).\\nA number of livelihoods maintaining unique cultures in Europe are'}, 'index': 44, 'relevance_score': 0.0019877742}, {'document': {'text': 'agreement that slow-onset climatic events (such as droughts and sea \\r\\nlevel rise) lead to long-distance internal displacement, more so than \\r\\nlocal or international migration (Kaczan and Orgill-Meyer, 2020; Silja, \\r\\n2017), while sea level rise is expected to lead to the displacement of \\r\\ncommunities along coastal zones, such as in Florida in the USA (Hauer, \\r\\n2017; Butler, Deyle and Mutnansky, 2016).'}, 'index': 24, 'relevance_score': 0.0013670257}, {'document': {'text': 'building from the framework outlined in SROCC (Crate et al., 2019), \\r\\nscientific, Indigenous knowledge (IK) and local knowledge (LK) systems \\r\\nare included in this assessment. Importantly, Indigenous authors led \\r\\nthe assessment of the impacts, adaptation and governance of climate \\r\\nchange for Indigenous Peoples, which is an important advance since \\r\\nAR5 and represents an important step towards Indigenous self\\x02determination in international assessment processes (Ford et al., 2012; \\r\\nFord et al., 2016; Hill et al., 2020).'}, 'index': 34, 'relevance_score': 0.00090044667}, {'document': {'text': 'Climate-related internal migration has been associated with the \\r\\nexperience of violence by migrants, the prolongation of conflicts in migrant \\r\\nreceiving areas and civil unrest in urban areas (medium agreement, low \\r\\nevidence). Research points to the potential for conflict to serve as an \\r\\nintervening factor between climate and migration. However, the nature \\r\\nof the relationship is diverse and context specific. For example, displaced \\r\\npeople and migrants may be associated with heightened social tensions \\n10871087'}, 'index': 22, 'relevance_score': 0.0006986757}, {'document': {'text': 'IK systems are diverse among and within Arctic Indigenous Peoples, and reflect deep and rich knowledge that situates and contextualises \\r\\nvalues, traditions, governance and practical ways of adapting to the ecosystem over millennia (Raymond-Yakoubian et al., 2017; Brattland \\r\\nand Mustonen, 2018). IK is a valuable source of knowledge; a method to detect change, evaluate risk and inform adaptation approaches; \\r\\nand a cultural ecological service (Brattland and Mustonen, 2018; Crate et al., 2019; Meredith et al., 2019) that is critical for decision \\r\\nmaking (Mustonen and Mustonen, 2016; Huntington et al., 2017). For instance, Kalaallit knowledge in Greenland has been used to detect \\r\\nand attribute long-term (over 50 years) marine change that reaches beyond scientific instrumental data (Mustonen et al., 2018b).'}, 'index': 27, 'relevance_score': 0.0006719278}, {'document': {'text': 'There is medium evidence (low agreement) about the effectiveness of \\r\\nmigration and planned relocation in reducing risk exposure. Evidence \\r\\non climate-driven internal migration shows that moving has mixed \\r\\noutcomes on risk reduction and adaptive capacity. On one hand, \\r\\nmigration can improve adaptive capacity by increasing incomes and \\r\\nremittances as well as diversifying livelihoods (Maharjan et al., 2020); \\r\\non the other, migration can expose migrants to new risks. For example, \\r\\nin Bangalore (India), migrants often face high exposure to localised \\r\\nflooding, insecure and unsafe livelihoods, and social exclusion, which \\r\\ncollectively shape their vulnerability (Michael et al., 2018; Singh and \\r\\nBasu, 2020). In greater Manila (the Philippines) and Chennai (India), \\r\\nplanned relocations to reduce disaster risk have often exacerbated \\r\\nvulnerability, due to relocation sites being in environmentally sensitive \\r\\nareas, inadequate livelihood opportunities and exposure to new risks \\r\\n(Meerow, 2017; Ajibade, 2019; Jain et al., 2021).'}, 'index': 29, 'relevance_score': 0.00036829791}, {'document': {'text': 'Migration, displacement and resettlement each play a foundational \\r\\nrole in differentiated vulnerability (see Cross-Chapter Box MIGRATE \\r\\nin Chapter 7). The relationship between migration and vulnerability \\r\\nis complex (robust evidence, high agreement), and is the first of the \\r\\nthree components discussed within this section. Climate change, as a \\r\\npush factor, is only one among multiple drivers (political, economic and \\r\\nsocial) related to environmental migration (Heslin et al., 2019; Planitz, \\r\\n2019; Luetz and Merson, 2019). There is consensus that it is difficult \\r\\nto pin climate change as the sole driver of internal (within national \\r\\nboundaries) rural to urban migration decisions owing to, among other \\r\\nfactors, the disconnect between national and international policies \\r\\n(Wilkinson et al., 2016), the lack of unifying theoretical frameworks \\r\\nand the complex interactions between climatic and other drivers \\r\\n(social, demographic, economic and political) at multiple scales'}, 'index': 26, 'relevance_score': 0.0001535624}, {'document': {'text': \"be designed to anticipate and address climate-induced internal mobility \\r\\n(Schwan and Yu, 2017). For instance, it does not offer a solution for \\r\\nmaintaining Indigenous cultures which are often strongly affected by, \\r\\nor even disrupted by, climate change (Olsson, 2014). Hence, an effective \\r\\napproach needs to combine different policy instruments to support \\r\\nprotection, adaptation and migration (O'Brien et al., 2018).\"}, 'index': 11, 'relevance_score': 0.00013032975}, {'document': {'text': 'Gemenne, F. and J. Blocher, 2017: How can migration serve adaptation to \\r\\nclimate change? Challenges to fleshing out a policy ideal. Geogr. J., 183(4), \\r\\n336-347, doi:10.1111/geoj.12205.\\nGemenne, F. and P. Brucker, 2015: From the guiding principles on internal \\r\\ndisplacement to the Nansen initiative: What the governance of'}, 'index': 13, 'relevance_score': 5.9209164e-05}, {'document': {'text': 'facilitate adaptive migration in the region in response to natural \\r\\nhazards including SLR (Burson and Bedford, 2015). There have been \\r\\ncases presented at the Immigration and Protection Tribunal of New \\r\\nZealand testing refugee claims associated with climate change from \\r\\nTuvaluan and i-Kiribati applicants, both citing environmental change \\r\\non their home islands as grounds for remaining in New Zealand. \\r\\nOne applicant was successful in the quest to remain in New Zealand \\r\\non humanitarian grounds, but not on the grounds of refugee status \\r\\n(Farbotko et al., 2016).\\n 4.4.2.6.6 Governance of retreat '}, 'index': 42, 'relevance_score': 4.5753914e-05}, {'document': {'text': 'while these traditional economies have undergone rapid change due \\r\\nto non-climate drivers, their land uses, observational frameworks and \\r\\ncultural matrixes remain of high importance in the context of climate \\r\\nchange. Endemic responses (self-agency from within the culture) \\r\\nand Indigenous governance enable adaptation to the rapid and \\r\\naccelerating changes under way (Mustonen et al., 2018a). Therefore, \\r\\ncommunity-based monitoring and inclusion of IK in dialogue with \\r\\nscience has been an effective mechanism to detect and respond to \\r\\nclimate change.'}, 'index': 45, 'relevance_score': 3.734357e-05}, {'document': {'text': \"migration (Ober, 2019). Importantly, there is low agreement on projected numbers (see Boas et al., 2019) with uncertainties around how \\r\\nlocal policies and individual behaviours will shape migration choices. Even in high-risk places, people might choose to stay or be unable \\r\\nto move, resulting in 'trapped' populations (Zickgraf, 2019; Ayeb-Karlsson et al., 2020). There is currently inadequate evidence to ascertain \\r\\nthe nature and numbers of trapped populations currently or in the future.\"}, 'index': 28, 'relevance_score': 1.9988918e-05}, {'document': {'text': 'Key messages on migration in this report\\r\\nMigration is a universal strategy that individuals and households undertake to improve well-being and livelihoods in response to \\r\\neconomic uncertainty, political instability and environmental change (high confidence). Migration, displacement and immobility that \\r\\noccur in response to climate hazards are assessed in general in Chapter 7, with specific sectoral and regional dimensions of climate\\x02related migration assessed in sectoral and regional Chapters 5 to 15 (Table MIGRATE.1 in Chapter 7) and involuntary immobility and \\r\\ndisplacement being identified as representative key risks in Chapter 16 (Sections 16.2.3.8, 16.5.2.3.8). Since AR5 there has been a \\r\\nconsiderable expansion in research on climate-migration linkages, with five key messages from the present assessment report warranting \\r\\nemphasis.'}, 'index': 16, 'relevance_score': 1.76402e-05}, {'document': {'text': 'Migration has been highly politicised, and climate-related immigration has been conceptualised in public and media discourse as a \\r\\npotential threat which limits adaptation feasibility (Telford, 2018; Honarmand Ebrahimi and Ossewaarde, 2019; McLeman, 2019; Wiegel \\r\\net al., 2019; Hauer et al., 2020). Existing international agreements provide potential frameworks for climate-related migration to benefit \\r\\nadaptive capacity and sustainable development (Warner, 2018; Kalin, 2019). However, agreements to facilitate temporary or circular \\r\\nmigration and remittances are often informal and limited in scope (Webber and Donner, 2017b; Margaret and Matias, 2020) and migrant \\r\\nreceiving areas, particularly urban areas, can be better assisted to prepare for population change (Deshpande et al., 2019; Adger et al., \\r\\n2020; Hauer et al., 2020). Policies and planning are lacking that would ensure that positive migration outcomes for sending and receiving'}, 'index': 39, 'relevance_score': 1.5567455e-05}, {'document': {'text': 'A.5.7 Changes in climate can amplify environmentally induced migration both within countries and across borders (medium \\r\\nconfidence), reflecting multiple drivers of mobility and available adaptation measures (high confidence). Extreme weather \\r\\nand climate or slow-onset events may lead to increased displacement, disrupted food chains, threatened livelihoods (high \\r\\nconfidence), and contribute to exacerbated stresses for conflict (medium confidence). {3.4.2, 4.7.3, 5.2.3, 5.2.4, 5.2.5, 5.8.2, \\r\\n7.2.2, 7.3.1}'}, 'index': 4, 'relevance_score': 1.4971084e-05}, {'document': {'text': \"C.2.12 Increasing adaptive capacities minimises the negative impacts of climate-related displacement and involuntary migration for migrants \\r\\nand sending and receiving areas (high confidence). This improves the degree of choice under which migration decisions are made, \\r\\nensuring safe and orderly movements of people within and between countries (high confidence). Some development reduces underlying \\r\\nvulnerabilities associated with conflict, and adaptation contributes by reducing the impacts of climate change on climate sensitive \\r\\ndrivers of conflict (high confidence). Risks to peace are reduced, for example, by supporting people in climate-sensitive economic \\r\\nactivities (medium confidence) and advancing women's empowerment (high confidence). {7.4, Box 9.8, Box 10.2, 12.5, CCB FEASIB, \\r\\nCCB MIGRATE}\\nSPMSPM\\n\\x0c\\n45 The term 'response' is used here instead of adaptation because some responses, such as retreat, may or may not be considered to be adaptation.\\n2525\"}, 'index': 3, 'relevance_score': 1.2805474e-05}, {'document': {'text': 'For cross-cutting options, the main knowledge gaps identified are socio-cultural acceptability for social safety nets. While the evidence on \\r\\nresettlement, relocation and migration is large and growing, there is disagreement on several indicators, marking the need for more evidence \\r\\nsynthesis. Geophysical feasibility for resettlement, relocation and migration has limited evidence, but is an emerging area of research.\\nIn general, throughout most of the options, there is significantly less literature from the regions of Central and South America, and West \\r\\nand Central Asia, as compared with other world regions.'}, 'index': 30, 'relevance_score': 8.8011e-06}, {'document': {'text': \"The success of climate-related migration as an adaptive response is \\r\\nshaped by how migrants are perceived and how policy discussions \\r\\nare framed (high agreement, medium evidence). The possibility that \\r\\nclimate change may enlarge international migrant flows has in some \\r\\npolicy discussions been interpreted as a potential threat to the security \\r\\nof destination countries (Sow et al., 2016; Telford, 2018), but there is \\r\\nlittle empirical evidence in peer-reviewed literature assessed for this \\r\\nchapter of climate migrants posing significant threats to security at \\r\\nstate or international levels. There is also an inconsistency between \\r\\nframing in some policy discussions of undocumented migration \\r\\n(climate-related and other forms) as being 'illegal' and the objectives \\r\\nof the Global Compact on Safe, Orderly and Regular Migration and \\r\\nthe Global Compact on Refugees (McLeman, 2019). Although climate\\x02related migrants are not officially recognised as refugees under the \\r\\n1951 Convention relating to the Status of Refugees, terms such as \\r\\n'climate refugees' are common in popular media and some policy\"}, 'index': 23, 'relevance_score': 8.267873e-06}, {'document': {'text': 'Figure SPM.2 (continued): Migration refers to an increase or decrease in net migration, not to beneficial/adverse value. Impacts on tourism refer \\r\\nto the operating conditions for the tourism sector. Cultural services include cultural identity, sense of home, and spiritual, intrinsic and aesthetic \\r\\nvalues, as well as contributions from glacier archaeology. The underlying information is given for land regions in tables SM2.6, SM2.7, SM2.8, SM3.8, \\r\\nSM3.9, and SM3.10, and for ocean regions in tables SM5.10, SM5.11, SM3.8, SM3.9, and SM3.10. {2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.3.6, 2.3.7,'}, 'index': 1, 'relevance_score': 5.2144983e-06}, {'document': {'text': '2 including Hindu Kush, Karakoram, Hengduan Shan, and Tien Shan; 3\\r\\n tropical Andes, Mexico, eastern Africa, and Indonesia; 4 includes Finland, Norway, and Sweden; 5 includes adjacent areas in Yukon Territory and British Columbia, Canada; 6 Migration refers to an \\r\\n increase or decrease in net migration, not to beneficial/adverse value.'}, 'index': 0, 'relevance_score': 5.173919e-06}, {'document': {'text': 'Singh, C. and R. Basu, 2020: Moving in and out of vulnerability: Interrogating \\r\\nmigration as an adaptation strategy along a rural-urban continuum in India. \\r\\nGeogr J, 186(1), 87-102, doi:10.1111/geoj.12328.\\n25332533'}, 'index': 37, 'relevance_score': 3.7853251e-06}, {'document': {'text': 'AR5 (Adger and Pulhin, 2014) found links between climate change \\r\\nand migration in general (medium evidence, high agreement), but \\r\\nprovided no assessment of climate-induced hydrological changes and \\r\\nmigration specifically. Likewise, SRCCL (Mirzabaev et al., 2019; Olsson \\r\\net al., 2020) and SROCC (Hock et al., 2019b) noted that migration is \\r\\ncomplex and that migration decisions and outcomes are influenced \\r\\nby a combination of social, demographic, economic, environmental \\r\\nand political factors and contexts (see Cross-Chapter Box MIGRATE in \\r\\nChapter 7). This chapter confirms this evidence, focusing on climate\\x02induced hydrological changes.'}, 'index': 35, 'relevance_score': 2.769406e-06}, {'document': {'text': 'A.7.3 Arctic residents, especially Indigenous peoples, have adjusted the timing of activities to respond \\r\\nto changes in seasonality and safety of land, ice, and snow travel conditions. Municipalities and industry are beginning \\r\\nto address infrastructure failures associated with flooding and thawing permafrost and some coastal communities \\r\\nhave planned for relocation (high confidence). Limited funding, skills, capacity, and institutional support to engage \\r\\nmeaningfully in planning processes have challenged adaptation (high confidence). {3.5.2, 3.5.4, Cross-Chapter Box 9}'}, 'index': 2, 'relevance_score': 4.0525455e-07}], 'meta': {'api_version': {'version': '1'}, 'billed_units': {'search_units': 1}}}\n", - "CPU times: total: 391 ms\n", - "Wall time: 790 ms\n" - ] - } - ], - "source": [ - "%%time\n", - "results = ranker.rank(query=query, docs=input_docs)" - ] - }, - { - "cell_type": "code", - "execution_count": 291, - "id": "3b758eaf-631e-4d8b-9069-7bc376b67bec", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "from scipy.special import expit, logit" - ] - }, - { - "cell_type": "code", - "execution_count": 293, - "id": "7e485d5c-3edc-453a-a2c6-a5a6d8401944", - "metadata": { - "tags": [] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Attention to IK and LK in understanding global change is relatively recent, but important (high confidence). For instance, in 1980, \n", - "Alaskan Inuit formed the Alaska Eskimo Whaling Commission in response to the International Whaling Commission's science that \n", - "underestimated the Bowhead whale population and, in 1977, banned whaling as a result (Huntington, 1992). The Commission \n", - "facilitated an improved population count using a study design based on IK, which indicated a harvestable population (Huntington, \n", - "2000). There are various approaches for utilising multiple knowledge systems. For example, the Mi'kmaw Elders' concept of Two Eyed \n", - "Seeing: which is 'learning to see from one eye with the strengths of Indigenous knowledges, and from the other eye with the strengths \n", - "of Western [scientific] knowledges, and to use both together, for the benefit of all' (Bartlett et al., 2012), to preserve the distinctiveness \n", - "of each, while allowing for fuller understandings and actions (Bartlett et al., 2012: 334).\n", - "Knowledge Co-production\n", - ".. DOC - 38 VS 0\n", - ".. SCORE - 0.31795546 VS 0.559207737\n", - "--------------------------------------------------\n", - "Both IK and LK are increasingly used in climate change research \n", - "and policy efforts to engage affected communities to facilitate \n", - "site-specific understandings of, and responses to, the local effects of \n", - "climate change (Hiwasaki et al., 2014; Hou et al., 2017; Mekonnen \n", - "et al., 2017). IK and LK enrich CRDPs particularly by engaging \n", - "multiple stakeholders and the diversity of socioeconomic, cultural \n", - "and linguistic contexts of populations affected by changes in the \n", - "ocean and cryosphere (Cross-Chapter Box 4 in Chapter 1).\n", - ".. DOC - 6 VS 1\n", - ".. SCORE - 0.20402454 VS 0.598627627\n", - "--------------------------------------------------\n", - "Knowledge Holders' Recommendations for Utilising IK and LK in Assessment Reports\n", - "Perspectives from the Himalayas: IK and LK holders in the Himalayas have conducted long-term systematic observations in these remote \n", - "areas for centuries. Contemporary IK details change in phenology, weather patterns, and flora and fauna species, which enriches scientific \n", - "knowledge of glacial retreat and potential glacial lake outbursts (Sherpa, 2014). The scientific community can close many knowledge gaps \n", - "by engaging IK and LK holders as counterparts. Suggestions towards this objective are to work with affected communities to elicit their \n", - "knowledge of change, especially IK and LK holders with more specialised knowledge (farmers, herders, mountain guides, etc.), and use \n", - "location- and culture-specific approaches to share scientific knowledge and use it with IK and LK.\n", - ".. DOC - 5 VS 2\n", - ".. SCORE - 0.18111832 VS 0.604172826\n", - "--------------------------------------------------\n", - "IK and LK stand on their own, and also enrich and complement each \n", - "other and scientific knowledge. For example, Australian Aboriginal \n", - "groups' Indigenous oral history provides empirical corroboration of \n", - "the sea level rise 7,000 years ago (Nunn and Reid, 2016), and their \n", - "seasonal calendars direct hunting, fishing, planting, conservation and \n", - "detection of unusual changes today (Green et al., 2010). LK works in \n", - "tandem with scientific knowledge, for example, as coastal Australian \n", - "communities consider the impacts and trade-offs of sea level rise \n", - "(O'Neill and Graham, 2016).\n", - "1.8.3 The Role of Knowledge in People's Responses \n", - "to Climate, Ocean and Cryosphere Change\n", - ".. DOC - 25 VS 3\n", - ".. SCORE - 0.16451646 VS 0.5696823\n", - "--------------------------------------------------\n", - "use of IK and LK to be protected and validated by Indigenous Peoples \n", - "themselves and their inclusion as active participants in the assessment \n", - "(Klenk et al., 2017). Paying special attention to the mechanism \n", - "whereby some forms of knowledge have been excluded in previous \n", - "reports--such as the use of technical knowledge or acronyms, or the \n", - "deployment of discipline-specific validation mechanism--is a first step\n", - ".. DOC - 14 VS 4\n", - ".. SCORE - 0.16344544 VS 0.581110835\n", - "--------------------------------------------------\n", - "Responses: Either IK or LK alone (Yager, 2015), or used with scientific knowledge (Nusser and Schmidt, 2017) inform responses \n", - "(Sections 2.3.1.3.2, 2.3.2.2.2, 3.5.2, 3.5.4, 4.4.2, Box 4.4, 5.5.2, 6.8.4, 6.9.2). Utilising multiple knowledge systems requires continued \n", - "development, accumulation, and transmission of IK, LK and scientific knowledge towards understanding the ecological and cultural\n", - "context of diverse peoples (Crate and Fedorov, 2013; Jones et al., 2016), resulting in the incorporation of relevant priorities and \n", - "contexts into adaptation responses (Sections 3.5.2, 3.5.4, 4.4.4, 5.5.2, 6.8.4, 6.9.2, Box 2.3).\n", - ".. DOC - 15 VS 5\n", - ".. SCORE - 0.1603975 VS 0.579450667\n", - "--------------------------------------------------\n", - "Scientific knowledge, IK and LK can complement one another by engaging both quantitative data and qualitative information, \n", - "including people's observations, responses and values (Huntington, 2000; Crate and Fedorov, 2013; Burnham et al., 2016; Figure CB4.1). \n", - "However, this process of knowledge co-production is complex (Jasanoff, 2004) and IK and LK possess uncertainties of a different\n", - "nature from those of scientific knowledge (Kahneman and Egan, 2011), often resulting in the dominance of scientific knowledge over \n", - "IK and LK in policy, governance and management (Mistry and Berardi, 2016). Working across disciplines (interdisciplinarity; Strang, \n", - "2009), and/or engaging multiple stakeholders (transdisciplinarity; Klenk and Meehan, 2015; Crate et al., 2017), are approaches used \n", - "to bridge knowledge systems. The use of all knowledge relevant to a specific challenge can involve approaches such as: scenario\n", - ".. DOC - 12 VS 6\n", - ".. SCORE - 0.15090263 VS 0.584264696\n", - "--------------------------------------------------\n", - "While scientific knowledge is vital, IK and LK are also necessary for \n", - "understanding and acting effectively on climate risk (IPCC, 2014a; IPCC, \n", - "2019b, SROCC Chapter 1; see also Section 2.4). Indigenous knowledge\n", - "refers to the understandings, skills and philosophies developed by \n", - "societies with long histories of interaction with their natural surroundings \n", - "(IPCC, 2019a). Local knowledge is defined as the understandings and \n", - "skills developed by individuals and populations, specific to the places \n", - "where they live (IPCC, 2019a). These definitions relate to the debates on \n", - "the world's cultural diversity (UNESCO, 2018a), which are increasingly \n", - "connected to climate change debates (UNESCO, 2018b). However, there \n", - "is agreement that, in the same way that there is not a unique definition \n", - "of Indigenous Peoples because it depends on self-determination (see \n", - "below), there is not a single definition of neither IK and LK. Therefore,\n", - ".. DOC - 18 VS 7\n", - ".. SCORE - 0.13730095 VS 0.576038122\n", - "--------------------------------------------------\n", - "Framing and Context of the Report\n", - "natural systems (Wohling, 2009). Some forms of IK and LK are \n", - "also not amenable to being captured in peer-reviewed articles or \n", - "published reports, and efforts to translate IK and LK into qualitative \n", - "or quantitative data may mute the multidimensional, dynamic and \n", - "nuanced features that give IK and LK meaning (DeWalt, 1994; \n", - "Roncoli et al., 2009; Goldman and Lovell, 2017). Nonetheless, efforts \n", - "to collaborate with IK and LK knowledge holders (Baptiste et al., \n", - "2017; Karki et al., 2017; Lavrillier and Gabyshev, 2017; Roue et al., \n", - "2017; David-Chavez and Gavin, 2018) and to systematically assess \n", - "published IK and LK literature in parallel with scientific knowledge \n", - "result in increasingly effective usage of the multiple knowledge \n", - "systems to better characterise and address ocean and cryosphere\n", - ".. DOC - 32 VS 8\n", - ".. SCORE - 0.13523208 VS 0.563068\n", - "--------------------------------------------------\n", - "Cavedon-Capdeville, 2017; Amar-Amar et al., 2019; Gemenne et al., \n", - "2020). In migration or displacement driven by climate effects, women \n", - "are prone to lose their leadership, autonomy and voice, especially in \n", - "new organisational structures imposed by authorities. This is especially \n", - "the case in temporary accommodation camps created after disasters, \n", - "exacerbating existing differentiated vulnerabilities (Aldunce Ide et al., \n", - "2020). International migration has become more dangerous and \n", - "difficult as border controls have become stricter, but programmes \n", - "such as one to help temporary agricultural workers from Guatemala \n", - "to Canada have proven successful (Gabriel and Macdonald, 2018). At \n", - "the same time, emigration may lead to the loss of IKLK for adaptation \n", - "(Moreno et al., 2020b).\n", - ".. DOC - 33 VS 9\n", - ".. SCORE - 0.12721826 VS 0.562679946\n", - "--------------------------------------------------\n", - "Cross-Chapter Box 4 (continued)\n", - "IK and LK in the Pacific: Historically, Pacific communities, who depend on marine resources for essential protein (Pratchett et al., 2011), \n", - "use LK for management systems to determine access to, and closure of, fishing grounds, the latter to respect community deaths, sacred \n", - "sites, and customary feasts. Today a hybrid system, Locally Managed Marine Protected Areas (LMMAs), is common and integrates local \n", - "governance with NGO or government agency interventions (Jupiter et al., 2014). The expected benefits of these management systems\n", - "support climate change adaptation through sustainable resource management (Roberts et al., 2017) and mitigation through improved \n", - "carbon storage (Vierros, 2017). The challenges to wider use include both how to upscale LMMAs (Roberts et al., 2017; Vierros, 2017), \n", - "and how to assess them as climate change adaptation and mitigation solutions (Rohe et al., 2017; Section 5.4).\n", - ".. DOC - 21 VS 10\n", - ".. SCORE - 0.12074951 VS 0.574164033\n", - "--------------------------------------------------\n", - "suggests that the loss of IK and LK, and related social norms and \n", - "mechanisms, will increase populations' exposure and vulnerability to \n", - "SLR impacts (Nakashima et al., 2012). The literature notably points \n", - "out that modern, externally-driven socioeconomic dynamics, such as \n", - "the introduction of imported food (noodles, rice, canned meat and \n", - "fish, etc.), diminish the cultural importance of IK-based practices and \n", - "diets locally, together with introducing dependency on monetisation \n", - "and external markets (Hay, 2013; Campbell, 2015).\n", - ".. DOC - 10 VS 11\n", - ".. SCORE - 0.11436853 VS 0.58656317\n", - "--------------------------------------------------\n", - "Indigenous knowledge and local knowledge (IK and LK) can \n", - "provide important understanding for acting effectively on \n", - "climate risk and can help diversify knowledge that may enrich \n", - "adaptation policy and practice (high confidence). Indigenous \n", - "Peoples have been faced with adaptation challenges for centuries and \n", - "have developed strategies for resilience in changing environments \n", - "that can enrich and strengthen current and future adaptation efforts. \n", - "Valuing IK and LK is also important for recognition, a key component \n", - "of climate justice. {1.3.2.3}\n", - "Monitoring and evaluation (M&E) of adaptation refers to a \n", - "broad range of activities necessary for tracking adaptation \n", - "progress over time, improving adaptation effectiveness and \n", - "successful iterative risk management. Monitoring usually refers \n", - "to continuous information gathering, whereas evaluation denotes \n", - "more comprehensive assessments of effectiveness and equity, often \n", - "resulting in recommendations for decision makers. In some literatures, \n", - "M&E refers solely to efforts undertaken after implementation. In\n", - ".. DOC - 41 VS 12\n", - ".. SCORE - 0.09790669 VS 0.55755043\n", - "--------------------------------------------------\n", - "Governance: Using IK and LK in climate decision and policy making includes customary Indigenous and local institutions (Karlsson and \n", - "Hovelsrud, 2015), as in the case when Indigenous communities are engaged in an integrated approach for disaster risk reduction in \n", - "response to cryosphere hazards (Carey et al., 2015). The effective engagement of communities and stakeholders in decisions requires \n", - "using the multiple knowledge systems available (Chilisa, 2011; Sections 2.3.1.3.2, 2.3.2.3, 3.5.4, 4.4.4, Table 4.4, 5.5.2, 6.8.4, 6.9.2; \n", - "Sections 2.3.1.3.2, 2.3.2.3, 3.5.4, 4.4.4, Table 4.9, 5.5.2, 6.8.4, 6.9.2).\n", - "104104\n", - ".. DOC - 7 VS 13\n", - ".. SCORE - 0.090896755 VS 0.596558452\n", - "--------------------------------------------------\n", - "Enhancing Adaptive Capacity through IK and LK and CBA: Lessons Learned\n", - "Useful lessons can be drawn from experience to effectively incorporate IK, LK and CBA in adaptation strategies. A number of barriers \n", - "to adaptation have also been recognised (Figure Box CCP7.1.1). Considering that IK and LK is increasingly threatened by colonisation, \n", - "acculturation, dispossession of land rights, and environmental and social change, among others [AR5 WGII Section 12.3.3 (Adger et al. \n", - "2014); SR15Section 4.3.5 (de Coninck et al. 2018)] Seppala (2009) highlighted the importance of supporting community efforts to \n", - "document, vitalise and protect it. It is essential to consider goals, identity and livelihood priorities of Indigenous Peoples and local \n", - "communities, including those beyond natural resource management (Reid et al., 2009; Diamond and Ansharyani, 2018; Zavaleta et al., \n", - "2018). Adaptation processes are more likely to be transformational when they are locally driven (medium confidence: medium evidence,\n", - ".. DOC - 8 VS 14\n", - ".. SCORE - 0.073430054 VS 0.590297639\n", - "--------------------------------------------------\n", - "Introduction\n", - "This Cross-Chapter Box describes how Indigenous knowledge (IK) and local knowledge (LK) are different and unique sources \n", - "of knowledge, which are critical to observing, responding to, and governing the ocean and cryosphere in a changing climate (See SROCC \n", - "Annex I: Glossary for definitions). International organisations recognise the importance of IK and LK in global assessments, including\n", - "UN Environment, UNDP, UNESCO, IPBES, and the World Bank. IK and LK are referenced throughout SROCC, understanding that \n", - "many climate change impacts affect, and will require responses from, local communities (both Indigenous and non-Indigenous) who\n", - "maintain a close connection with the ocean and/or cryosphere.\n", - " Introduction \n", - ".. DOC - 43 VS 15\n", - ".. SCORE - 0.05051767 VS 0.556687832\n", - "--------------------------------------------------\n", - "FAQ 10.3 (continued)\n", - "In climate-sensitive livelihoods, an integrated approach informed by science that examines multiple stressors, along \n", - "with IKLK, appears to be of immense value. For instance, in building farmers' resilience, enhancing CCA, ensuring \n", - "cross-cultural communication and promoting local skills, Indigenous People's intuitive thinking processes and \n", - "geographic knowledge of remote areas are very important.\n", - "There is also a widespread recognition that IKLK are important in ensuring successful ecosystem-based adaptation \n", - "(EbA). However, this recognition requires more practical application and translation into IKLK-driven EbA projects. \n", - "For instance, in the Coral Triangle region, creating historical timelines and mapping seasonal calendars can help to \n", - "capture IKLK while also feeding this information into climate science and climate adaptation planning. Identifying \n", - "indigenous crop species for agriculture by using IKLK is already identified as an important way to localise climate \n", - "adaptation: an example is Bali's vital contribution of moral economies to food systems which have long built \n", - "resilience among groups of communities in terms of food security and sovereignty, even with the challenges faced \n", - "due to modernising of local food systems.\n", - ".. DOC - 47 VS 16\n", - ".. SCORE - 0.05033063 VS 0.555101871\n", - "--------------------------------------------------\n", - "contextualisation is greatly needed. IK and LK will shape perceptions \n", - "which are vital to managing climate risk in day-to-day activities and \n", - "longer-term actions.\n", - " 1.3.2.3 Indigenous Knowledge and Local Knowledge \n", - ".. DOC - 48 VS 17\n", - ".. SCORE - 0.04822634 VS 0.554959059\n", - "--------------------------------------------------\n", - "et al., 2020). There are examples of integrating IK and LK into resource \n", - "management systems and school curricula and in local institutions with \n", - "existing decision-making process to strengthen their capacity to address\n", - ".. DOC - 31 VS 18\n", - ".. SCORE - 0.03890198 VS 0.563686252\n", - "--------------------------------------------------\n", - "Humans create, use, and adapt knowledge systems to interact with \n", - "their environment (Agrawal, 1995; Escobar, 2001; Sillitoe, 2007), and \n", - "to observe and respond to change (Huntington, 2000; Gearheard et al., \n", - "2013; Maldonado et al., 2016; Yeh, 2016). Indigenous knowledge \n", - "(IK) refers to the understandings, skills, and philosophies developed \n", - "by societies with long histories of interaction with their natural \n", - "surroundings. It is passed on from generation to generation, flexible, \n", - "and adaptive in changing conditions, and increasingly challenged \n", - "in the context of contemporary climate change. Local knowledge \n", - "(LK) is what non-Indigenous communities, both rural and urban, \n", - "use on a daily and lifelong basis. It is multi-generational, embedded \n", - "in community practices and cultures and adaptive to changing \n", - "conditions (FAO, 2018). Each chapter of SROCC cites examples of IK \n", - "and LK related to ocean and cryosphere change.\n", - ".. DOC - 40 VS 19\n", - ".. SCORE - 0.026205413 VS 0.557900667\n", - "--------------------------------------------------\n", - "In some specific contexts, climate change will also imply no-analogue \n", - "changes, such as rapid ice-melt and changing conditions in the Arctic \n", - "that have no precedent in the modern era, and could thus limit the \n", - "relevance of IK and LK in efforts to address significantly different \n", - "circumstances. Except in these specific situations, the literature \n", - "373373\n", - ".. DOC - 19 VS 20\n", - ".. SCORE - 0.020685459 VS 0.574387312\n", - "--------------------------------------------------\n", - "Observations: IK and LK observations document glacier and sea ice dynamics, permafrost dynamics, coastal processes, etc. \n", - "(Sections 2.3.2.2.2, 2.5, 3.2.2, 3.4.1.1, 3.4.1.1, 3.4.1.2, 4.3.2.4.2, 5.2.3 and Box 2.4), and how they interact with social-cultural factors \n", - "(West and Hovelsrud, 2010). Researchers have begun documenting IK and LK observations only recently (Sections 2.3.1.1, 3.2, 3.4, \n", - "3.5, Box 4.4, 5.4.2.2.1).\n", - ".. DOC - 17 VS 21\n", - ".. SCORE - 0.01665704 VS 0.576289952\n", - "--------------------------------------------------\n", - "The understandings, skills and philosophies developed by societies \n", - "with long histories of interaction with their natural surroundings. \n", - "For many indigenous peoples, IK informs decision making about \n", - "fundamental aspects of life, from day-to-day activities to longer term \n", - "actions. This knowledge is integral to cultural complexes, which also \n", - "encompass language, systems of classification, resource use practices, \n", - "social interactions, values, ritual and spirituality. These distinctive \n", - "ways of knowing are important facets of the world's cultural diversity \n", - "(UNESCO, 2018). See also Local knowledge (LK).\n", - " Indigenous knowledge (IK) \n", - "\n", - "Industrial revolution \n", - "A period of rapid industrial growth with far-reaching social and eco\u0002nomic consequences, beginning in Britain during the second half of \n", - " Industrial revolution \n", - "\n", - "Justice Justice\n", - "\f", - "\n", - "is concerned with ensuring that people get what is due to them setting \n", - "out the moral or legal principles of fairness and equity in the way \n", - "people are treated, often based on the ethics and values of society. \n", - " Justice Justice\n", - "\f", - " \n", - "\n", - "Internal variability \n", - "See Climate variability.\n", - ".. DOC - 46 VS 22\n", - ".. SCORE - 0.0062170783 VS 0.555593371\n", - "--------------------------------------------------\n", - "IKLK are crucial determinants of adaptation in agriculture for many \n", - "communities globally. Indigenous Peoples have intimate knowledge \n", - "about their surrounding environment and are attentive observers of \n", - "climate changes. As a result, they are often best placed to enact successful \n", - "adaptation measures, including shifting to different crops, changing \n", - "cropping times or returning to traditional varieties (Mugambiwa, 2018; \n", - "Kamara et al., 2019; Nelson et al., 2019) (Section 4.8.4).\n", - ".. DOC - 36 VS 23\n", - ".. SCORE - 0.006168995 VS 0.559936762\n", - "--------------------------------------------------\n", - "Box 9.9 (continued)\n", - "Migration is a common response (Sitati et al., 2021) and may be an effective adaptive response to climate-induced conflict. Bosetti et al. \n", - "(2018) find that countries with high emigration propensity display lower sensitivity of conflict to temperature, with no evidence of \n", - "detrimental impacts on the destination countries. IK has also been applied to enable adaptation amidst conflict, for example, in Libya, to \n", - "deal with erratic rainfall (Biagetti, 2017).\n", - ".. DOC - 20 VS 24\n", - ".. SCORE - 0.0056200363 VS 0.574316561\n", - "--------------------------------------------------\n", - "Internal migration, displacement and urbanisation\n", - "Climate change can have opposing influences on migration flows. Deteriorating economic conditions caused by climate hazards can \n", - "encourage out-migration (Wiederkehr et al., 2018). However, these same economic losses undermine household resources needed to \n", - "migrate (Cattaneo and Peri, 2016). The net effect of these two forces leads to mixed results across study methodologies and contexts \n", - "(Carleton and Hsiang, 2016; Borderon et al., 2019; Cattaneo et al., 2019; Hoffmann et al., 2020).\n", - ".. DOC - 9 VS 25\n", - ".. SCORE - 0.0040385914 VS 0.587096512\n", - "--------------------------------------------------\n", - "Small-scale climate-induced displacement within Europe occurs in the \n", - "aftermath of flood and drought disasters and over short distances \n", - "(Cattaneo et al., 2019). The unequal distribution of future climate risks \n", - "(Section 13.1) and adaptive capacity across European regions may \n", - "increase pressure for internal migration (Williges et al., 2017; Forzieri \n", - "et al., 2018). For instance, projected SLR (Section 13.2.1; Cross-Chapter \n", - "Box SLR in Chapter 3) may result in planned relocation of coastal \n", - "settlements and inland migration in the UK, the Netherlands and the \n", - "northern Mediterranean (Mulligan et al., 2014; Antonioli et al., 2017). \n", - "The number of people living in areas at risk in Europe is projected to \n", - "increase with future SSPs increasing exposure (Merkens et al., 2016; \n", - "Byers et al., 2018; Harrison et al., 2019).\n", - "A number of livelihoods maintaining unique cultures in Europe are\n", - ".. DOC - 44 VS 26\n", - ".. SCORE - 0.0019877742 VS 0.556478\n", - "--------------------------------------------------\n", - "agreement that slow-onset climatic events (such as droughts and sea \n", - "level rise) lead to long-distance internal displacement, more so than \n", - "local or international migration (Kaczan and Orgill-Meyer, 2020; Silja, \n", - "2017), while sea level rise is expected to lead to the displacement of \n", - "communities along coastal zones, such as in Florida in the USA (Hauer, \n", - "2017; Butler, Deyle and Mutnansky, 2016).\n", - ".. DOC - 24 VS 27\n", - ".. SCORE - 0.0013670257 VS 0.569957197\n", - "--------------------------------------------------\n", - "building from the framework outlined in SROCC (Crate et al., 2019), \n", - "scientific, Indigenous knowledge (IK) and local knowledge (LK) systems \n", - "are included in this assessment. Importantly, Indigenous authors led \n", - "the assessment of the impacts, adaptation and governance of climate \n", - "change for Indigenous Peoples, which is an important advance since \n", - "AR5 and represents an important step towards Indigenous self\u0002determination in international assessment processes (Ford et al., 2012; \n", - "Ford et al., 2016; Hill et al., 2020).\n", - ".. DOC - 34 VS 28\n", - ".. SCORE - 0.00090044667 VS 0.562424958\n", - "--------------------------------------------------\n", - "Climate-related internal migration has been associated with the \n", - "experience of violence by migrants, the prolongation of conflicts in migrant \n", - "receiving areas and civil unrest in urban areas (medium agreement, low \n", - "evidence). Research points to the potential for conflict to serve as an \n", - "intervening factor between climate and migration. However, the nature \n", - "of the relationship is diverse and context specific. For example, displaced \n", - "people and migrants may be associated with heightened social tensions \n", - "10871087\n", - ".. DOC - 22 VS 29\n", - ".. SCORE - 0.0006986757 VS 0.573805273\n", - "--------------------------------------------------\n", - "IK systems are diverse among and within Arctic Indigenous Peoples, and reflect deep and rich knowledge that situates and contextualises \n", - "values, traditions, governance and practical ways of adapting to the ecosystem over millennia (Raymond-Yakoubian et al., 2017; Brattland \n", - "and Mustonen, 2018). IK is a valuable source of knowledge; a method to detect change, evaluate risk and inform adaptation approaches; \n", - "and a cultural ecological service (Brattland and Mustonen, 2018; Crate et al., 2019; Meredith et al., 2019) that is critical for decision \n", - "making (Mustonen and Mustonen, 2016; Huntington et al., 2017). For instance, Kalaallit knowledge in Greenland has been used to detect \n", - "and attribute long-term (over 50 years) marine change that reaches beyond scientific instrumental data (Mustonen et al., 2018b).\n", - ".. DOC - 27 VS 30\n", - ".. SCORE - 0.0006719278 VS 0.568047702\n", - "--------------------------------------------------\n", - "There is medium evidence (low agreement) about the effectiveness of \n", - "migration and planned relocation in reducing risk exposure. Evidence \n", - "on climate-driven internal migration shows that moving has mixed \n", - "outcomes on risk reduction and adaptive capacity. On one hand, \n", - "migration can improve adaptive capacity by increasing incomes and \n", - "remittances as well as diversifying livelihoods (Maharjan et al., 2020); \n", - "on the other, migration can expose migrants to new risks. For example, \n", - "in Bangalore (India), migrants often face high exposure to localised \n", - "flooding, insecure and unsafe livelihoods, and social exclusion, which \n", - "collectively shape their vulnerability (Michael et al., 2018; Singh and \n", - "Basu, 2020). In greater Manila (the Philippines) and Chennai (India), \n", - "planned relocations to reduce disaster risk have often exacerbated \n", - "vulnerability, due to relocation sites being in environmentally sensitive \n", - "areas, inadequate livelihood opportunities and exposure to new risks \n", - "(Meerow, 2017; Ajibade, 2019; Jain et al., 2021).\n", - ".. DOC - 29 VS 31\n", - ".. SCORE - 0.00036829791 VS 0.566495597\n", - "--------------------------------------------------\n", - "Migration, displacement and resettlement each play a foundational \n", - "role in differentiated vulnerability (see Cross-Chapter Box MIGRATE \n", - "in Chapter 7). The relationship between migration and vulnerability \n", - "is complex (robust evidence, high agreement), and is the first of the \n", - "three components discussed within this section. Climate change, as a \n", - "push factor, is only one among multiple drivers (political, economic and \n", - "social) related to environmental migration (Heslin et al., 2019; Planitz, \n", - "2019; Luetz and Merson, 2019). There is consensus that it is difficult \n", - "to pin climate change as the sole driver of internal (within national \n", - "boundaries) rural to urban migration decisions owing to, among other \n", - "factors, the disconnect between national and international policies \n", - "(Wilkinson et al., 2016), the lack of unifying theoretical frameworks \n", - "and the complex interactions between climatic and other drivers \n", - "(social, demographic, economic and political) at multiple scales\n", - ".. DOC - 26 VS 32\n", - ".. SCORE - 0.0001535624 VS 0.568792522\n", - "--------------------------------------------------\n", - "be designed to anticipate and address climate-induced internal mobility \n", - "(Schwan and Yu, 2017). For instance, it does not offer a solution for \n", - "maintaining Indigenous cultures which are often strongly affected by, \n", - "or even disrupted by, climate change (Olsson, 2014). Hence, an effective \n", - "approach needs to combine different policy instruments to support \n", - "protection, adaptation and migration (O'Brien et al., 2018).\n", - ".. DOC - 11 VS 33\n", - ".. SCORE - 0.00013032975 VS 0.584740281\n", - "--------------------------------------------------\n", - "Gemenne, F. and J. Blocher, 2017: How can migration serve adaptation to \n", - "climate change? Challenges to fleshing out a policy ideal. Geogr. J., 183(4), \n", - "336-347, doi:10.1111/geoj.12205.\n", - "Gemenne, F. and P. Brucker, 2015: From the guiding principles on internal \n", - "displacement to the Nansen initiative: What the governance of\n", - ".. DOC - 13 VS 34\n", - ".. SCORE - 5.9209164e-05 VS 0.582682252\n", - "--------------------------------------------------\n", - "facilitate adaptive migration in the region in response to natural \n", - "hazards including SLR (Burson and Bedford, 2015). There have been \n", - "cases presented at the Immigration and Protection Tribunal of New \n", - "Zealand testing refugee claims associated with climate change from \n", - "Tuvaluan and i-Kiribati applicants, both citing environmental change \n", - "on their home islands as grounds for remaining in New Zealand. \n", - "One applicant was successful in the quest to remain in New Zealand \n", - "on humanitarian grounds, but not on the grounds of refugee status \n", - "(Farbotko et al., 2016).\n", - " 4.4.2.6.6 Governance of retreat \n", - ".. DOC - 42 VS 35\n", - ".. SCORE - 4.5753914e-05 VS 0.55679971\n", - "--------------------------------------------------\n", - "while these traditional economies have undergone rapid change due \n", - "to non-climate drivers, their land uses, observational frameworks and \n", - "cultural matrixes remain of high importance in the context of climate \n", - "change. Endemic responses (self-agency from within the culture) \n", - "and Indigenous governance enable adaptation to the rapid and \n", - "accelerating changes under way (Mustonen et al., 2018a). Therefore, \n", - "community-based monitoring and inclusion of IK in dialogue with \n", - "science has been an effective mechanism to detect and respond to \n", - "climate change.\n", - ".. DOC - 45 VS 36\n", - ".. SCORE - 3.734357e-05 VS 0.555856168\n", - "--------------------------------------------------\n", - "migration (Ober, 2019). Importantly, there is low agreement on projected numbers (see Boas et al., 2019) with uncertainties around how \n", - "local policies and individual behaviours will shape migration choices. Even in high-risk places, people might choose to stay or be unable \n", - "to move, resulting in 'trapped' populations (Zickgraf, 2019; Ayeb-Karlsson et al., 2020). There is currently inadequate evidence to ascertain \n", - "the nature and numbers of trapped populations currently or in the future.\n", - ".. DOC - 28 VS 37\n", - ".. SCORE - 1.9988918e-05 VS 0.567273736\n", - "--------------------------------------------------\n", - "Key messages on migration in this report\n", - "Migration is a universal strategy that individuals and households undertake to improve well-being and livelihoods in response to \n", - "economic uncertainty, political instability and environmental change (high confidence). Migration, displacement and immobility that \n", - "occur in response to climate hazards are assessed in general in Chapter 7, with specific sectoral and regional dimensions of climate\u0002related migration assessed in sectoral and regional Chapters 5 to 15 (Table MIGRATE.1 in Chapter 7) and involuntary immobility and \n", - "displacement being identified as representative key risks in Chapter 16 (Sections 16.2.3.8, 16.5.2.3.8). Since AR5 there has been a \n", - "considerable expansion in research on climate-migration linkages, with five key messages from the present assessment report warranting \n", - "emphasis.\n", - ".. DOC - 16 VS 38\n", - ".. SCORE - 1.76402e-05 VS 0.577121377\n", - "--------------------------------------------------\n", - "Migration has been highly politicised, and climate-related immigration has been conceptualised in public and media discourse as a \n", - "potential threat which limits adaptation feasibility (Telford, 2018; Honarmand Ebrahimi and Ossewaarde, 2019; McLeman, 2019; Wiegel \n", - "et al., 2019; Hauer et al., 2020). Existing international agreements provide potential frameworks for climate-related migration to benefit \n", - "adaptive capacity and sustainable development (Warner, 2018; Kalin, 2019). However, agreements to facilitate temporary or circular \n", - "migration and remittances are often informal and limited in scope (Webber and Donner, 2017b; Margaret and Matias, 2020) and migrant \n", - "receiving areas, particularly urban areas, can be better assisted to prepare for population change (Deshpande et al., 2019; Adger et al., \n", - "2020; Hauer et al., 2020). Policies and planning are lacking that would ensure that positive migration outcomes for sending and receiving\n", - ".. DOC - 39 VS 39\n", - ".. SCORE - 1.5567455e-05 VS 0.559005141\n", - "--------------------------------------------------\n", - "A.5.7 Changes in climate can amplify environmentally induced migration both within countries and across borders (medium \n", - "confidence), reflecting multiple drivers of mobility and available adaptation measures (high confidence). Extreme weather \n", - "and climate or slow-onset events may lead to increased displacement, disrupted food chains, threatened livelihoods (high \n", - "confidence), and contribute to exacerbated stresses for conflict (medium confidence). {3.4.2, 4.7.3, 5.2.3, 5.2.4, 5.2.5, 5.8.2, \n", - "7.2.2, 7.3.1}\n", - ".. DOC - 4 VS 40\n", - ".. SCORE - 1.4971084e-05 VS 0.502163529\n", - "--------------------------------------------------\n", - "C.2.12 Increasing adaptive capacities minimises the negative impacts of climate-related displacement and involuntary migration for migrants \n", - "and sending and receiving areas (high confidence). This improves the degree of choice under which migration decisions are made, \n", - "ensuring safe and orderly movements of people within and between countries (high confidence). Some development reduces underlying \n", - "vulnerabilities associated with conflict, and adaptation contributes by reducing the impacts of climate change on climate sensitive \n", - "drivers of conflict (high confidence). Risks to peace are reduced, for example, by supporting people in climate-sensitive economic \n", - "activities (medium confidence) and advancing women's empowerment (high confidence). {7.4, Box 9.8, Box 10.2, 12.5, CCB FEASIB, \n", - "CCB MIGRATE}\n", - "SPMSPM\n", - "\f", - "\n", - "45 The term 'response' is used here instead of adaptation because some responses, such as retreat, may or may not be considered to be adaptation.\n", - "2525\n", - ".. DOC - 3 VS 41\n", - ".. SCORE - 1.2805474e-05 VS 0.505755424\n", - "--------------------------------------------------\n", - "For cross-cutting options, the main knowledge gaps identified are socio-cultural acceptability for social safety nets. While the evidence on \n", - "resettlement, relocation and migration is large and growing, there is disagreement on several indicators, marking the need for more evidence \n", - "synthesis. Geophysical feasibility for resettlement, relocation and migration has limited evidence, but is an emerging area of research.\n", - "In general, throughout most of the options, there is significantly less literature from the regions of Central and South America, and West \n", - "and Central Asia, as compared with other world regions.\n", - ".. DOC - 30 VS 42\n", - ".. SCORE - 8.8011e-06 VS 0.566225469\n", - "--------------------------------------------------\n", - "The success of climate-related migration as an adaptive response is \n", - "shaped by how migrants are perceived and how policy discussions \n", - "are framed (high agreement, medium evidence). The possibility that \n", - "climate change may enlarge international migrant flows has in some \n", - "policy discussions been interpreted as a potential threat to the security \n", - "of destination countries (Sow et al., 2016; Telford, 2018), but there is \n", - "little empirical evidence in peer-reviewed literature assessed for this \n", - "chapter of climate migrants posing significant threats to security at \n", - "state or international levels. There is also an inconsistency between \n", - "framing in some policy discussions of undocumented migration \n", - "(climate-related and other forms) as being 'illegal' and the objectives \n", - "of the Global Compact on Safe, Orderly and Regular Migration and \n", - "the Global Compact on Refugees (McLeman, 2019). Although climate\u0002related migrants are not officially recognised as refugees under the \n", - "1951 Convention relating to the Status of Refugees, terms such as \n", - "'climate refugees' are common in popular media and some policy\n", - ".. DOC - 23 VS 43\n", - ".. SCORE - 8.267873e-06 VS 0.570940733\n", - "--------------------------------------------------\n", - "Figure SPM.2 (continued): Migration refers to an increase or decrease in net migration, not to beneficial/adverse value. Impacts on tourism refer \n", - "to the operating conditions for the tourism sector. Cultural services include cultural identity, sense of home, and spiritual, intrinsic and aesthetic \n", - "values, as well as contributions from glacier archaeology. The underlying information is given for land regions in tables SM2.6, SM2.7, SM2.8, SM3.8, \n", - "SM3.9, and SM3.10, and for ocean regions in tables SM5.10, SM5.11, SM3.8, SM3.9, and SM3.10. {2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.3.6, 2.3.7,\n", - ".. DOC - 1 VS 44\n", - ".. SCORE - 5.2144983e-06 VS 0.522298038\n", - "--------------------------------------------------\n", - "2 including Hindu Kush, Karakoram, Hengduan Shan, and Tien Shan; 3\n", - " tropical Andes, Mexico, eastern Africa, and Indonesia; 4 includes Finland, Norway, and Sweden; 5 includes adjacent areas in Yukon Territory and British Columbia, Canada; 6 Migration refers to an \n", - " increase or decrease in net migration, not to beneficial/adverse value.\n", - ".. DOC - 0 VS 45\n", - ".. SCORE - 5.173919e-06 VS 0.543566763\n", - "--------------------------------------------------\n", - "Singh, C. and R. Basu, 2020: Moving in and out of vulnerability: Interrogating \n", - "migration as an adaptation strategy along a rural-urban continuum in India. \n", - "Geogr J, 186(1), 87-102, doi:10.1111/geoj.12328.\n", - "25332533\n", - ".. DOC - 37 VS 46\n", - ".. SCORE - 3.7853251e-06 VS 0.559662342\n", - "--------------------------------------------------\n", - "AR5 (Adger and Pulhin, 2014) found links between climate change \n", - "and migration in general (medium evidence, high agreement), but \n", - "provided no assessment of climate-induced hydrological changes and \n", - "migration specifically. Likewise, SRCCL (Mirzabaev et al., 2019; Olsson \n", - "et al., 2020) and SROCC (Hock et al., 2019b) noted that migration is \n", - "complex and that migration decisions and outcomes are influenced \n", - "by a combination of social, demographic, economic, environmental \n", - "and political factors and contexts (see Cross-Chapter Box MIGRATE in \n", - "Chapter 7). This chapter confirms this evidence, focusing on climate\u0002induced hydrological changes.\n", - ".. DOC - 35 VS 47\n", - ".. SCORE - 2.769406e-06 VS 0.560757101\n", - "--------------------------------------------------\n", - "A.7.3 Arctic residents, especially Indigenous peoples, have adjusted the timing of activities to respond \n", - "to changes in seasonality and safety of land, ice, and snow travel conditions. Municipalities and industry are beginning \n", - "to address infrastructure failures associated with flooding and thawing permafrost and some coastal communities \n", - "have planned for relocation (high confidence). Limited funding, skills, capacity, and institutional support to engage \n", - "meaningfully in planning processes have challenged adaptation (high confidence). {3.5.2, 3.5.4, Cross-Chapter Box 9}\n", - ".. DOC - 2 VS 48\n", - ".. SCORE - 4.0525455e-07 VS 0.509702742\n", - "--------------------------------------------------\n" - ] - } - ], - "source": [ - "from scipy.special import expit, logit\n", - "\n", - "for i,result in enumerate(results.results[:50]):\n", - " print(result.document.text)\n", - " print(\".. DOC - \",result.document.doc_id, \" VS \",i)\n", - " print(\".. SCORE - \",result.score, \" VS \",docs[result.document.doc_id].metadata[\"similarity_score\"])\n", - " print(\"-\"*50)" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "id": "d7a7fe7f", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[Document(page_content=\"This image is a graphical representation of the contributing factors to observed global warming from 2010-2019 compared to the pre-industrial baseline of 1850-1900. It includes three bar graphs: (a) shows the total observed warming, (b) breaks down the aggregated contributions to warming, with human influence being a significant factor, and (c) details individual contributions by various greenhouse gases, aerosols, and other factors based on radiative forcing studies. The graphs illustrate that while greenhouse gases have led to warming, aerosol cooling has partly offset this effect. The collective scientific data provides evidence of human activities' impact on climate change, offering critical insights for policymakers and stakeholders in addressing the warming climate.\", metadata={'chunk_type': 'image', 'document_id': 'document1', 'document_number': 1.0, 'element_id': 'Picture_0_6', 'figure_code': 'Figure SPM.2', 'file_size': 141.70703125, 'image_path': '/dbfs/mnt/ai4sclqa/raw/climateqa/documents/document1/images/Picture_0_6.png', 'n_pages': 32.0, 'name': 'Summary for Policymakers. In: Climate Change 2021: The Physical Science Basis. Contribution of the WGI to the AR6 of the IPCC', 'num_characters': 'N/A', 'num_tokens': 'N/A', 'num_tokens_approx': 'N/A', 'num_words': 'N/A', 'page_number': 7, 'release_date': 2021.0, 'report_type': 'SPM', 'section_header': 'N/A', 'short_name': 'IPCC AR6 WGI SPM', 'source': 'IPCC', 'toc_level0': 'A. The Current State of the Climate', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://www.ipcc.ch/report/ar6/wg1/downloads/report/IPCC_AR6_WGI_SPM.pdf', 'similarity_score': 0.700658858, 'content': \"This image is a graphical representation of the contributing factors to observed global warming from 2010-2019 compared to the pre-industrial baseline of 1850-1900. It includes three bar graphs: (a) shows the total observed warming, (b) breaks down the aggregated contributions to warming, with human influence being a significant factor, and (c) details individual contributions by various greenhouse gases, aerosols, and other factors based on radiative forcing studies. The graphs illustrate that while greenhouse gases have led to warming, aerosol cooling has partly offset this effect. The collective scientific data provides evidence of human activities' impact on climate change, offering critical insights for policymakers and stakeholders in addressing the warming climate.\"})]" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "images = [doc for doc in docs if doc.metadata[\"chunk_type\"] == \"image\"]\n", - "images" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "b7be28b5", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[Document(page_content=\"This image is a graphical representation of the contributing factors to observed global warming from 2010-2019 compared to the pre-industrial baseline of 1850-1900. It includes three bar graphs: (a) shows the total observed warming, (b) breaks down the aggregated contributions to warming, with human influence being a significant factor, and (c) details individual contributions by various greenhouse gases, aerosols, and other factors based on radiative forcing studies. The graphs illustrate that while greenhouse gases have led to warming, aerosol cooling has partly offset this effect. The collective scientific data provides evidence of human activities' impact on climate change, offering critical insights for policymakers and stakeholders in addressing the warming climate.\", metadata={'chunk_type': 'image', 'document_id': 'document1', 'document_number': 1.0, 'element_id': 'Picture_0_6', 'figure_code': 'Figure SPM.2', 'file_size': 141.70703125, 'image_path': '/dbfs/mnt/ai4sclqa/raw/climateqa/documents/document1/images/Picture_0_6.png', 'n_pages': 32.0, 'name': 'Summary for Policymakers. In: Climate Change 2021: The Physical Science Basis. Contribution of the WGI to the AR6 of the IPCC', 'num_characters': 'N/A', 'num_tokens': 'N/A', 'num_tokens_approx': 'N/A', 'num_words': 'N/A', 'page_number': 6, 'release_date': 2021.0, 'report_type': 'SPM', 'section_header': 'N/A', 'short_name': 'IPCC AR6 WGI SPM', 'source': 'IPCC', 'toc_level0': 'A. The Current State of the Climate', 'toc_level1': 'N/A', 'toc_level2': 'N/A', 'toc_level3': 'N/A', 'url': 'https://www.ipcc.ch/report/ar6/wg1/downloads/report/IPCC_AR6_WGI_SPM.pdf', 'similarity_score': 0.700658858, 'content': \"This image is a graphical representation of the contributing factors to observed global warming from 2010-2019 compared to the pre-industrial baseline of 1850-1900. It includes three bar graphs: (a) shows the total observed warming, (b) breaks down the aggregated contributions to warming, with human influence being a significant factor, and (c) details individual contributions by various greenhouse gases, aerosols, and other factors based on radiative forcing studies. The graphs illustrate that while greenhouse gases have led to warming, aerosol cooling has partly offset this effect. The collective scientific data provides evidence of human activities' impact on climate change, offering critical insights for policymakers and stakeholders in addressing the warming climate.\"})]" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "image_docs = [doc for doc in docs if doc.metadata[\"chunk_type\"]==\"image\"]\n", - "image_docs" - ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "climateqa", "language": "python", - "name": "python3" + "name": "climateqa" }, "language_info": { "codemirror_mode": { @@ -2350,7 +1445,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.13" + "version": "3.10.14" } }, "nbformat": 4,