🌊 Medical appointment booking with LaVague¶
This notebook shows how one can use LaVague to create an AI Web Agent that can navigate the web to find out if a doctor is available to book an appointment!
We will automate booking on Doctolib, a French leader in medical appointment as an example, but this should work on other websites.
If not, do not hesitate to reach out to us on Discord to share your issues.
Overview¶
We will create the agent and serve it through a Gradio interface.
We will use the following solutions to build this AI Web Agent:
- Claude Sonnet 3.5 for the World Model to do web planning. You will need to provide an
ANTHROPIC_API_KEYafter getting it. You can look at how to use other models - Llama 3.1 70b for the Action Engine to do action generation to pilot the browser. Here we will use Fireworks API to consume a managed Llama 3.1 70b. You will therefore need to provide a
FIREWORKS_API_KEY. - OpenAI text-embedding-3-small to do semantic search on the DOM to find the right element to interact with. This will require an
OPENAI_API_KEYthat you can get following their quickstart.
If you want to know more about LaVague, you can have a look at our architecture, or our webinars.
Installation¶
We start by downloading LaVague and the other integrations:
!pip install lavague
!pip install llama-index-multi-modal-llms-anthropic
!pip install llama-index-llms-fireworks
Collecting lavague
Downloading lavague-1.1.18-py3-none-any.whl.metadata (8.6 kB)
Collecting lavague-contexts-openai<0.3.0,>=0.2.0 (from lavague)
Downloading lavague_contexts_openai-0.2.4-py3-none-any.whl.metadata (1.5 kB)
Collecting lavague-core<0.3.0,>=0.2.31 (from lavague)
Downloading lavague_core-0.2.31-py3-none-any.whl.metadata (1.5 kB)
Collecting lavague-drivers-selenium<0.3.0,>=0.2.12 (from lavague)
Downloading lavague_drivers_selenium-0.2.12-py3-none-any.whl.metadata (1.2 kB)
Collecting lavague-gradio<0.3.0,>=0.2.8 (from lavague)
Downloading lavague_gradio-0.2.8-py3-none-any.whl.metadata (1.1 kB)
Collecting llama-index-embeddings-azure-openai==0.1.11 (from lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading llama_index_embeddings_azure_openai-0.1.11-py3-none-any.whl.metadata (804 bytes)
Collecting llama-index-embeddings-openai<0.2.0,>=0.1.9 (from lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading llama_index_embeddings_openai-0.1.11-py3-none-any.whl.metadata (655 bytes)
Collecting llama-index-llms-azure-openai==0.1.10 (from lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading llama_index_llms_azure_openai-0.1.10-py3-none-any.whl.metadata (787 bytes)
Collecting llama-index-llms-openai<0.2.0,>=0.1.9 (from lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading llama_index_llms_openai-0.1.27-py3-none-any.whl.metadata (610 bytes)
Collecting llama-index-multi-modal-llms-azure-openai==0.1.4 (from lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading llama_index_multi_modal_llms_azure_openai-0.1.4-py3-none-any.whl.metadata (820 bytes)
Collecting llama-index-multi-modal-llms-openai<0.2.0,>=0.1.6 (from lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading llama_index_multi_modal_llms_openai-0.1.8-py3-none-any.whl.metadata (728 bytes)
Collecting llama-index-core<0.11.0,>=0.10.11.post1 (from llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading llama_index_core-0.10.60-py3-none-any.whl.metadata (2.4 kB)
Collecting azure-identity<2.0.0,>=1.15.0 (from llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading azure_identity-1.17.1-py3-none-any.whl.metadata (79 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.4/79.4 kB 3.1 MB/s eta 0:00:00
Collecting httpx (from llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading httpx-0.27.0-py3-none-any.whl.metadata (7.2 kB)
Requirement already satisfied: PyYAML>=5.3 in /usr/local/lib/python3.10/dist-packages (from lavague-core<0.3.0,>=0.2.31->lavague) (6.0.1)
Requirement already satisfied: ipython<8.0.0,>=7.34.0 in /usr/local/lib/python3.10/dist-packages (from lavague-core<0.3.0,>=0.2.31->lavague) (7.34.0)
Requirement already satisfied: jsonschema<5.0.0,>=4.23.0 in /usr/local/lib/python3.10/dist-packages (from lavague-core<0.3.0,>=0.2.31->lavague) (4.23.0)
Collecting langchain<0.2.0,>=0.1.20 (from lavague-core<0.3.0,>=0.2.31->lavague)
Downloading langchain-0.1.20-py3-none-any.whl.metadata (13 kB)
Collecting llama-index==0.10.56 (from lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_index-0.10.56-py3-none-any.whl.metadata (11 kB)
Collecting llama-index-retrievers-bm25<0.2.0,>=0.1.3 (from lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_index_retrievers_bm25-0.1.5-py3-none-any.whl.metadata (700 bytes)
Collecting lxml<6.0.0,>=5.1.1 (from lavague-core<0.3.0,>=0.2.31->lavague)
Downloading lxml-5.2.2-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (3.4 kB)
Collecting lxml-html-clean<0.2.0,>=0.1.1 (from lavague-core<0.3.0,>=0.2.31->lavague)
Downloading lxml_html_clean-0.1.1-py3-none-any.whl.metadata (1.5 kB)
Requirement already satisfied: msgpack<2.0.0,>=1.0.8 in /usr/local/lib/python3.10/dist-packages (from lavague-core<0.3.0,>=0.2.31->lavague) (1.0.8)
Collecting seaborn<0.14.0,>=0.13.2 (from lavague-core<0.3.0,>=0.2.31->lavague)
Downloading seaborn-0.13.2-py3-none-any.whl.metadata (5.4 kB)
Collecting tenacity<8.4.0,>=8.2.0 (from lavague-core<0.3.0,>=0.2.31->lavague)
Downloading tenacity-8.3.0-py3-none-any.whl.metadata (1.2 kB)
Collecting trafilatura<2.0.0,>=1.9.0 (from lavague-core<0.3.0,>=0.2.31->lavague)
Downloading trafilatura-1.12.0-py3-none-any.whl.metadata (14 kB)
Collecting llama-index-agent-openai<0.3.0,>=0.1.4 (from llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_index_agent_openai-0.2.9-py3-none-any.whl.metadata (729 bytes)
Collecting llama-index-cli<0.2.0,>=0.1.2 (from llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_index_cli-0.1.13-py3-none-any.whl.metadata (1.5 kB)
Collecting llama-index-core<0.11.0,>=0.10.11.post1 (from llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading llama_index_core-0.10.56-py3-none-any.whl.metadata (2.5 kB)
Collecting llama-index-indices-managed-llama-cloud>=0.2.0 (from llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_index_indices_managed_llama_cloud-0.2.7-py3-none-any.whl.metadata (3.8 kB)
Collecting llama-index-legacy<0.10.0,>=0.9.48 (from llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_index_legacy-0.9.48-py3-none-any.whl.metadata (8.5 kB)
Collecting llama-index-program-openai<0.2.0,>=0.1.3 (from llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_index_program_openai-0.1.7-py3-none-any.whl.metadata (760 bytes)
Collecting llama-index-question-gen-openai<0.2.0,>=0.1.2 (from llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_index_question_gen_openai-0.1.3-py3-none-any.whl.metadata (785 bytes)
Collecting llama-index-readers-file<0.2.0,>=0.1.4 (from llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_index_readers_file-0.1.32-py3-none-any.whl.metadata (5.4 kB)
Collecting llama-index-readers-llama-parse>=0.1.2 (from llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_index_readers_llama_parse-0.1.6-py3-none-any.whl.metadata (3.6 kB)
Requirement already satisfied: SQLAlchemy>=1.4.49 in /usr/local/lib/python3.10/dist-packages (from SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (2.0.31)
Requirement already satisfied: aiohttp<4.0.0,>=3.8.6 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (3.9.5)
Collecting dataclasses-json (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading dataclasses_json-0.6.7-py3-none-any.whl.metadata (25 kB)
Collecting deprecated>=1.2.9.3 (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading Deprecated-1.2.14-py2.py3-none-any.whl.metadata (5.4 kB)
Collecting dirtyjson<2.0.0,>=1.0.8 (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading dirtyjson-1.0.8-py3-none-any.whl.metadata (11 kB)
Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (2024.6.1)
Requirement already satisfied: nest-asyncio<2.0.0,>=1.5.8 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (1.6.0)
Requirement already satisfied: networkx>=3.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (3.3)
Requirement already satisfied: nltk<4.0.0,>=3.8.1 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (3.8.1)
Requirement already satisfied: numpy<2.0.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (1.26.4)
Collecting openai>=1.1.0 (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading openai-1.38.0-py3-none-any.whl.metadata (22 kB)
Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (2.1.4)
Requirement already satisfied: pillow>=9.0.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (9.4.0)
Requirement already satisfied: requests>=2.31.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (2.31.0)
Collecting tiktoken>=0.3.3 (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading tiktoken-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)
Requirement already satisfied: tqdm<5.0.0,>=4.66.1 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (4.66.4)
Requirement already satisfied: typing-extensions>=4.5.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (4.12.2)
Collecting typing-inspect>=0.8.0 (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading typing_inspect-0.9.0-py3-none-any.whl.metadata (1.5 kB)
Requirement already satisfied: wrapt in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (1.16.0)
Collecting selenium<5.0.0,>=4.18.1 (from lavague-drivers-selenium<0.3.0,>=0.2.12->lavague)
Downloading selenium-4.23.1-py3-none-any.whl.metadata (7.1 kB)
Collecting gradio==4.39.0 (from lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading gradio-4.39.0-py3-none-any.whl.metadata (15 kB)
Collecting aiofiles<24.0,>=22.0 (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading aiofiles-23.2.1-py3-none-any.whl.metadata (9.7 kB)
Requirement already satisfied: anyio<5.0,>=3.0 in /usr/local/lib/python3.10/dist-packages (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (3.7.1)
Collecting fastapi (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading fastapi-0.112.0-py3-none-any.whl.metadata (27 kB)
Collecting ffmpy (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading ffmpy-0.4.0-py3-none-any.whl.metadata (2.9 kB)
Collecting gradio-client==1.1.1 (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading gradio_client-1.1.1-py3-none-any.whl.metadata (7.1 kB)
Requirement already satisfied: huggingface-hub>=0.19.3 in /usr/local/lib/python3.10/dist-packages (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (0.23.5)
Requirement already satisfied: importlib-resources<7.0,>=1.3 in /usr/local/lib/python3.10/dist-packages (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (6.4.0)
Requirement already satisfied: jinja2<4.0 in /usr/local/lib/python3.10/dist-packages (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (3.1.4)
Requirement already satisfied: markupsafe~=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (2.1.5)
Requirement already satisfied: matplotlib~=3.0 in /usr/local/lib/python3.10/dist-packages (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (3.7.1)
Collecting orjson~=3.0 (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading orjson-3.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (50 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.4/50.4 kB 1.9 MB/s eta 0:00:00
Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (24.1)
Requirement already satisfied: pydantic>=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (2.8.2)
Collecting pydub (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading pydub-0.25.1-py2.py3-none-any.whl.metadata (1.4 kB)
Collecting python-multipart>=0.0.9 (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading python_multipart-0.0.9-py3-none-any.whl.metadata (2.5 kB)
Collecting ruff>=0.2.2 (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading ruff-0.5.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (24 kB)
Collecting semantic-version~=2.0 (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading semantic_version-2.10.0-py2.py3-none-any.whl.metadata (9.7 kB)
Collecting tomlkit==0.12.0 (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading tomlkit-0.12.0-py3-none-any.whl.metadata (2.7 kB)
Requirement already satisfied: typer<1.0,>=0.12 in /usr/local/lib/python3.10/dist-packages (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (0.12.3)
Requirement already satisfied: urllib3~=2.0 in /usr/local/lib/python3.10/dist-packages (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (2.0.7)
Collecting uvicorn>=0.14.0 (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading uvicorn-0.30.5-py3-none-any.whl.metadata (6.6 kB)
Collecting websockets<12.0,>=10.0 (from gradio-client==1.1.1->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.6 kB)
Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.10/dist-packages (from ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague) (71.0.4)
Collecting jedi>=0.16 (from ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague)
Using cached jedi-0.19.1-py2.py3-none-any.whl.metadata (22 kB)
Requirement already satisfied: decorator in /usr/local/lib/python3.10/dist-packages (from ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague) (4.4.2)
Requirement already satisfied: pickleshare in /usr/local/lib/python3.10/dist-packages (from ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague) (0.7.5)
Requirement already satisfied: traitlets>=4.2 in /usr/local/lib/python3.10/dist-packages (from ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague) (5.7.1)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague) (3.0.47)
Requirement already satisfied: pygments in /usr/local/lib/python3.10/dist-packages (from ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague) (2.16.1)
Requirement already satisfied: backcall in /usr/local/lib/python3.10/dist-packages (from ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague) (0.2.0)
Requirement already satisfied: matplotlib-inline in /usr/local/lib/python3.10/dist-packages (from ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague) (0.1.7)
Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.10/dist-packages (from ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague) (4.9.0)
Requirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema<5.0.0,>=4.23.0->lavague-core<0.3.0,>=0.2.31->lavague) (23.2.0)
Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema<5.0.0,>=4.23.0->lavague-core<0.3.0,>=0.2.31->lavague) (2023.12.1)
Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema<5.0.0,>=4.23.0->lavague-core<0.3.0,>=0.2.31->lavague) (0.35.1)
Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema<5.0.0,>=4.23.0->lavague-core<0.3.0,>=0.2.31->lavague) (0.19.1)
Requirement already satisfied: async-timeout<5.0.0,>=4.0.0 in /usr/local/lib/python3.10/dist-packages (from langchain<0.2.0,>=0.1.20->lavague-core<0.3.0,>=0.2.31->lavague) (4.0.3)
Collecting langchain-community<0.1,>=0.0.38 (from langchain<0.2.0,>=0.1.20->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading langchain_community-0.0.38-py3-none-any.whl.metadata (8.7 kB)
Collecting langchain-core<0.2.0,>=0.1.52 (from langchain<0.2.0,>=0.1.20->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading langchain_core-0.1.52-py3-none-any.whl.metadata (5.9 kB)
Collecting langchain-text-splitters<0.1,>=0.0.1 (from langchain<0.2.0,>=0.1.20->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading langchain_text_splitters-0.0.2-py3-none-any.whl.metadata (2.2 kB)
Collecting langsmith<0.2.0,>=0.1.17 (from langchain<0.2.0,>=0.1.20->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading langsmith-0.1.96-py3-none-any.whl.metadata (13 kB)
INFO: pip is looking at multiple versions of llama-index-llms-openai to determine which version is compatible with other requirements. This could take a while.
Collecting llama-index-llms-openai<0.2.0,>=0.1.9 (from lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading llama_index_llms_openai-0.1.26-py3-none-any.whl.metadata (610 bytes)
Collecting rank-bm25<0.3.0,>=0.2.2 (from llama-index-retrievers-bm25<0.2.0,>=0.1.3->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading rank_bm25-0.2.2-py3-none-any.whl.metadata (3.2 kB)
Collecting trio~=0.17 (from selenium<5.0.0,>=4.18.1->lavague-drivers-selenium<0.3.0,>=0.2.12->lavague)
Downloading trio-0.26.0-py3-none-any.whl.metadata (8.8 kB)
Collecting trio-websocket~=0.9 (from selenium<5.0.0,>=4.18.1->lavague-drivers-selenium<0.3.0,>=0.2.12->lavague)
Downloading trio_websocket-0.11.1-py3-none-any.whl.metadata (4.7 kB)
Requirement already satisfied: certifi>=2021.10.8 in /usr/local/lib/python3.10/dist-packages (from selenium<5.0.0,>=4.18.1->lavague-drivers-selenium<0.3.0,>=0.2.12->lavague) (2024.7.4)
Requirement already satisfied: websocket-client~=1.8 in /usr/local/lib/python3.10/dist-packages (from selenium<5.0.0,>=4.18.1->lavague-drivers-selenium<0.3.0,>=0.2.12->lavague) (1.8.0)
Collecting courlan>=1.2.0 (from trafilatura<2.0.0,>=1.9.0->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading courlan-1.3.0-py3-none-any.whl.metadata (17 kB)
Collecting htmldate>=1.8.1 (from trafilatura<2.0.0,>=1.9.0->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading htmldate-1.8.1-py3-none-any.whl.metadata (10 kB)
Collecting justext>=3.0.1 (from trafilatura<2.0.0,>=1.9.0->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading jusText-3.0.1-py2.py3-none-any.whl.metadata (6.9 kB)
Requirement already satisfied: charset-normalizer>=3.2.0 in /usr/local/lib/python3.10/dist-packages (from trafilatura<2.0.0,>=1.9.0->lavague-core<0.3.0,>=0.2.31->lavague) (3.3.2)
Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (1.3.1)
Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (1.4.1)
Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (6.0.5)
Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (1.9.4)
Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.10/dist-packages (from anyio<5.0,>=3.0->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (3.7)
Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.10/dist-packages (from anyio<5.0,>=3.0->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (1.3.1)
Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<5.0,>=3.0->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (1.2.2)
Collecting azure-core>=1.23.0 (from azure-identity<2.0.0,>=1.15.0->llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading azure_core-1.30.2-py3-none-any.whl.metadata (37 kB)
Requirement already satisfied: cryptography>=2.5 in /usr/local/lib/python3.10/dist-packages (from azure-identity<2.0.0,>=1.15.0->llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (42.0.8)
Collecting msal>=1.24.0 (from azure-identity<2.0.0,>=1.15.0->llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading msal-1.30.0-py3-none-any.whl.metadata (11 kB)
Collecting msal-extensions>=0.3.0 (from azure-identity<2.0.0,>=1.15.0->llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading msal_extensions-1.2.0-py3-none-any.whl.metadata (7.6 kB)
Requirement already satisfied: babel>=2.15.0 in /usr/local/lib/python3.10/dist-packages (from courlan>=1.2.0->trafilatura<2.0.0,>=1.9.0->lavague-core<0.3.0,>=0.2.31->lavague) (2.15.0)
Collecting tld>=0.13 (from courlan>=1.2.0->trafilatura<2.0.0,>=1.9.0->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading tld-0.13-py2.py3-none-any.whl.metadata (9.4 kB)
Collecting marshmallow<4.0.0,>=3.18.0 (from dataclasses-json->llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading marshmallow-3.21.3-py3-none-any.whl.metadata (7.1 kB)
Collecting dateparser>=1.1.2 (from htmldate>=1.8.1->trafilatura<2.0.0,>=1.9.0->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading dateparser-1.2.0-py2.py3-none-any.whl.metadata (28 kB)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from htmldate>=1.8.1->trafilatura<2.0.0,>=1.9.0->lavague-core<0.3.0,>=0.2.31->lavague) (2.8.2)
Collecting httpcore==1.* (from httpx->llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading httpcore-1.0.5-py3-none-any.whl.metadata (20 kB)
Collecting h11<0.15,>=0.13 (from httpcore==1.*->httpx->llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading h11-0.14.0-py3-none-any.whl.metadata (8.2 kB)
Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub>=0.19.3->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (3.15.4)
Requirement already satisfied: parso<0.9.0,>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from jedi>=0.16->ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague) (0.8.4)
Collecting jsonpatch<2.0,>=1.33 (from langchain-core<0.2.0,>=0.1.52->langchain<0.2.0,>=0.1.20->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading jsonpatch-1.33-py2.py3-none-any.whl.metadata (3.0 kB)
Collecting packaging (from gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading packaging-23.2-py3-none-any.whl.metadata (3.2 kB)
Collecting llama-cloud>=0.0.11 (from llama-index-indices-managed-llama-cloud>=0.2.0->llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_cloud-0.0.11-py3-none-any.whl.metadata (751 bytes)
INFO: pip is looking at multiple versions of llama-index-program-openai to determine which version is compatible with other requirements. This could take a while.
Collecting llama-index-program-openai<0.2.0,>=0.1.3 (from llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_index_program_openai-0.1.6-py3-none-any.whl.metadata (715 bytes)
Requirement already satisfied: beautifulsoup4<5.0.0,>=4.12.3 in /usr/local/lib/python3.10/dist-packages (from llama-index-readers-file<0.2.0,>=0.1.4->llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague) (4.12.3)
Collecting pypdf<5.0.0,>=4.0.1 (from llama-index-readers-file<0.2.0,>=0.1.4->llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading pypdf-4.3.1-py3-none-any.whl.metadata (7.4 kB)
Collecting striprtf<0.0.27,>=0.0.26 (from llama-index-readers-file<0.2.0,>=0.1.4->llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading striprtf-0.0.26-py3-none-any.whl.metadata (2.1 kB)
Collecting llama-parse>=0.4.0 (from llama-index-readers-llama-parse>=0.1.2->llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading llama_parse-0.4.9-py3-none-any.whl.metadata (4.4 kB)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (1.2.1)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (4.53.1)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (1.4.5)
Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib~=3.0->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (3.1.2)
Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (2024.1)
Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas->llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (2024.1)
Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/dist-packages (from pexpect>4.3->ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague) (0.7.0)
Requirement already satisfied: wcwidth in /usr/local/lib/python3.10/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython<8.0.0,>=7.34.0->lavague-core<0.3.0,>=0.2.31->lavague) (0.2.13)
Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic>=2.0->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (0.7.0)
Requirement already satisfied: pydantic-core==2.20.1 in /usr/local/lib/python3.10/dist-packages (from pydantic>=2.0->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (2.20.1)
Requirement already satisfied: greenlet!=0.4.17 in /usr/local/lib/python3.10/dist-packages (from SQLAlchemy>=1.4.49->SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (3.0.3)
Requirement already satisfied: sortedcontainers in /usr/local/lib/python3.10/dist-packages (from trio~=0.17->selenium<5.0.0,>=4.18.1->lavague-drivers-selenium<0.3.0,>=0.2.12->lavague) (2.4.0)
Collecting outcome (from trio~=0.17->selenium<5.0.0,>=4.18.1->lavague-drivers-selenium<0.3.0,>=0.2.12->lavague)
Downloading outcome-1.3.0.post0-py2.py3-none-any.whl.metadata (2.6 kB)
Collecting wsproto>=0.14 (from trio-websocket~=0.9->selenium<5.0.0,>=4.18.1->lavague-drivers-selenium<0.3.0,>=0.2.12->lavague)
Downloading wsproto-1.2.0-py3-none-any.whl.metadata (5.6 kB)
Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0,>=0.12->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (8.1.7)
Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0,>=0.12->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (1.5.4)
Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0,>=0.12->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (13.7.1)
Requirement already satisfied: pysocks!=1.5.7,<2.0,>=1.5.6 in /usr/local/lib/python3.10/dist-packages (from urllib3[socks]<3,>=1.26->selenium<5.0.0,>=4.18.1->lavague-drivers-selenium<0.3.0,>=0.2.12->lavague) (1.7.1)
Collecting starlette<0.38.0,>=0.37.2 (from fastapi->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague)
Downloading starlette-0.37.2-py3-none-any.whl.metadata (5.9 kB)
Requirement already satisfied: six>=1.11.0 in /usr/local/lib/python3.10/dist-packages (from azure-core>=1.23.0->azure-identity<2.0.0,>=1.15.0->llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (1.16.0)
Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4<5.0.0,>=4.12.3->llama-index-readers-file<0.2.0,>=0.1.4->llama-index==0.10.56->lavague-core<0.3.0,>=0.2.31->lavague) (2.5)
Requirement already satisfied: cffi>=1.12 in /usr/local/lib/python3.10/dist-packages (from cryptography>=2.5->azure-identity<2.0.0,>=1.15.0->llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (1.16.0)
Requirement already satisfied: regex!=2019.02.19,!=2021.8.27 in /usr/local/lib/python3.10/dist-packages (from dateparser>=1.1.2->htmldate>=1.8.1->trafilatura<2.0.0,>=1.9.0->lavague-core<0.3.0,>=0.2.31->lavague) (2024.5.15)
Requirement already satisfied: tzlocal in /usr/local/lib/python3.10/dist-packages (from dateparser>=1.1.2->htmldate>=1.8.1->trafilatura<2.0.0,>=1.9.0->lavague-core<0.3.0,>=0.2.31->lavague) (5.2)
Collecting jsonpointer>=1.9 (from jsonpatch<2.0,>=1.33->langchain-core<0.2.0,>=0.1.52->langchain<0.2.0,>=0.1.20->lavague-core<0.3.0,>=0.2.31->lavague)
Downloading jsonpointer-3.0.0-py2.py3-none-any.whl.metadata (2.3 kB)
Requirement already satisfied: PyJWT<3,>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from PyJWT[crypto]<3,>=1.0.0->msal>=1.24.0->azure-identity<2.0.0,>=1.15.0->llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (2.8.0)
Collecting portalocker<3,>=1.4 (from msal-extensions>=0.3.0->azure-identity<2.0.0,>=1.15.0->llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading portalocker-2.10.1-py3-none-any.whl.metadata (8.5 kB)
Requirement already satisfied: joblib in /usr/local/lib/python3.10/dist-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (1.4.2)
Requirement already satisfied: distro<2,>=1.7.0 in /usr/lib/python3/dist-packages (from openai>=1.1.0->llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (1.7.0)
Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0,>=0.12->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (3.0.0)
Collecting mypy-extensions>=0.3.0 (from typing-inspect>=0.8.0->llama-index-core<0.11.0,>=0.10.11.post1->llama-index-embeddings-azure-openai==0.1.11->lavague-contexts-openai<0.3.0,>=0.2.0->lavague)
Downloading mypy_extensions-1.0.0-py3-none-any.whl.metadata (1.1 kB)
Requirement already satisfied: pycparser in /usr/local/lib/python3.10/dist-packages (from cffi>=1.12->cryptography>=2.5->azure-identity<2.0.0,>=1.15.0->llama-index-llms-azure-openai==0.1.10->lavague-contexts-openai<0.3.0,>=0.2.0->lavague) (2.22)
Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0,>=0.12->gradio==4.39.0->lavague-gradio<0.3.0,>=0.2.8->lavague) (0.1.2)
Downloading lavague-1.1.18-py3-none-any.whl (8.4 kB)
Downloading lavague_contexts_openai-0.2.4-py3-none-any.whl (2.5 kB)
Downloading llama_index_embeddings_azure_openai-0.1.11-py3-none-any.whl (3.3 kB)
Downloading llama_index_llms_azure_openai-0.1.10-py3-none-any.whl (5.1 kB)
Downloading llama_index_multi_modal_llms_azure_openai-0.1.4-py3-none-any.whl (3.7 kB)
Downloading lavague_core-0.2.31-py3-none-any.whl (53 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 53.3/53.3 kB 4.2 MB/s eta 0:00:00
Downloading llama_index-0.10.56-py3-none-any.whl (6.8 kB)
Downloading llama_index_core-0.10.56-py3-none-any.whl (15.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 15.5/15.5 MB 80.0 MB/s eta 0:00:00
Downloading lavague_drivers_selenium-0.2.12-py3-none-any.whl (9.1 kB)
Downloading lavague_gradio-0.2.8-py3-none-any.whl (3.5 kB)
Downloading gradio-4.39.0-py3-none-any.whl (12.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.4/12.4 MB 95.2 MB/s eta 0:00:00
Downloading gradio_client-1.1.1-py3-none-any.whl (318 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 318.2/318.2 kB 23.4 MB/s eta 0:00:00
Downloading tomlkit-0.12.0-py3-none-any.whl (37 kB)
Downloading langchain-0.1.20-py3-none-any.whl (1.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 46.7 MB/s eta 0:00:00
Downloading llama_index_embeddings_openai-0.1.11-py3-none-any.whl (6.3 kB)
Downloading llama_index_llms_openai-0.1.26-py3-none-any.whl (11 kB)
Downloading llama_index_multi_modal_llms_openai-0.1.8-py3-none-any.whl (5.9 kB)
Downloading llama_index_retrievers_bm25-0.1.5-py3-none-any.whl (2.8 kB)
Downloading lxml-5.2.2-cp310-cp310-manylinux_2_28_x86_64.whl (5.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.0/5.0 MB 86.5 MB/s eta 0:00:00
Downloading lxml_html_clean-0.1.1-py3-none-any.whl (11 kB)
Downloading seaborn-0.13.2-py3-none-any.whl (294 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 294.9/294.9 kB 19.3 MB/s eta 0:00:00
Downloading selenium-4.23.1-py3-none-any.whl (9.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.4/9.4 MB 92.3 MB/s eta 0:00:00
Downloading tenacity-8.3.0-py3-none-any.whl (25 kB)
Downloading trafilatura-1.12.0-py3-none-any.whl (130 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 131.0/131.0 kB 9.8 MB/s eta 0:00:00
Downloading aiofiles-23.2.1-py3-none-any.whl (15 kB)
Downloading azure_identity-1.17.1-py3-none-any.whl (173 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 173.2/173.2 kB 13.5 MB/s eta 0:00:00
Downloading courlan-1.3.0-py3-none-any.whl (33 kB)
Downloading dataclasses_json-0.6.7-py3-none-any.whl (28 kB)
Downloading htmldate-1.8.1-py3-none-any.whl (31 kB)
Downloading httpx-0.27.0-py3-none-any.whl (75 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 75.6/75.6 kB 5.6 MB/s eta 0:00:00
Downloading httpcore-1.0.5-py3-none-any.whl (77 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 77.9/77.9 kB 5.6 MB/s eta 0:00:00
Using cached jedi-0.19.1-py2.py3-none-any.whl (1.6 MB)
Downloading jusText-3.0.1-py2.py3-none-any.whl (837 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 837.8/837.8 kB 41.8 MB/s eta 0:00:00
Downloading langchain_community-0.0.38-py3-none-any.whl (2.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 62.0 MB/s eta 0:00:00
Downloading langchain_core-0.1.52-py3-none-any.whl (302 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 302.9/302.9 kB 22.9 MB/s eta 0:00:00
Downloading langchain_text_splitters-0.0.2-py3-none-any.whl (23 kB)
Downloading langsmith-0.1.96-py3-none-any.whl (140 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.1/140.1 kB 9.1 MB/s eta 0:00:00
Downloading llama_index_agent_openai-0.2.9-py3-none-any.whl (13 kB)
Downloading llama_index_cli-0.1.13-py3-none-any.whl (27 kB)
Downloading llama_index_indices_managed_llama_cloud-0.2.7-py3-none-any.whl (9.5 kB)
Downloading llama_index_legacy-0.9.48-py3-none-any.whl (2.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 71.3 MB/s eta 0:00:00
Downloading llama_index_program_openai-0.1.6-py3-none-any.whl (5.2 kB)
Downloading llama_index_question_gen_openai-0.1.3-py3-none-any.whl (2.9 kB)
Downloading llama_index_readers_file-0.1.32-py3-none-any.whl (38 kB)
Downloading llama_index_readers_llama_parse-0.1.6-py3-none-any.whl (2.5 kB)
Downloading orjson-3.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 141.1/141.1 kB 11.2 MB/s eta 0:00:00
Downloading packaging-23.2-py3-none-any.whl (53 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 53.0/53.0 kB 4.2 MB/s eta 0:00:00
Downloading python_multipart-0.0.9-py3-none-any.whl (22 kB)
Downloading rank_bm25-0.2.2-py3-none-any.whl (8.6 kB)
Downloading ruff-0.5.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.2 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 106.9 MB/s eta 0:00:00
Downloading semantic_version-2.10.0-py2.py3-none-any.whl (15 kB)
Downloading trio-0.26.0-py3-none-any.whl (475 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 475.7/475.7 kB 34.3 MB/s eta 0:00:00
Downloading trio_websocket-0.11.1-py3-none-any.whl (17 kB)
Downloading uvicorn-0.30.5-py3-none-any.whl (62 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 5.5 MB/s eta 0:00:00
Downloading fastapi-0.112.0-py3-none-any.whl (93 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 93.1/93.1 kB 7.5 MB/s eta 0:00:00
Downloading ffmpy-0.4.0-py3-none-any.whl (5.8 kB)
Downloading pydub-0.25.1-py2.py3-none-any.whl (32 kB)
Downloading azure_core-1.30.2-py3-none-any.whl (194 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 194.3/194.3 kB 15.1 MB/s eta 0:00:00
Downloading dateparser-1.2.0-py2.py3-none-any.whl (294 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 295.0/295.0 kB 23.1 MB/s eta 0:00:00
Downloading Deprecated-1.2.14-py2.py3-none-any.whl (9.6 kB)
Downloading dirtyjson-1.0.8-py3-none-any.whl (25 kB)
Downloading h11-0.14.0-py3-none-any.whl (58 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.3/58.3 kB 4.6 MB/s eta 0:00:00
Downloading jsonpatch-1.33-py2.py3-none-any.whl (12 kB)
Downloading llama_cloud-0.0.11-py3-none-any.whl (154 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 154.8/154.8 kB 11.5 MB/s eta 0:00:00
Downloading llama_parse-0.4.9-py3-none-any.whl (9.4 kB)
Downloading marshmallow-3.21.3-py3-none-any.whl (49 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 49.2/49.2 kB 3.5 MB/s eta 0:00:00
Downloading msal-1.30.0-py3-none-any.whl (111 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 111.8/111.8 kB 9.4 MB/s eta 0:00:00
Downloading msal_extensions-1.2.0-py3-none-any.whl (19 kB)
Downloading openai-1.38.0-py3-none-any.whl (335 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 335.9/335.9 kB 24.1 MB/s eta 0:00:00
Downloading pypdf-4.3.1-py3-none-any.whl (295 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 295.8/295.8 kB 22.6 MB/s eta 0:00:00
Downloading starlette-0.37.2-py3-none-any.whl (71 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.9/71.9 kB 5.9 MB/s eta 0:00:00
Downloading striprtf-0.0.26-py3-none-any.whl (6.9 kB)
Downloading tiktoken-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 54.9 MB/s eta 0:00:00
Downloading tld-0.13-py2.py3-none-any.whl (263 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 263.8/263.8 kB 21.2 MB/s eta 0:00:00
Downloading typing_inspect-0.9.0-py3-none-any.whl (8.8 kB)
Downloading websockets-11.0.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (129 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 129.9/129.9 kB 10.1 MB/s eta 0:00:00
Downloading wsproto-1.2.0-py3-none-any.whl (24 kB)
Downloading outcome-1.3.0.post0-py2.py3-none-any.whl (10 kB)
Downloading jsonpointer-3.0.0-py2.py3-none-any.whl (7.6 kB)
Downloading mypy_extensions-1.0.0-py3-none-any.whl (4.7 kB)
Downloading portalocker-2.10.1-py3-none-any.whl (18 kB)
Installing collected packages: striprtf, pydub, dirtyjson, websockets, tomlkit, tld, tenacity, semantic-version, ruff, rank-bm25, python-multipart, pypdf, portalocker, packaging, outcome, orjson, mypy-extensions, lxml, jsonpointer, jedi, h11, ffmpy, deprecated, aiofiles, wsproto, uvicorn, typing-inspect, trio, tiktoken, starlette, marshmallow, lxml-html-clean, jsonpatch, httpcore, dateparser, courlan, azure-core, trio-websocket, seaborn, langsmith, httpx, htmldate, fastapi, dataclasses-json, selenium, openai, msal, llama-cloud, langchain-core, justext, gradio-client, trafilatura, msal-extensions, llama-index-legacy, llama-index-core, langchain-text-splitters, langchain-community, gradio, llama-parse, llama-index-retrievers-bm25, llama-index-readers-file, llama-index-llms-openai, llama-index-indices-managed-llama-cloud, llama-index-embeddings-openai, langchain, azure-identity, llama-index-readers-llama-parse, llama-index-multi-modal-llms-openai, llama-index-llms-azure-openai, llama-index-cli, llama-index-agent-openai, llama-index-program-openai, llama-index-multi-modal-llms-azure-openai, llama-index-embeddings-azure-openai, llama-index-question-gen-openai, llama-index, lavague-core, lavague-gradio, lavague-drivers-selenium, lavague-contexts-openai, lavague
Attempting uninstall: tomlkit
Found existing installation: tomlkit 0.13.0
Uninstalling tomlkit-0.13.0:
Successfully uninstalled tomlkit-0.13.0
Attempting uninstall: tenacity
Found existing installation: tenacity 9.0.0
Uninstalling tenacity-9.0.0:
Successfully uninstalled tenacity-9.0.0
Attempting uninstall: packaging
Found existing installation: packaging 24.1
Uninstalling packaging-24.1:
Successfully uninstalled packaging-24.1
Attempting uninstall: lxml
Found existing installation: lxml 4.9.4
Uninstalling lxml-4.9.4:
Successfully uninstalled lxml-4.9.4
Attempting uninstall: seaborn
Found existing installation: seaborn 0.13.1
Uninstalling seaborn-0.13.1:
Successfully uninstalled seaborn-0.13.1
Successfully installed aiofiles-23.2.1 azure-core-1.30.2 azure-identity-1.17.1 courlan-1.3.0 dataclasses-json-0.6.7 dateparser-1.2.0 deprecated-1.2.14 dirtyjson-1.0.8 fastapi-0.112.0 ffmpy-0.4.0 gradio-4.39.0 gradio-client-1.1.1 h11-0.14.0 htmldate-1.8.1 httpcore-1.0.5 httpx-0.27.0 jedi-0.19.1 jsonpatch-1.33 jsonpointer-3.0.0 justext-3.0.1 langchain-0.1.20 langchain-community-0.0.38 langchain-core-0.1.52 langchain-text-splitters-0.0.2 langsmith-0.1.96 lavague-1.1.18 lavague-contexts-openai-0.2.4 lavague-core-0.2.31 lavague-drivers-selenium-0.2.12 lavague-gradio-0.2.8 llama-cloud-0.0.11 llama-index-0.10.56 llama-index-agent-openai-0.2.9 llama-index-cli-0.1.13 llama-index-core-0.10.56 llama-index-embeddings-azure-openai-0.1.11 llama-index-embeddings-openai-0.1.11 llama-index-indices-managed-llama-cloud-0.2.7 llama-index-legacy-0.9.48 llama-index-llms-azure-openai-0.1.10 llama-index-llms-openai-0.1.26 llama-index-multi-modal-llms-azure-openai-0.1.4 llama-index-multi-modal-llms-openai-0.1.8 llama-index-program-openai-0.1.6 llama-index-question-gen-openai-0.1.3 llama-index-readers-file-0.1.32 llama-index-readers-llama-parse-0.1.6 llama-index-retrievers-bm25-0.1.5 llama-parse-0.4.9 lxml-5.2.2 lxml-html-clean-0.1.1 marshmallow-3.21.3 msal-1.30.0 msal-extensions-1.2.0 mypy-extensions-1.0.0 openai-1.38.0 orjson-3.10.6 outcome-1.3.0.post0 packaging-23.2 portalocker-2.10.1 pydub-0.25.1 pypdf-4.3.1 python-multipart-0.0.9 rank-bm25-0.2.2 ruff-0.5.6 seaborn-0.13.2 selenium-4.23.1 semantic-version-2.10.0 starlette-0.37.2 striprtf-0.0.26 tenacity-8.3.0 tiktoken-0.7.0 tld-0.13 tomlkit-0.12.0 trafilatura-1.12.0 trio-0.26.0 trio-websocket-0.11.1 typing-inspect-0.9.0 uvicorn-0.30.5 websockets-11.0.3 wsproto-1.2.0
Collecting llama-index-multi-modal-llms-anthropic
Downloading llama_index_multi_modal_llms_anthropic-0.1.6-py3-none-any.whl.metadata (725 bytes)
Collecting anthropic<0.29.0,>=0.26.2 (from llama-index-multi-modal-llms-anthropic)
Downloading anthropic-0.28.1-py3-none-any.whl.metadata (18 kB)
Requirement already satisfied: llama-index-core<0.11.0,>=0.10.1 in /usr/local/lib/python3.10/dist-packages (from llama-index-multi-modal-llms-anthropic) (0.10.56)
Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (3.7.1)
Requirement already satisfied: distro<2,>=1.7.0 in /usr/lib/python3/dist-packages (from anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (1.7.0)
Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (0.27.0)
Collecting jiter<1,>=0.4.0 (from anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic)
Downloading jiter-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.6 kB)
Requirement already satisfied: pydantic<3,>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (2.8.2)
Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (1.3.1)
Requirement already satisfied: tokenizers>=0.13.0 in /usr/local/lib/python3.10/dist-packages (from anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (0.19.1)
Requirement already satisfied: typing-extensions<5,>=4.7 in /usr/local/lib/python3.10/dist-packages (from anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (4.12.2)
Requirement already satisfied: PyYAML>=6.0.1 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (6.0.1)
Requirement already satisfied: SQLAlchemy>=1.4.49 in /usr/local/lib/python3.10/dist-packages (from SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (2.0.31)
Requirement already satisfied: aiohttp<4.0.0,>=3.8.6 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (3.9.5)
Requirement already satisfied: dataclasses-json in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (0.6.7)
Requirement already satisfied: deprecated>=1.2.9.3 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (1.2.14)
Requirement already satisfied: dirtyjson<2.0.0,>=1.0.8 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (1.0.8)
Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (2024.6.1)
Requirement already satisfied: nest-asyncio<2.0.0,>=1.5.8 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (1.6.0)
Requirement already satisfied: networkx>=3.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (3.3)
Requirement already satisfied: nltk<4.0.0,>=3.8.1 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (3.8.1)
Requirement already satisfied: numpy<2.0.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (1.26.4)
Requirement already satisfied: openai>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (1.38.0)
Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (2.1.4)
Requirement already satisfied: pillow>=9.0.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (9.4.0)
Requirement already satisfied: requests>=2.31.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (2.31.0)
Requirement already satisfied: tenacity!=8.4.0,<9.0.0,>=8.2.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (8.3.0)
Requirement already satisfied: tiktoken>=0.3.3 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (0.7.0)
Requirement already satisfied: tqdm<5.0.0,>=4.66.1 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (4.66.4)
Requirement already satisfied: typing-inspect>=0.8.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (0.9.0)
Requirement already satisfied: wrapt in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (1.16.0)
Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (1.3.1)
Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (23.2.0)
Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (1.4.1)
Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (6.0.5)
Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (1.9.4)
Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (4.0.3)
Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (3.7)
Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (1.2.2)
Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx<1,>=0.23.0->anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (2024.7.4)
Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.10/dist-packages (from httpx<1,>=0.23.0->anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (1.0.5)
Requirement already satisfied: h11<0.15,>=0.13 in /usr/local/lib/python3.10/dist-packages (from httpcore==1.*->httpx<1,>=0.23.0->anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (0.14.0)
Requirement already satisfied: click in /usr/local/lib/python3.10/dist-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (8.1.7)
Requirement already satisfied: joblib in /usr/local/lib/python3.10/dist-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (1.4.2)
Requirement already satisfied: regex>=2021.8.3 in /usr/local/lib/python3.10/dist-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (2024.5.15)
Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (0.7.0)
Requirement already satisfied: pydantic-core==2.20.1 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (2.20.1)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (3.3.2)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (2.0.7)
Requirement already satisfied: greenlet!=0.4.17 in /usr/local/lib/python3.10/dist-packages (from SQLAlchemy>=1.4.49->SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (3.0.3)
Requirement already satisfied: huggingface-hub<1.0,>=0.16.4 in /usr/local/lib/python3.10/dist-packages (from tokenizers>=0.13.0->anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (0.23.5)
Requirement already satisfied: mypy-extensions>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from typing-inspect>=0.8.0->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (1.0.0)
Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in /usr/local/lib/python3.10/dist-packages (from dataclasses-json->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (3.21.3)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (2024.1)
Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (2024.1)
Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers>=0.13.0->anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (3.15.4)
Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.10/dist-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers>=0.13.0->anthropic<0.29.0,>=0.26.2->llama-index-multi-modal-llms-anthropic) (23.2)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-multi-modal-llms-anthropic) (1.16.0)
Downloading llama_index_multi_modal_llms_anthropic-0.1.6-py3-none-any.whl (5.8 kB)
Downloading anthropic-0.28.1-py3-none-any.whl (862 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 862.7/862.7 kB 13.8 MB/s eta 0:00:00
Downloading jiter-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (318 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 318.9/318.9 kB 22.9 MB/s eta 0:00:00
Installing collected packages: jiter, anthropic, llama-index-multi-modal-llms-anthropic
Successfully installed anthropic-0.28.1 jiter-0.5.0 llama-index-multi-modal-llms-anthropic-0.1.6
Collecting llama-index-llms-fireworks
Downloading llama_index_llms_fireworks-0.1.7-py3-none-any.whl.metadata (669 bytes)
Requirement already satisfied: llama-index-core<0.11.0,>=0.10.1 in /usr/local/lib/python3.10/dist-packages (from llama-index-llms-fireworks) (0.10.56)
Requirement already satisfied: llama-index-llms-openai<0.2.0,>=0.1.1 in /usr/local/lib/python3.10/dist-packages (from llama-index-llms-fireworks) (0.1.26)
Requirement already satisfied: PyYAML>=6.0.1 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (6.0.1)
Requirement already satisfied: SQLAlchemy>=1.4.49 in /usr/local/lib/python3.10/dist-packages (from SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2.0.31)
Requirement already satisfied: aiohttp<4.0.0,>=3.8.6 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.9.5)
Requirement already satisfied: dataclasses-json in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (0.6.7)
Requirement already satisfied: deprecated>=1.2.9.3 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.2.14)
Requirement already satisfied: dirtyjson<2.0.0,>=1.0.8 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.0.8)
Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2024.6.1)
Requirement already satisfied: httpx in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (0.27.0)
Requirement already satisfied: nest-asyncio<2.0.0,>=1.5.8 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.6.0)
Requirement already satisfied: networkx>=3.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.3)
Requirement already satisfied: nltk<4.0.0,>=3.8.1 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.8.1)
Requirement already satisfied: numpy<2.0.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.26.4)
Requirement already satisfied: openai>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.38.0)
Requirement already satisfied: pandas in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2.1.4)
Requirement already satisfied: pillow>=9.0.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (9.4.0)
Requirement already satisfied: requests>=2.31.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2.31.0)
Requirement already satisfied: tenacity!=8.4.0,<9.0.0,>=8.2.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (8.3.0)
Requirement already satisfied: tiktoken>=0.3.3 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (0.7.0)
Requirement already satisfied: tqdm<5.0.0,>=4.66.1 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (4.66.4)
Requirement already satisfied: typing-extensions>=4.5.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (4.12.2)
Requirement already satisfied: typing-inspect>=0.8.0 in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (0.9.0)
Requirement already satisfied: wrapt in /usr/local/lib/python3.10/dist-packages (from llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.16.0)
Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.3.1)
Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (23.2.0)
Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.4.1)
Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (6.0.5)
Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.9.4)
Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.8.6->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (4.0.3)
Requirement already satisfied: click in /usr/local/lib/python3.10/dist-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (8.1.7)
Requirement already satisfied: joblib in /usr/local/lib/python3.10/dist-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.4.2)
Requirement already satisfied: regex>=2021.8.3 in /usr/local/lib/python3.10/dist-packages (from nltk<4.0.0,>=3.8.1->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2024.5.15)
Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.1.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.7.1)
Requirement already satisfied: distro<2,>=1.7.0 in /usr/lib/python3/dist-packages (from openai>=1.1.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.7.0)
Requirement already satisfied: pydantic<3,>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.1.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2.8.2)
Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from openai>=1.1.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.3.1)
Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2024.7.4)
Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.10/dist-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.0.5)
Requirement already satisfied: idna in /usr/local/lib/python3.10/dist-packages (from httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.7)
Requirement already satisfied: h11<0.15,>=0.13 in /usr/local/lib/python3.10/dist-packages (from httpcore==1.*->httpx->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (0.14.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.3.2)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.31.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2.0.7)
Requirement already satisfied: greenlet!=0.4.17 in /usr/local/lib/python3.10/dist-packages (from SQLAlchemy>=1.4.49->SQLAlchemy[asyncio]>=1.4.49->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.0.3)
Requirement already satisfied: mypy-extensions>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from typing-inspect>=0.8.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.0.0)
Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in /usr/local/lib/python3.10/dist-packages (from dataclasses-json->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (3.21.3)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2024.1)
Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2024.1)
Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->openai>=1.1.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.2.2)
Requirement already satisfied: packaging>=17.0 in /usr/local/lib/python3.10/dist-packages (from marshmallow<4.0.0,>=3.18.0->dataclasses-json->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (23.2)
Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->openai>=1.1.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (0.7.0)
Requirement already satisfied: pydantic-core==2.20.1 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->openai>=1.1.0->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (2.20.1)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas->llama-index-core<0.11.0,>=0.10.1->llama-index-llms-fireworks) (1.16.0)
Downloading llama_index_llms_fireworks-0.1.7-py3-none-any.whl (4.5 kB)
Installing collected packages: llama-index-llms-fireworks
Successfully installed llama-index-llms-fireworks-0.1.7
We will need to set our secrets with Colab secrets (see the key icon on the left-hand side of the Colab notebook) if on Colab, or simply load them regularly with environment variables.
import os
# Check if running in Google Colab
try:
from google.colab import userdata
IN_COLAB = True
except ImportError:
IN_COLAB = False
if IN_COLAB:
os.environ["FIREWORKS_API_KEY"] = userdata.get('FIREWORKS_API_KEY')
os.environ["ANTHROPIC_API_KEY"] = userdata.get('ANTHROPIC_API_KEY')
os.environ["OPENAI_API_KEY"] = userdata.get('OPENAI_API_KEY')
else:
os.environ["FIREWORKS_API_KEY"] = os.getenv('FIREWORKS_API_KEY')
os.environ["ANTHROPIC_API_KEY"] = os.getenv('ANTHROPIC_API_KEY')
os.environ["OPENAI_API_KEY"] = os.getenv('OPENAI_API_KEY')
Demo¶
Agent preparation¶
We start here by pulling extra knowledge about Doctolib to ensure the WorldModel will provide the right reasoning steps.
You can learn more about building Agents with LaVague in our webinar.
!wget https://raw.githubusercontent.com/lavague-ai/LaVague/main/examples/knowledge/doctolib_knowledge.txt
--2024-08-04 14:09:34-- https://raw.githubusercontent.com/lavague-ai/LaVague/main/examples/knowledge/doctolib_knowledge.txt Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.109.133, 185.199.108.133, 185.199.111.133, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 1619 (1.6K) [text/plain] Saving to: ‘doctolib_knowledge.txt’ doctolib_knowledge. 0%[ ] 0 --.-KB/s doctolib_knowledge. 100%[===================>] 1.58K --.-KB/s in 0s 2024-08-04 14:09:34 (36.8 MB/s) - ‘doctolib_knowledge.txt’ saved [1619/1619]
We prepare our different integrations then create the Agent:
from lavague.drivers.selenium import SeleniumDriver
from lavague.core import ActionEngine, WorldModel
from lavague.core.agents import WebAgent
from llama_index.multi_modal_llms.anthropic import AnthropicMultiModal
from llama_index.llms.fireworks import Fireworks
from llama_index.embeddings.openai import OpenAIEmbedding
# Loading the models
mm_lmm = AnthropicMultiModal(model="claude-3-5-sonnet-20240620", max_tokens=512)
llm = Fireworks(model="accounts/fireworks/models/llama-v3p1-70b-instruct", max_tokens=1024)
embedding = OpenAIEmbedding(model="text-embedding-3-small")
# Preparing the Agent
driver = SeleniumDriver(headless=True)
action_engine = ActionEngine(driver,
llm=llm,
embedding=embedding,
)
world_model = WorldModel(mm_llm=mm_lmm)
world_model.add_knowledge("doctolib_knowledge.txt")
# Create Web Agent
agent = WebAgent(world_model, action_engine, n_steps=15)
# Set URL
agent.get("https://www.doctolib.fr/")
[nltk_data] Downloading package stopwords to
[nltk_data] /usr/local/lib/python3.10/dist-
[nltk_data] packages/llama_index/legacy/_static/nltk_cache...
[nltk_data] Unzipping corpora/stopwords.zip.
[nltk_data] Downloading package punkt to
[nltk_data] /usr/local/lib/python3.10/dist-
[nltk_data] packages/llama_index/legacy/_static/nltk_cache...
[nltk_data] Unzipping tokenizers/punkt.zip.
/usr/local/lib/python3.10/dist-packages/lavague/core/__init__.py:21: UserWarning: Telemetry is turned on. To turn off telemetry, set your LAVAGUE_TELEMETRY to 'NONE'
warnings.warn(warning_message, UserWarning)
2024-08-04 14:09:47,327 - INFO - Screenshot folder cleared
Checking the driver is not blocked¶
It can happen that the driver is blocked.
To check if it is the case, we need to see what is the state of the current page.
Let's display the current screenshot.
import time
# We wait to make sure the page is fully loaded
time.sleep(5)
driver.driver.save_screenshot("screenshot.png")
from IPython.display import Image
Image("screenshot.png")
If you see this, you are good to proceed to running the Agent:
If you see the following screenshot, we will show you ways to avoid unblock the situation:
Unblocking with another Colab Instance¶
If you are blocked and on Google Colab, just delete the instance and get a new one and see if this one is not blocked.
Unblocking with Browser Base¶
If ever you encounter some error showing your browser is being blocked, try using Browser Base with the following code from their Quick tour to setup a managed Selenium Driver:
# from selenium import webdriver
# from selenium.webdriver.remote.remote_connection import RemoteConnection
# from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# import requests
# import os
# def create_session():
# url = 'https://www.browserbase.com/v1/sessions'
# headers = {'Content-Type': 'application/json', 'x-bb-api-key': os.environ["BROWSERBASE_API_KEY"]}
# response = requests.post(url, json={ "projectId": os.environ["BROWSERBASE_PROJECT_ID"] }, headers=headers)
# return response.json()['id']
# class CustomRemoteConnection(RemoteConnection):
# _session_id = None
# def __init__(self, remote_server_addr: str, session_id: str):
# super().__init__(remote_server_addr)
# self._session_id = session_id
# def get_remote_connection_headers(self, parsed_url, keep_alive=False):
# headers = super().get_remote_connection_headers(parsed_url, keep_alive)
# headers.update({'x-bb-api-key': os.environ["BROWSERBASE_API_KEY"]})
# headers.update({'session-id': self._session_id})
# return headers
# # Create a new session
# session_id = create_session()
# custom_conn = CustomRemoteConnection('http://connect.browserbase.com/webdriver', session_id)
# options = webdriver.ChromeOptions()
# options.debugger_address = "localhost:9223"
# driver.driver = webdriver.Remote(custom_conn, options=options)
Unblocking by running with headless=False¶
Another option is to simply run a driver in non-headless mode with:
driver = SeleniumDriver(headless=True)
Note that this will not work on Colab, you will have to do it on your own machine.
Running the Agent¶
Now we can run the Agent to try booking an appointment for us! We provide the objective below and run it:
objective = """Accept cookies if they are shown.
Find dermatologists in Paris.
When filling input fields, wait for the results to update before clicking on the most relevant result.
When on the search page, scan the results to find the first dermatologist available in August 2024.
If you find a relevant dermatologist, try to book an appointment in person as a new patient. If not available you can stop here.
Don't use the Python Engine."""
agent.demo(objective=objective)
Colab notebook detected. This cell will run indefinitely so that you can see errors and logs. To turn off, set debug=False in launch(). Running on public URL: https://c5b566b13a1e68ab5b.gradio.live This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)