{"cells": [{"attachments": {}, "cell_type": "markdown", "id": "e1c59071", "metadata": {}, "source": ["\"在Colab中打开\"/\n"]}, {"cell_type": "markdown", "id": "9c48213d-6e6a-4c10-838a-2a7c710c3a05", "metadata": {}, "source": ["# 安全栏输出解析\n"]}, {"cell_type": "markdown", "id": "dc25e9e7", "metadata": {}, "source": ["首先,设置你的OpenAI API密钥。\n"]}, {"cell_type": "code", "execution_count": null, "id": "f08573d6", "metadata": {}, "outputs": [], "source": ["# import os\n", "\n", "# os.environ[\"OPENAI_API_KEY\"] = \"sk-...\""]}, {"attachments": {}, "cell_type": "markdown", "id": "cf54a5a8", "metadata": {}, "source": ["如果您在colab上打开这个笔记本,您可能需要安装LlamaIndex 🦙。\n"]}, {"cell_type": "code", "execution_count": null, "id": "a9c58d56", "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["Requirement already satisfied: llama-index-llms-openai in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (0.1.14)\n", "Requirement already satisfied: llama-index-core<0.11.0,>=0.10.24 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-llms-openai) (0.10.27)\n", "Requirement already satisfied: PyYAML>=6.0.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (6.0.1)\n", "Requirement already satisfied: SQLAlchemy[asyncio]>=1.4.49 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (2.0.29)\n", "Requirement already satisfied: aiohttp<4.0.0,>=3.8.6 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (3.9.3)\n", "Requirement already satisfied: dataclasses-json in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (0.6.4)\n", "Requirement already satisfied: deprecated>=1.2.9.3 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.2.14)\n", "Requirement already satisfied: dirtyjson<2.0.0,>=1.0.8 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.0.8)\n", "Requirement already satisfied: fsspec>=2023.5.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (2024.3.1)\n", "Requirement already satisfied: httpx in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (0.27.0)\n", "Requirement already satisfied: llamaindex-py-client<0.2.0,>=0.1.16 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (0.1.16)\n", "Requirement already satisfied: nest-asyncio<2.0.0,>=1.5.8 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.6.0)\n", "Requirement already satisfied: networkx>=3.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (3.3)\n", "Requirement already satisfied: nltk<4.0.0,>=3.8.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (3.8.1)\n", "Requirement already satisfied: numpy in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.26.4)\n", "Requirement already satisfied: openai>=1.1.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.16.2)\n", "Requirement already satisfied: pandas in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (2.2.1)\n", "Requirement already satisfied: pillow>=9.0.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (10.3.0)\n", "Requirement already satisfied: requests>=2.31.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (2.31.0)\n", "Requirement already satisfied: tenacity<9.0.0,>=8.2.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (8.2.3)\n", "Requirement already satisfied: tiktoken>=0.3.3 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (0.5.2)\n", "Requirement already satisfied: tqdm<5.0.0,>=4.66.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (4.66.2)\n", "Requirement already satisfied: typing-extensions>=4.5.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (4.11.0)\n", "Requirement already satisfied: typing-inspect>=0.8.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (0.9.0)\n", "Requirement already satisfied: wrapt in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.16.0)\n", "Requirement already satisfied: aiosignal>=1.1.2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.3.1)\n", "Requirement already satisfied: attrs>=17.3.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (23.2.0)\n", "Requirement already satisfied: frozenlist>=1.1.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.4.1)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (6.0.5)\n", "Requirement already satisfied: yarl<2.0,>=1.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.9.4)\n", "Requirement already satisfied: pydantic>=1.10 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llamaindex-py-client<0.2.0,>=0.1.16->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (2.4.2)\n", "Requirement already satisfied: anyio in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (4.3.0)\n", "Requirement already satisfied: certifi in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (2024.2.2)\n", "Requirement already satisfied: httpcore==1.* in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.0.5)\n", "Requirement already satisfied: idna in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (3.6)\n", "Requirement already satisfied: sniffio in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.3.1)\n", "Requirement already satisfied: h11<0.15,>=0.13 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpcore==1.*->httpx->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (0.14.0)\n", "Requirement already satisfied: click in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (8.1.7)\n", "Requirement already satisfied: joblib in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.4.0)\n", "Requirement already satisfied: regex>=2021.8.3 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (2023.12.25)\n", "Requirement already satisfied: distro<2,>=1.7.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from openai>=1.1.0->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.9.0)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (3.3.2)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (2.2.1)\n", "Requirement already satisfied: greenlet!=0.4.17 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (3.0.3)\n", "Requirement already satisfied: mypy-extensions>=0.3.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from typing-inspect>=0.8.0->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.0.0)\n", "Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from dataclasses-json->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (3.21.1)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (2.9.0.post0)\n", "Requirement already satisfied: pytz>=2020.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (2024.1)\n", "Requirement already satisfied: tzdata>=2022.7 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (2024.1)\n", "Requirement already satisfied: packaging>=17.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from marshmallow<4.0.0,>=3.18.0->dataclasses-json->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (23.2)\n", "Requirement already satisfied: annotated-types>=0.4.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from pydantic>=1.10->llamaindex-py-client<0.2.0,>=0.1.16->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (0.6.0)\n", "Requirement already satisfied: pydantic-core==2.10.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from pydantic>=1.10->llamaindex-py-client<0.2.0,>=0.1.16->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (2.10.1)\n", "Requirement already satisfied: six>=1.5 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from python-dateutil>=2.8.2->pandas->llama-index-core<0.11.0,>=0.10.24->llama-index-llms-openai) (1.16.0)\n", "\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", "Note: you may need to restart the kernel to use updated packages.\n", "Requirement already satisfied: llama-index-output-parsers-guardrails in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (0.1.2)\n", "Collecting guardrails-ai<0.4.0,>=0.3.2 (from llama-index-output-parsers-guardrails)\n", " Obtaining dependency information for guardrails-ai<0.4.0,>=0.3.2 from https://files.pythonhosted.org/packages/ae/5f/656bb84c9be700fff22719ddd1cb98b078dfbff51738f7e19998f4cf4d64/guardrails_ai-0.3.3-py3-none-any.whl.metadata\n", " Using cached guardrails_ai-0.3.3-py3-none-any.whl.metadata (8.6 kB)\n", "Requirement already satisfied: llama-index-core<0.11.0,>=0.10.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-output-parsers-guardrails) (0.10.27)\n", "Requirement already satisfied: eliot<2.0.0,>=1.15.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (1.15.0)\n", "Requirement already satisfied: eliot-tree<22.0.0,>=21.0.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (21.0.0)\n", "Requirement already satisfied: griffe<0.37.0,>=0.36.9 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (0.36.9)\n", "Requirement already satisfied: lxml<5.0.0,>=4.9.3 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (4.9.4)\n", "Requirement already satisfied: openai<2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (1.16.2)\n", "Requirement already satisfied: pydantic<2.5,>=1.10.9 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (2.4.2)\n", "Requirement already satisfied: pydash<8.0.0,>=7.0.6 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (7.0.7)\n", "Requirement already satisfied: python-dateutil<3.0.0,>=2.8.2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (2.9.0.post0)\n", "Requirement already satisfied: regex<2024.0.0,>=2023.10.3 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (2023.12.25)\n", "Requirement already satisfied: rich<14.0.0,>=13.6.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (13.7.1)\n", "Requirement already satisfied: rstr<4.0.0,>=3.2.2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (3.2.2)\n", "Requirement already satisfied: tenacity>=8.1.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (8.2.3)\n", "Requirement already satisfied: tiktoken<0.6.0,>=0.5.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (0.5.2)\n", "Requirement already satisfied: typer<0.10.0,>=0.9.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (0.9.4)\n", "Requirement already satisfied: typing-extensions<5.0.0,>=4.8.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (4.11.0)\n", "Requirement already satisfied: PyYAML>=6.0.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (6.0.1)\n", "Requirement already satisfied: SQLAlchemy[asyncio]>=1.4.49 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (2.0.29)\n", "Requirement already satisfied: aiohttp<4.0.0,>=3.8.6 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (3.9.3)\n", "Requirement already satisfied: dataclasses-json in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (0.6.4)\n", "Requirement already satisfied: deprecated>=1.2.9.3 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (1.2.14)\n", "Requirement already satisfied: dirtyjson<2.0.0,>=1.0.8 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (1.0.8)\n", "Requirement already satisfied: fsspec>=2023.5.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (2024.3.1)\n", "Requirement already satisfied: httpx in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (0.27.0)\n", "Requirement already satisfied: llamaindex-py-client<0.2.0,>=0.1.16 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (0.1.16)\n", "Requirement already satisfied: nest-asyncio<2.0.0,>=1.5.8 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (1.6.0)\n", "Requirement already satisfied: networkx>=3.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (3.3)\n", "Requirement already satisfied: nltk<4.0.0,>=3.8.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (3.8.1)\n", "Requirement already satisfied: numpy in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (1.26.4)\n", "Requirement already satisfied: pandas in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (2.2.1)\n", "Requirement already satisfied: pillow>=9.0.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (10.3.0)\n", "Requirement already satisfied: requests>=2.31.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (2.31.0)\n", "Requirement already satisfied: tqdm<5.0.0,>=4.66.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (4.66.2)\n", "Requirement already satisfied: typing-inspect>=0.8.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (0.9.0)\n", "Requirement already satisfied: wrapt in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (1.16.0)\n", "Requirement already satisfied: aiosignal>=1.1.2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (1.3.1)\n", "Requirement already satisfied: attrs>=17.3.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (23.2.0)\n", "Requirement already satisfied: frozenlist>=1.1.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (1.4.1)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (6.0.5)\n", "Requirement already satisfied: yarl<2.0,>=1.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (1.9.4)\n", "Requirement already satisfied: six in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot<2.0.0,>=1.15.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (1.16.0)\n", "Requirement already satisfied: zope.interface in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot<2.0.0,>=1.15.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (6.2)\n", "Requirement already satisfied: pyrsistent>=0.11.8 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot<2.0.0,>=1.15.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (0.20.0)\n", "Requirement already satisfied: boltons>=19.0.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot<2.0.0,>=1.15.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (24.0.0)\n", "Requirement already satisfied: orjson in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot<2.0.0,>=1.15.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (3.10.0)\n", "Requirement already satisfied: jmespath>=0.7.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot-tree<22.0.0,>=21.0.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (1.0.1)\n", "Requirement already satisfied: iso8601>=0.1.10 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot-tree<22.0.0,>=21.0.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (2.1.0)\n", "Requirement already satisfied: colored>=1.4.2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot-tree<22.0.0,>=21.0.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (2.2.4)\n", "Requirement already satisfied: toolz>=0.8.2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot-tree<22.0.0,>=21.0.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (0.12.1)\n", "Requirement already satisfied: colorama>=0.4 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from griffe<0.37.0,>=0.36.9->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (0.4.6)\n", "Requirement already satisfied: anyio in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (4.3.0)\n", "Requirement already satisfied: certifi in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (2024.2.2)\n", "Requirement already satisfied: httpcore==1.* in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (1.0.5)\n", "Requirement already satisfied: idna in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (3.6)\n", "Requirement already satisfied: sniffio in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (1.3.1)\n", "Requirement already satisfied: h11<0.15,>=0.13 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpcore==1.*->httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (0.14.0)\n", "Requirement already satisfied: click in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (8.1.7)\n", "Requirement already satisfied: joblib in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (1.4.0)\n", "Requirement already satisfied: distro<2,>=1.7.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from openai<2->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (1.9.0)\n", "Requirement already satisfied: annotated-types>=0.4.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from pydantic<2.5,>=1.10.9->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (0.6.0)\n", "Requirement already satisfied: pydantic-core==2.10.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from pydantic<2.5,>=1.10.9->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (2.10.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (3.3.2)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (2.2.1)\n", "Requirement already satisfied: markdown-it-py>=2.2.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from rich<14.0.0,>=13.6.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (3.0.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from rich<14.0.0,>=13.6.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (2.17.2)\n", "Requirement already satisfied: greenlet!=0.4.17 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (3.0.3)\n", "Requirement already satisfied: mypy-extensions>=0.3.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from typing-inspect>=0.8.0->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (1.0.0)\n", "Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from dataclasses-json->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (3.21.1)\n", "Requirement already satisfied: pytz>=2020.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (2024.1)\n", "Requirement already satisfied: tzdata>=2022.7 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (2024.1)\n", "Requirement already satisfied: mdurl~=0.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from markdown-it-py>=2.2.0->rich<14.0.0,>=13.6.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (0.1.2)\n", "Requirement already satisfied: packaging>=17.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from marshmallow<4.0.0,>=3.18.0->dataclasses-json->llama-index-core<0.11.0,>=0.10.1->llama-index-output-parsers-guardrails) (23.2)\n", "Requirement already satisfied: setuptools in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from zope.interface->eliot<2.0.0,>=1.15.0->guardrails-ai<0.4.0,>=0.3.2->llama-index-output-parsers-guardrails) (65.5.0)\n", "Using cached guardrails_ai-0.3.3-py3-none-any.whl (148 kB)\n", "Installing collected packages: guardrails-ai\n", " Attempting uninstall: guardrails-ai\n", " Found existing installation: guardrails-ai 0.4.2\n", " Uninstalling guardrails-ai-0.4.2:\n", " Successfully uninstalled guardrails-ai-0.4.2\n", "Successfully installed guardrails-ai-0.3.3\n", "\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", "Note: you may need to restart the kernel to use updated packages.\n"]}], "source": ["%pip install llama-index-llms-openai\n", "%pip install llama-index-output-parsers-guardrails"]}, {"cell_type": "code", "execution_count": null, "id": "e716f66f", "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["Requirement already satisfied: guardrails-ai in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (0.3.3)\n", "Requirement already satisfied: eliot<2.0.0,>=1.15.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (1.15.0)\n", "Requirement already satisfied: eliot-tree<22.0.0,>=21.0.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (21.0.0)\n", "Requirement already satisfied: griffe<0.37.0,>=0.36.9 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (0.36.9)\n", "Requirement already satisfied: lxml<5.0.0,>=4.9.3 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (4.9.4)\n", "Requirement already satisfied: openai<2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (1.16.2)\n", "Requirement already satisfied: pydantic<2.5,>=1.10.9 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (2.4.2)\n", "Requirement already satisfied: pydash<8.0.0,>=7.0.6 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (7.0.7)\n", "Requirement already satisfied: python-dateutil<3.0.0,>=2.8.2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (2.9.0.post0)\n", "Requirement already satisfied: regex<2024.0.0,>=2023.10.3 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (2023.12.25)\n", "Requirement already satisfied: rich<14.0.0,>=13.6.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (13.7.1)\n", "Requirement already satisfied: rstr<4.0.0,>=3.2.2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (3.2.2)\n", "Requirement already satisfied: tenacity>=8.1.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (8.2.3)\n", "Requirement already satisfied: tiktoken<0.6.0,>=0.5.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (0.5.2)\n", "Requirement already satisfied: typer<0.10.0,>=0.9.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (0.9.4)\n", "Requirement already satisfied: typing-extensions<5.0.0,>=4.8.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from guardrails-ai) (4.11.0)\n", "Requirement already satisfied: six in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot<2.0.0,>=1.15.0->guardrails-ai) (1.16.0)\n", "Requirement already satisfied: zope.interface in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot<2.0.0,>=1.15.0->guardrails-ai) (6.2)\n", "Requirement already satisfied: pyrsistent>=0.11.8 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot<2.0.0,>=1.15.0->guardrails-ai) (0.20.0)\n", "Requirement already satisfied: boltons>=19.0.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot<2.0.0,>=1.15.0->guardrails-ai) (24.0.0)\n", "Requirement already satisfied: orjson in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot<2.0.0,>=1.15.0->guardrails-ai) (3.10.0)\n", "Requirement already satisfied: jmespath>=0.7.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot-tree<22.0.0,>=21.0.0->guardrails-ai) (1.0.1)\n", "Requirement already satisfied: iso8601>=0.1.10 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot-tree<22.0.0,>=21.0.0->guardrails-ai) (2.1.0)\n", "Requirement already satisfied: colored>=1.4.2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot-tree<22.0.0,>=21.0.0->guardrails-ai) (2.2.4)\n", "Requirement already satisfied: toolz>=0.8.2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from eliot-tree<22.0.0,>=21.0.0->guardrails-ai) (0.12.1)\n", "Requirement already satisfied: colorama>=0.4 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from griffe<0.37.0,>=0.36.9->guardrails-ai) (0.4.6)\n", "Requirement already satisfied: anyio<5,>=3.5.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from openai<2->guardrails-ai) (4.3.0)\n", "Requirement already satisfied: distro<2,>=1.7.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from openai<2->guardrails-ai) (1.9.0)\n", "Requirement already satisfied: httpx<1,>=0.23.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from openai<2->guardrails-ai) (0.27.0)\n", "Requirement already satisfied: sniffio in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from openai<2->guardrails-ai) (1.3.1)\n", "Requirement already satisfied: tqdm>4 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from openai<2->guardrails-ai) (4.66.2)\n", "Requirement already satisfied: annotated-types>=0.4.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from pydantic<2.5,>=1.10.9->guardrails-ai) (0.6.0)\n", "Requirement already satisfied: pydantic-core==2.10.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from pydantic<2.5,>=1.10.9->guardrails-ai) (2.10.1)\n", "Requirement already satisfied: markdown-it-py>=2.2.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from rich<14.0.0,>=13.6.0->guardrails-ai) (3.0.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from rich<14.0.0,>=13.6.0->guardrails-ai) (2.17.2)\n", "Requirement already satisfied: requests>=2.26.0 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from tiktoken<0.6.0,>=0.5.1->guardrails-ai) (2.31.0)\n", "Requirement already satisfied: click<9.0.0,>=7.1.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from typer<0.10.0,>=0.9.0->guardrails-ai) (8.1.7)\n", "Requirement already satisfied: idna>=2.8 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from anyio<5,>=3.5.0->openai<2->guardrails-ai) (3.6)\n", "Requirement already satisfied: certifi in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpx<1,>=0.23.0->openai<2->guardrails-ai) (2024.2.2)\n", "Requirement already satisfied: httpcore==1.* in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpx<1,>=0.23.0->openai<2->guardrails-ai) (1.0.5)\n", "Requirement already satisfied: h11<0.15,>=0.13 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from httpcore==1.*->httpx<1,>=0.23.0->openai<2->guardrails-ai) (0.14.0)\n", "Requirement already satisfied: mdurl~=0.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from markdown-it-py>=2.2.0->rich<14.0.0,>=13.6.0->guardrails-ai) (0.1.2)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from requests>=2.26.0->tiktoken<0.6.0,>=0.5.1->guardrails-ai) (3.3.2)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from requests>=2.26.0->tiktoken<0.6.0,>=0.5.1->guardrails-ai) (2.2.1)\n", "Requirement already satisfied: setuptools in /Users/zaydsimjee/workspace/zayd_forks/llama_index/.venv/lib/python3.11/site-packages (from zope.interface->eliot<2.0.0,>=1.15.0->guardrails-ai) (65.5.0)\n", "\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.2.1\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.0\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", "Note: you may need to restart the kernel to use updated packages.\n"]}], "source": ["%pip install guardrails-ai"]}, {"attachments": {}, "cell_type": "markdown", "id": "39bc790a", "metadata": {}, "source": ["#### 下载数据\n"]}, {"cell_type": "code", "execution_count": null, "id": "649bea0c", "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": [" % Total % Received % Xferd Average Speed Time Time Time Current\n", " Dload Upload Total Spent Left Speed\n", "100 75042 100 75042 0 0 390k 0 --:--:-- --:--:-- --:--:-- 396k\n"]}], "source": ["!mkdir -p 'data/paul_graham/'\n", "!curl 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txt' > 'data/paul_graham/paul_graham_essay.txt'"]}, {"cell_type": "markdown", "id": "50d3b817-b70e-4667-be4f-d3a0fe4bd119", "metadata": {}, "source": ["#### 加载文档,构建VectorStoreIndex\n"]}, {"cell_type": "code", "execution_count": null, "id": "690a6918-7c75-4f95-9ccc-d2c4a1fe00d7", "metadata": {}, "outputs": [], "source": ["import logging\n", "import sys\n", "\n", "logging.basicConfig(stream=sys.stdout, level=logging.INFO)\n", "logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))\n", "\n", "from llama_index.core import VectorStoreIndex, SimpleDirectoryReader"]}, {"cell_type": "code", "execution_count": null, "id": "03d1691e-544b-454f-825b-5ee12f7faa8a", "metadata": {}, "outputs": [], "source": ["# 加载文档\n", "documents = SimpleDirectoryReader(\"./data/paul_graham/\").load_data()"]}, {"cell_type": "code", "execution_count": null, "id": "ad144ee7-96da-4dd6-be00-fd6cf0c78e58", "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", "HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n"]}], "source": ["index = VectorStoreIndex.from_documents(documents, chunk_size=512)"]}, {"cell_type": "markdown", "id": "8b7d7c61-b5d7-4b8f-b90b-3ebee1103f27", "metadata": {}, "source": ["#### 定义查询 + 安全规范说明\n"]}, {"cell_type": "code", "execution_count": null, "id": "6fb88295-0840-4e2d-b79b-def0b0a63a7f", "metadata": {}, "outputs": [], "source": ["from llama_index.output_parsers.guardrails import GuardrailsOutputParser"]}, {"cell_type": "markdown", "id": "bc25edf7-9343-4e82-a3f1-eec4281a9371", "metadata": {}, "source": ["**定义自定义问答和优化提示**\n"]}, {"cell_type": "markdown", "id": "dba8513e", "metadata": {}, "source": ["**定义Guardrails规范**\n"]}, {"cell_type": "code", "execution_count": null, "id": "a4b9201d-fe16-4cc0-8135-a08d9928625d", "metadata": {}, "outputs": [], "source": ["# 您可以定义一个RailSpec并从from_rail_string()初始化Guard对象\n", "# 或者定义Pydantic类并从from_pydantic()初始化Guard对象\n", "# 了解更多信息:https://docs.guardrailsai.com/defining_guards/pydantic/\n", "# Guardrails推荐使用Pydantic\n", "\n", "from pydantic import BaseModel, Field\n", "from typing import List\n", "import guardrails as gd\n", "\n", "\n", "class BulletPoints(BaseModel):\n", " # 在下面的所有字段中,您也可以定义验证器\n", " # 为简洁起见省略了\n", " explanation: str = Field()\n", " explanation2: str = Field()\n", " explanation3: str = Field()\n", "\n", "\n", "class Explanation(BaseModel):\n", " points: BulletPoints = Field(\n", " description=\"关于作者生活中事件的要点。\"\n", " )\n", "\n", "\n", "# 定义提示\n", "prompt = \"\"\"\n", "在此处输入查询字符串。\n", "\n", "${gr.xml_prefix_prompt}\n", "\n", "${output_schema}\n", "\n", "${gr.json_suffix_prompt_v2_wo_none}\n", "\"\"\""]}, {"cell_type": "code", "execution_count": null, "id": "f7af4ebf-1dff-48ec-9fb7-8926af45b6a0", "metadata": {}, "outputs": [], "source": ["from llama_index.llms.openai import OpenAI\n", "\n", "# 创建一个guard对象\n", "guard = gd.Guard.from_pydantic(output_class=Explanation, prompt=prompt)\n", "\n", "# 创建output parse对象\n", "output_parser = GuardrailsOutputParser(guard)\n", "\n", "# 附加到一个llm对象\n", "llm = OpenAI(output_parser=output_parser)"]}, {"cell_type": "code", "execution_count": null, "id": "1ba18a80-35f4-4fd4-9b13-9f13f84db4fe", "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["Context information is below.\n", "---------------------\n", "{context_str}\n", "---------------------\n", "Given the context information and not prior knowledge, answer the query.\n", "Query: {query_str}\n", "Answer: \n", "\n", "\n", "Given below is XML that describes the information to extract from this document and the tags to extract it into.\n", "\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "ONLY return a valid JSON object (no other text is necessary). The JSON MUST conform to the XML format, including any types and format requests e.g. requests for lists, objects and specific types. Be correct and concise.\n", "\n", "\n"]}], "source": ["from llama_index.core.prompts.default_prompts import (\n", " DEFAULT_TEXT_QA_PROMPT_TMPL,\n", ")\n", "fmt_qa_tmpl = output_parser.format(DEFAULT_TEXT_QA_PROMPT_TMPL)\n", "print(fmt_qa_tmpl)"]}, {"cell_type": "markdown", "id": "b6caf93b-6345-4c65-a346-a95b0f1746c4", "metadata": {}, "source": ["#### 查询索引\n"]}, {"cell_type": "code", "execution_count": null, "id": "fb9cdf43-0f31-4c36-869b-df9fa50aebdb", "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["INFO:httpx:HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", "HTTP Request: POST https://api.openai.com/v1/embeddings \"HTTP/1.1 200 OK\"\n", "INFO:httpx:HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n", "HTTP Request: POST https://api.openai.com/v1/chat/completions \"HTTP/1.1 200 OK\"\n"]}], "source": ["query_engine = index.as_query_engine(\n", " llm=llm,\n", ")\n", "response = query_engine.query(\n", " \"What are the three items the author did growing up?\",\n", ")"]}, {"cell_type": "code", "execution_count": null, "id": "bc7760b6-5be3-4303-b97e-3f5edacf674b", "metadata": {}, "outputs": [{"name": "stdout", "output_type": "stream", "text": ["{'points': {'explanation': 'Writing short stories', 'explanation2': 'Programming on the IBM 1401 in 9th grade', 'explanation3': 'Getting a TRS-80 computer and starting programming in 1980'}}\n"]}], "source": ["print(response)"]}, {"cell_type": "code", "execution_count": null, "id": "a5b06d22", "metadata": {}, "outputs": [{"data": {"text/html": ["
Logs\n", "└── ╭────────────────────────────────────────────────── Step 0 ───────────────────────────────────────────────────╮\n", "    │ ╭──────────────────────────────────────────────── Prompt ─────────────────────────────────────────────────╮ │\n", "    │ │ No prompt                                                                                               │ │\n", "    │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │\n", "    │ ╭──────────────────────────────────────────── Message History ────────────────────────────────────────────╮ │\n", "    │ │ No message history.                                                                                     │ │\n", "    │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │\n", "    │ ╭──────────────────────────────────────────── Raw LLM Output ─────────────────────────────────────────────╮ │\n", "    │ │ {                                                                                                       │ │\n", "    │ │     \"points\": {                                                                                         │ │\n", "    │ │         \"explanation\": \"Writing short stories\",                                                         │ │\n", "    │ │         \"explanation2\": \"Programming on the IBM 1401 in 9th grade\",                                     │ │\n", "    │ │         \"explanation3\": \"Getting a TRS-80 computer and starting programming in 1980\"                    │ │\n", "    │ │     }                                                                                                   │ │\n", "    │ │ }                                                                                                       │ │\n", "    │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │\n", "    │ ╭─────────────────────────────────────────── Validated Output ────────────────────────────────────────────╮ │\n", "    │ │ {                                                                                                       │ │\n", "    │ │     'points': {                                                                                         │ │\n", "    │ │         'explanation': 'Writing short stories',                                                         │ │\n", "    │ │         'explanation2': 'Programming on the IBM 1401 in 9th grade',                                     │ │\n", "    │ │         'explanation3': 'Getting a TRS-80 computer and starting programming in 1980'                    │ │\n", "    │ │     }                                                                                                   │ │\n", "    │ │ }                                                                                                       │ │\n", "    │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │\n", "    ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n", "
\n"], "text/plain": ["Logs\n", "└── ╭────────────────────────────────────────────────── Step 0 ───────────────────────────────────────────────────╮\n", " │ \u001b[48;2;240;248;255m╭─\u001b[0m\u001b[48;2;240;248;255m───────────────────────────────────────────────\u001b[0m\u001b[48;2;240;248;255m Prompt \u001b[0m\u001b[48;2;240;248;255m────────────────────────────────────────────────\u001b[0m\u001b[48;2;240;248;255m─╮\u001b[0m │\n", " │ \u001b[48;2;240;248;255m│\u001b[0m\u001b[48;2;240;248;255m \u001b[0m\u001b[48;2;240;248;255mNo prompt\u001b[0m\u001b[48;2;240;248;255m \u001b[0m\u001b[48;2;240;248;255m \u001b[0m\u001b[48;2;240;248;255m│\u001b[0m │\n", " │ \u001b[48;2;240;248;255m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m │\n", " │ \u001b[48;2;231;223;235m╭─\u001b[0m\u001b[48;2;231;223;235m───────────────────────────────────────────\u001b[0m\u001b[48;2;231;223;235m Message History \u001b[0m\u001b[48;2;231;223;235m───────────────────────────────────────────\u001b[0m\u001b[48;2;231;223;235m─╮\u001b[0m │\n", " │ \u001b[48;2;231;223;235m│\u001b[0m\u001b[48;2;231;223;235m \u001b[0m\u001b[48;2;231;223;235mNo message history.\u001b[0m\u001b[48;2;231;223;235m \u001b[0m\u001b[48;2;231;223;235m \u001b[0m\u001b[48;2;231;223;235m│\u001b[0m │\n", " │ \u001b[48;2;231;223;235m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m │\n", " │ \u001b[48;2;245;245;220m╭─\u001b[0m\u001b[48;2;245;245;220m───────────────────────────────────────────\u001b[0m\u001b[48;2;245;245;220m Raw LLM Output \u001b[0m\u001b[48;2;245;245;220m────────────────────────────────────────────\u001b[0m\u001b[48;2;245;245;220m─╮\u001b[0m │\n", " │ \u001b[48;2;245;245;220m│\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m{\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m│\u001b[0m │\n", " │ \u001b[48;2;245;245;220m│\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m \"points\": {\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m│\u001b[0m │\n", " │ \u001b[48;2;245;245;220m│\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m \"explanation\": \"Writing short stories\",\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m│\u001b[0m │\n", " │ \u001b[48;2;245;245;220m│\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m \"explanation2\": \"Programming on the IBM 1401 in 9th grade\",\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m│\u001b[0m │\n", " │ \u001b[48;2;245;245;220m│\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m \"explanation3\": \"Getting a TRS-80 computer and starting programming in 1980\"\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m│\u001b[0m │\n", " │ \u001b[48;2;245;245;220m│\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m }\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m│\u001b[0m │\n", " │ \u001b[48;2;245;245;220m│\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m}\u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m \u001b[0m\u001b[48;2;245;245;220m│\u001b[0m │\n", " │ \u001b[48;2;245;245;220m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m │\n", " │ \u001b[48;2;240;255;240m╭─\u001b[0m\u001b[48;2;240;255;240m──────────────────────────────────────────\u001b[0m\u001b[48;2;240;255;240m Validated Output \u001b[0m\u001b[48;2;240;255;240m───────────────────────────────────────────\u001b[0m\u001b[48;2;240;255;240m─╮\u001b[0m │\n", " │ \u001b[48;2;240;255;240m│\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m{\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m│\u001b[0m │\n", " │ \u001b[48;2;240;255;240m│\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m 'points': {\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m│\u001b[0m │\n", " │ \u001b[48;2;240;255;240m│\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m 'explanation': 'Writing short stories',\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m│\u001b[0m │\n", " │ \u001b[48;2;240;255;240m│\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m 'explanation2': 'Programming on the IBM 1401 in 9th grade',\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m│\u001b[0m │\n", " │ \u001b[48;2;240;255;240m│\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m 'explanation3': 'Getting a TRS-80 computer and starting programming in 1980'\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m│\u001b[0m │\n", " │ \u001b[48;2;240;255;240m│\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m }\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m│\u001b[0m │\n", " │ \u001b[48;2;240;255;240m│\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m}\u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m \u001b[0m\u001b[48;2;240;255;240m│\u001b[0m │\n", " │ \u001b[48;2;240;255;240m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m │\n", " ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n"]}, "execution_count": null, "metadata": {}, "output_type": "execute_result"}], "source": ["# 查看警卫的历史记录摘要\n", "guard.history.last.tree"]}], "metadata": {"kernelspec": {"display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3"}, "language_info": {"codemirror_mode": {"name": "ipython", "version": 3}, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3"}}, "nbformat": 4, "nbformat_minor": 5}