From 87e502c6bc1f08fd546d1de8fa31c619d04cad99 Mon Sep 17 00:00:00 2001 From: Davis Chase <130488702+dev2049@users.noreply.github.com> Date: Fri, 16 Jun 2023 11:52:56 -0700 Subject: [PATCH] Doc refactor (#6300) Co-authored-by: jacoblee93 Co-authored-by: Harrison Chase --- .github/workflows/linkcheck.yml | 38 - .gitignore | 14 +- .gitmodules | 4 + .readthedocs.yaml | 4 +- Makefile | 3 + docs/{ => api_reference}/Makefile | 0 .../_static/css/custom.css | 0 .../_static/js/mendablesearch.js | 0 docs/{reference => api_reference}/agents.rst | 0 docs/{ => api_reference}/conf.py | 25 +- .../data_connection.rst} | 9 +- docs/api_reference/index.rst | 29 + docs/{ => api_reference}/make.bat | 0 docs/api_reference/model_io.rst | 12 + docs/{reference => api_reference}/models.rst | 1 - .../modules/agent_toolkits.rst | 0 .../modules/agents.rst | 0 docs/api_reference/modules/base_classes.rst | 5 + docs/api_reference/modules/callbacks.rst | 7 + .../modules/chains.rst | 1 + .../modules/chat_models.rst | 0 .../modules/document_loaders.rst | 0 .../modules/document_transformers.rst | 6 + .../modules/embeddings.rst | 0 .../modules/example_selector.rst | 0 .../modules/experimental.rst | 6 +- .../modules/llms.rst | 0 .../modules/memory.rst | 0 .../modules/output_parsers.rst | 0 .../modules/prompts.rst | 3 +- docs/api_reference/modules/retrievers.rst | 14 + .../modules/tools.rst | 0 .../modules/utilities.rst | 0 .../modules/vectorstores.rst | 0 docs/{reference => api_reference}/prompts.rst | 1 - docs/dependents.md | 231 -- docs/docs_skeleton/.gitignore | 7 + docs/docs_skeleton/README.md | 49 + docs/docs_skeleton/babel.config.js | 12 + docs/docs_skeleton/code-block-loader.js | 76 + .../docs}/_static/ApifyActors.png | Bin .../docs}/_static/DataberryDashboard.png | Bin .../docs}/_static/HeliconeDashboard.png | Bin .../docs}/_static/HeliconeKeys.png | Bin .../docs}/_static/MetalDash.png | Bin .../docs/_static/android-chrome-192x192.png | Bin 0 -> 18119 bytes .../docs/_static/android-chrome-512x512.png | Bin 0 -> 86761 bytes .../docs/_static/apple-touch-icon.png | Bin 0 -> 16117 bytes .../docs_skeleton/docs/_static/css/custom.css | 21 + .../docs/_static/favicon-16x16.png | Bin 0 -> 542 bytes .../docs/_static/favicon-32x32.png | Bin 0 -> 1188 bytes docs/docs_skeleton/docs/_static/favicon.ico | Bin 0 -> 15406 bytes .../docs/_static/js/mendablesearch.js | 56 + .../docs_skeleton/docs/_static/lc_modules.jpg | Bin 0 -> 105649 bytes .../docs/_static/parrot-chainlink-icon.png | Bin 0 -> 139544 bytes .../docs/_static/parrot-icon.png | Bin 0 -> 35267 bytes .../docs/ecosystem/integrations/index.mdx | 8 + .../docs/get_started/installation.mdx | 5 + .../docs/get_started/introduction.mdx | 65 + .../docs/get_started/quickstart.mdx | 158 + .../agent_types/chat_conversation_agent.mdx | 13 + .../docs/modules/agents/agent_types/index.mdx | 57 + .../agent_types/openai_functions_agent.mdx | 11 + .../agents/agent_types/plan_and_execute.mdx | 11 + .../docs/modules/agents/agent_types/react.mdx | 15 + .../agents/agent_types/structured_chat.mdx | 10 + .../docs/modules/agents/how_to/_category_.yml | 2 + .../agents/how_to/custom_llm_agent.mdx | 14 + .../agents/how_to/custom_llm_chat_agent.mdx | 14 + .../docs/modules/agents/how_to/mrkl.mdx | 16 + .../docs/modules/agents/index.mdx | 51 + .../docs/modules/agents/toolkits/index.mdx | 10 + .../agents/tools/how_to/_category_.yml | 2 + .../docs/modules/agents/tools/index.mdx | 17 + .../agents/tools/integrations/_category_.yml | 1 + .../modules/callbacks/how_to/_category_.yml | 2 + .../docs/modules/callbacks/index.mdx | 10 + .../callbacks/integrations/_category_.yml | 1 + .../chains/additional/analyze_document.mdx | 7 + .../additional/constitutional_chain.mdx | 7 + .../docs/modules/chains/additional/index.mdx | 8 + .../modules/chains/additional/moderation.mdx | 8 + .../chains/additional/multi_prompt_router.mdx | 7 + .../additional/multi_retrieval_qa_router.mdx | 7 + .../chains/additional/question_answering.mdx | 13 + .../docs/modules/chains/document/index.mdx | 16 + .../modules/chains/document/map_reduce.mdx | 5 + .../modules/chains/document/map_rerank.mdx | 5 + .../docs/modules/chains/document/refine.mdx | 12 + .../docs/modules/chains/document/stuff.mdx | 12 + .../modules/chains/foundational/index.mdx | 8 + .../modules/chains/foundational/llm_chain.mdx | 11 + .../chains/foundational/sequential_chains.mdx | 14 + .../docs/modules/chains/how_to/debugging.mdx | 8 + .../docs/modules/chains/how_to/index.mdx | 8 + .../docs/modules/chains/how_to/memory.mdx | 10 + .../docs/modules/chains/index.mdx | 33 + .../docs/modules/chains/popular/api.mdx | 9 + .../modules/chains/popular/chat_vector_db.mdx | 14 + .../docs/modules/chains/popular/index.mdx | 8 + .../docs/modules/chains/popular/sqlite.mdx | 7 + .../docs/modules/chains/popular/summarize.mdx | 8 + .../modules/chains/popular/vector_db_qa.mdx | 14 + .../document_loaders/how_to/_category_.yml | 2 + .../document_loaders/how_to/csv.mdx | 9 + .../how_to/file_directory.mdx | 7 + .../document_loaders/how_to/html.mdx | 9 + .../document_loaders/how_to/json.mdx | 7 + .../document_loaders/how_to/markdown.mdx | 9 + .../document_loaders/how_to/pdf.mdx | 9 + .../document_loaders/index.mdx | 17 + .../integrations/_category_.yml | 1 + .../document_transformers/index.mdx | 31 + .../text_splitters/_category_.yml | 1 + .../character_text_splitter.mdx | 10 + .../text_splitters/code_splitter.mdx | 7 + .../recursive_text_splitter.mdx | 10 + .../docs/modules/data_connection/index.mdx | 16 + .../retrievers/how_to/_category_.yml | 2 + .../how_to/contextual_compression/index.mdx | 19 + .../retrievers/how_to/self_query/index.mdx | 9 + .../how_to/time_weighted_vectorstore.mdx | 15 + .../retrievers/how_to/vectorstore.mdx | 10 + .../data_connection/retrievers/index.mdx | 15 + .../retrievers/integrations/_category_.yml | 1 + .../data_connection/text_embedding/index.mdx | 16 + .../integrations/_category_.yml | 1 + .../data_connection/vectorstores/index.mdx | 17 + .../vectorstores/integrations/_category_.yml | 1 + docs/docs_skeleton/docs/modules/index.mdx | 20 + .../docs/modules/memory/how_to/_category_.yml | 2 + .../docs/modules/memory/how_to/buffer.mdx | 9 + .../modules/memory/how_to/buffer_window.mdx | 9 + .../memory/how_to/entity_summary_memory.mdx | 9 + .../docs/modules/memory/how_to/summary.mdx | 9 + .../how_to/vectorstore_retriever_memory.mdx | 11 + .../docs/modules/memory/index.mdx | 30 + .../memory/integrations/_category_.yml | 1 + .../docs/modules/model_io/index.mdx | 16 + .../models/chat/how_to/_category_.yml | 2 + .../model_io/models/chat/how_to/llm_chain.mdx | 7 + .../model_io/models/chat/how_to/prompts.mdx | 8 + .../model_io/models/chat/how_to/streaming.mdx | 7 + .../modules/model_io/models/chat/index.mdx | 22 + .../models/chat/integrations/_category_.yml | 1 + .../docs/modules/model_io/models/index.mdx | 23 + .../models/llms/how_to/_category_.yml | 2 + .../models/llms/how_to/llm_caching.mdx | 9 + .../models/llms/how_to/streaming_llm.mdx | 7 + .../modules/model_io/models/llms/index.mdx | 23 + .../models/llms/integrations/_category_.yml | 1 + .../output_parsers/comma_separated.mdx | 7 + .../modules/model_io/output_parsers/index.mdx | 21 + .../output_parsers/output_fixing_parser.mdx | 9 + .../model_io/output_parsers/structured.mdx | 7 + .../prompts/example_selectors/index.mdx | 9 + .../example_selectors/length_based.mdx | 7 + .../prompts/example_selectors/similarity.mdx | 7 + .../docs/modules/model_io/prompts/index.mdx | 12 + .../prompt_templates/few_shot_examples.mdx | 7 + .../prompts/prompt_templates/index.mdx | 22 + .../prompts/prompt_templates/partial.mdx | 13 + .../prompt_templates/prompt_composition.mdx | 10 + docs/docs_skeleton/docusaurus.config.js | 198 ++ docs/docs_skeleton/ignore_build.sh | 14 + docs/docs_skeleton/package.json | 65 + docs/docs_skeleton/settings.ini | 11 + docs/docs_skeleton/sidebars.js | 100 + docs/docs_skeleton/src/css/custom.css | 142 + docs/docs_skeleton/src/pages/index.js | 15 + .../src/theme/CodeBlock/index.js | 47 + docs/docs_skeleton/src/theme/SearchBar.js | 29 + docs/docs_skeleton/static/.nojekyll | 0 docs/docs_skeleton/static/img/ApifyActors.png | Bin 0 -> 572660 bytes .../static/img/HeliconeDashboard.png | Bin 0 -> 240557 bytes .../docs_skeleton/static/img/HeliconeKeys.png | Bin 0 -> 151241 bytes docs/docs_skeleton/static/img/MetalDash.png | Bin 0 -> 3651022 bytes .../static/img/apple-touch-icon.png | Bin 0 -> 16117 bytes .../static/img/contextual_compression.jpg | Bin 0 -> 397120 bytes .../static/img/data_connection.jpg | Bin 0 -> 1028460 bytes .../static/img/favicon-16x16.png | Bin 0 -> 542 bytes .../static/img/favicon-32x32.png | Bin 0 -> 1188 bytes docs/docs_skeleton/static/img/favicon.ico | Bin 0 -> 15406 bytes docs/docs_skeleton/static/img/map_reduce.jpg | Bin 0 -> 1093944 bytes docs/docs_skeleton/static/img/map_rerank.jpg | Bin 0 -> 845990 bytes docs/docs_skeleton/static/img/model_io.jpg | Bin 0 -> 658773 bytes .../static/img/parrot-chainlink-icon.png | Bin 0 -> 139544 bytes docs/docs_skeleton/static/img/parrot-icon.png | Bin 0 -> 35267 bytes docs/docs_skeleton/static/img/refine.jpg | Bin 0 -> 660167 bytes .../static/img/self_querying.jpg | Bin 0 -> 487817 bytes docs/docs_skeleton/static/img/stuff.jpg | Bin 0 -> 401264 bytes docs/docs_skeleton/vercel_build.sh | 10 + .../_templates/integration.mdx} | 8 +- .../additional_resources/youtube.mdx} | 115 +- docs/extras/ecosystem/dependents.mdx | 192 + .../agent_with_wandb_tracing.ipynb | 5 +- .../ecosystem/integrations/ai21.mdx} | 0 .../integrations/aim_tracking.ipynb | 64 +- .../ecosystem/integrations/airbyte.mdx} | 2 +- .../ecosystem/integrations/aleph_alpha.mdx} | 4 +- .../ecosystem/integrations/analyticdb.mdx} | 2 +- .../ecosystem/integrations/annoy.mdx} | 2 +- .../ecosystem/integrations/anyscale.mdx} | 0 .../ecosystem/integrations/apify.mdx} | 6 +- .../ecosystem/integrations/argilla.mdx} | 2 +- .../ecosystem/integrations/arxiv.mdx} | 4 +- .../ecosystem/integrations/atlas.mdx} | 2 +- .../ecosystem}/integrations/awadb.md | 0 .../ecosystem/integrations/aws_s3.mdx} | 4 +- .../ecosystem/integrations/azlyrics.mdx} | 2 +- .../integrations/azure_blob_storage.mdx} | 4 +- .../integrations/azure_cognitive_search_.mdx} | 2 +- .../ecosystem/integrations/azure_openai.mdx} | 6 +- .../ecosystem/integrations/bananadev.mdx} | 0 .../ecosystem/integrations}/baseten.md | 0 .../ecosystem/integrations/beam.mdx} | 23 +- .../ecosystem/integrations/bedrock.mdx} | 6 +- .../ecosystem/integrations/bilibili.mdx} | 2 +- .../ecosystem/integrations/blackboard.mdx} | 2 +- .../ecosystem/integrations/cassandra.mdx} | 2 +- .../ecosystem/integrations/cerebriumai.mdx} | 0 .../ecosystem/integrations/chroma.mdx} | 4 +- .../integrations/clearml_tracking.ipynb | 13 +- .../ecosystem/integrations/cohere.mdx} | 6 +- .../integrations/college_confidential.mdx} | 2 +- .../integrations/comet_tracking.ipynb | 9 +- .../ecosystem/integrations/confluence.mdx} | 2 +- .../ecosystem/integrations/ctransformers.mdx} | 2 +- .../ecosystem/integrations/databerry.mdx} | 2 +- .../ecosystem/integrations}/databricks.ipynb | 131 +- .../ecosystem}/integrations/databricks.md | 0 .../integrations/databricks/databricks.ipynb | 273 ++ .../ecosystem/integrations/deepinfra.mdx} | 0 .../ecosystem/integrations/deeplake.mdx} | 6 +- .../ecosystem/integrations/diffbot.mdx} | 2 +- .../ecosystem/integrations/discord.mdx} | 2 +- .../ecosystem/integrations/docugami.mdx} | 2 +- .../ecosystem/integrations/duckdb.mdx} | 2 +- .../ecosystem/integrations/elasticsearch.mdx} | 2 +- .../ecosystem/integrations/evernote.mdx} | 2 +- .../ecosystem/integrations/facebook_chat.mdx} | 2 +- .../ecosystem/integrations/figma.mdx} | 2 +- .../ecosystem/integrations/forefrontai.mdx} | 0 .../ecosystem/integrations/git.mdx} | 2 +- .../ecosystem/integrations/gitbook.mdx} | 2 +- .../integrations/google_bigquery.mdx} | 2 +- .../integrations/google_cloud_storage.mdx} | 4 +- .../ecosystem/integrations/google_drive.mdx} | 2 +- .../ecosystem/integrations/google_search.mdx} | 4 +- .../ecosystem/integrations/google_serper.mdx} | 4 +- .../ecosystem/integrations/gooseai.mdx} | 0 .../ecosystem/integrations/gpt4all.mdx} | 2 +- .../ecosystem/integrations/graphsignal.mdx} | 0 .../ecosystem/integrations/gutenberg.mdx} | 2 +- .../ecosystem/integrations/hacker_news.mdx} | 2 +- .../ecosystem/integrations/hazy_research.mdx} | 0 .../ecosystem/integrations/helicone.mdx} | 4 +- .../ecosystem/integrations/huggingface.mdx} | 8 +- .../ecosystem/integrations/ifixit.mdx} | 2 +- .../ecosystem/integrations/imsdb.mdx} | 2 +- .../ecosystem/integrations/jina.mdx} | 2 +- .../ecosystem/integrations/lancedb.mdx} | 2 +- .../integrations/langchain_decorators.mdx} | 2 +- .../ecosystem/integrations/llamacpp.mdx} | 4 +- .../ecosystem/integrations/mediawikidump.mdx} | 2 +- .../ecosystem/integrations/metal.mdx} | 2 +- .../integrations/microsoft_onedrive.mdx} | 4 +- .../integrations/microsoft_powerpoint.mdx} | 2 +- .../integrations/microsoft_word.mdx} | 2 +- .../ecosystem/integrations/milvus.mdx} | 2 +- .../integrations/mlflow_tracking.ipynb | 41 +- .../ecosystem/integrations/modal.mdx} | 0 .../ecosystem/integrations/modelscope.mdx} | 2 +- .../integrations/modern_treasury.mdx} | 2 +- .../ecosystem/integrations/momento.mdx} | 2 +- .../ecosystem/integrations/myscale.mdx} | 2 +- .../ecosystem/integrations/nlpcloud.mdx} | 0 .../ecosystem/integrations/notion.mdx} | 4 +- .../ecosystem/integrations/obsidian.mdx} | 2 +- .../ecosystem/integrations/openai.mdx} | 21 +- .../ecosystem/integrations/opensearch.mdx} | 2 +- .../integrations/openweathermap.mdx} | 4 +- .../ecosystem/integrations/petals.mdx} | 0 .../ecosystem/integrations/pgvector.mdx} | 2 +- .../ecosystem/integrations/pinecone.mdx} | 2 +- .../ecosystem/integrations/pipelineai.mdx} | 0 .../integrations/predictionguard.mdx} | 22 +- .../ecosystem/integrations/promptlayer.mdx} | 34 +- .../ecosystem/integrations/psychic.mdx} | 2 +- .../ecosystem/integrations/qdrant.mdx} | 2 +- .../ecosystem}/integrations/ray_serve.ipynb | 7 +- .../ecosystem}/integrations/rebuff.ipynb | 16 +- .../ecosystem/integrations/reddit.mdx} | 2 +- .../ecosystem/integrations/redis.mdx} | 6 +- .../ecosystem/integrations/replicate.mdx} | 0 .../ecosystem/integrations/roam.mdx} | 2 +- .../ecosystem/integrations/runhouse.mdx} | 4 +- .../ecosystem/integrations/rwkv.mdx} | 0 .../integrations/sagemaker_endpoint.mdx} | 4 +- .../ecosystem/integrations/searx.mdx} | 2 +- .../ecosystem/integrations/serpapi.mdx} | 4 +- .../ecosystem}/integrations/shaleprotocol.md | 0 .../ecosystem/integrations/sklearn.mdx} | 2 +- .../ecosystem/integrations/slack.mdx} | 2 +- .../ecosystem/integrations/spacy.mdx} | 2 +- .../ecosystem/integrations/spreedly.mdx} | 4 +- .../ecosystem/integrations/stochasticai.mdx} | 0 .../ecosystem/integrations/stripe.mdx} | 4 +- .../ecosystem/integrations/tair.mdx} | 2 +- .../ecosystem/integrations/telegram.mdx} | 4 +- .../ecosystem/integrations/tomarkdown.mdx} | 2 +- .../ecosystem/integrations/trello.mdx} | 4 +- .../ecosystem/integrations/twitter.mdx} | 2 +- .../ecosystem/integrations/unstructured.mdx} | 0 .../ecosystem/integrations/vectara/index.mdx} | 0 .../integrations/vectara/vectara_chat.ipynb | 66 +- .../vectara/vectara_text_generation.ipynb | 9 +- .../ecosystem/integrations/vespa.mdx} | 2 +- .../integrations/wandb_tracking.ipynb | 55 +- .../ecosystem/integrations/weather.mdx} | 2 +- .../ecosystem/integrations/weaviate.mdx} | 2 +- .../ecosystem/integrations/whatsapp.mdx} | 2 +- .../integrations/whylabs_profiling.ipynb | 0 .../ecosystem/integrations/wikipedia.mdx} | 4 +- .../ecosystem/integrations/wolfram_alpha.mdx} | 4 +- .../ecosystem/integrations/writer.mdx} | 0 .../ecosystem/integrations/yeagerai.mdx} | 0 .../ecosystem/integrations/youtube.mdx} | 4 +- .../ecosystem/integrations/zep.mdx} | 2 +- .../ecosystem/integrations/zilliz.mdx} | 2 +- .../guides/deployments/index.mdx} | 72 +- .../guides/deployments/template_repos.mdx} | 7 +- .../evaluation/agent_benchmarking.ipynb | 28 +- .../evaluation/agent_vectordb_sota_pg.ipynb | 58 +- .../evaluation/benchmarking_template.ipynb | 2 + .../data_augmented_question_answering.ipynb | 34 +- .../evaluation/generic_agent_evaluation.ipynb | 34 +- .../evaluation/huggingface_datasets.ipynb | 14 +- .../guides/evaluation/index.mdx} | 48 +- .../guides}/evaluation/llm_math.ipynb | 6 +- .../guides}/evaluation/openapi_eval.ipynb | 112 +- .../evaluation/qa_benchmarking_pg.ipynb | 21 +- .../evaluation/qa_benchmarking_sota.ipynb | 21 +- .../guides}/evaluation/qa_generation.ipynb | 3 +- .../evaluation/question_answering.ipynb | 60 +- .../sql_qa_benchmarking_chinook.ipynb | 13 +- .../guides}/model_laboratory.ipynb | 18 +- .../guides}/tracing/agent_with_tracing.ipynb | 20 +- .../guides}/tracing/default_empty.png | Bin docs/{ => extras/guides}/tracing/explore.png | Bin .../guides}/tracing/explore_llm.png | Bin .../guides}/tracing/explore_trace.png | Bin .../guides}/tracing/first_trace.png | Bin docs/{ => extras/guides}/tracing/homepage.png | Bin .../guides/tracing/index.mdx} | 18 +- .../agent_types}/openai_functions_agent.ipynb | 22 +- .../agents/agent_types/react_docstore.ipynb} | 15 +- .../agent_types}/self_ask_with_search.ipynb | 16 +- .../agents/how_to}/agent_vectorstore.ipynb | 66 +- .../modules/agents/how_to}/async_agent.ipynb | 214 +- .../agents/how_to}/chatgpt_clone.ipynb | 43 +- .../modules/agents/how_to}/custom_agent.ipynb | 18 +- .../custom_agent_with_tool_retrieval.ipynb | 64 +- .../agents/how_to}/custom_mrkl_agent.ipynb | 34 +- .../how_to}/custom_multi_action_agent.ipynb | 24 +- .../how_to}/handle_parsing_errors.ipynb | 47 +- .../agents/how_to}/intermediate_steps.ipynb | 21 +- .../agents/how_to}/max_iterations.ipynb | 35 +- .../agents/how_to}/max_time_limit.ipynb | 35 +- .../how_to}/sharedmemory_for_tools.ipynb | 84 +- .../how_to}/streaming_stdout_final_only.ipynb | 43 +- .../toolkits}/azure_cognitive_services.ipynb | 6 +- .../modules/agents/toolkits}/csv.ipynb | 23 +- .../modules/agents/toolkits}/gmail.ipynb | 12 +- .../modules/agents/toolkits}/jira.ipynb | 27 +- .../modules/agents/toolkits}/json.ipynb | 13 +- .../modules/agents/toolkits}/openapi.ipynb | 54 +- .../agents/toolkits}/openapi_nla.ipynb | 51 +- .../modules/agents/toolkits}/pandas.ipynb | 10 +- .../modules/agents/toolkits}/playwright.ipynb | 22 +- .../modules/agents/toolkits}/powerbi.ipynb | 62 +- .../modules/agents/toolkits}/python.ipynb | 8 +- .../modules/agents/toolkits}/spark.ipynb | 16 +- .../modules/agents/toolkits}/spark_sql.ipynb | 98 +- .../agents/toolkits}/sql_database.ipynb | 12 +- .../agents/toolkits}/vectorstore.ipynb | 51 +- .../agents/tools/how_to}/custom_tools.ipynb | 168 +- .../agents/tools/how_to}/human_approval.ipynb | 15 +- .../tools/how_to}/multi_input_tool.ipynb | 21 +- .../tools/how_to}/tool_input_validation.ipynb | 23 +- .../how_to}/tools_as_openai_functions.ipynb | 6 +- .../_gradio_tools_files/output_7_0.png | Bin 0 -> 895879 bytes .../agents/tools/integrations}/apify.ipynb | 3 +- .../agents/tools/integrations}/arxiv.ipynb | 3 +- .../tools/integrations}/awslambda.ipynb | 6 +- .../agents/tools/integrations/bash.ipynb | 192 + .../tools/integrations}/bing_search.ipynb | 1 + .../tools/integrations}/brave_search.ipynb | 0 .../tools/integrations}/chatgpt_plugins.ipynb | 6 +- .../agents/tools/integrations}/ddg.ipynb | 0 .../tools/integrations}/filesystem.ipynb | 9 +- .../tools/integrations}/google_places.ipynb | 1 + .../tools/integrations}/google_search.ipynb | 15 +- .../tools/integrations}/google_serper.ipynb | 76 +- .../tools/integrations}/gradio_tools.ipynb | 40 +- .../agents/tools/integrations}/graphql.ipynb | 10 +- .../integrations}/huggingface_tools.ipynb | 0 .../tools/integrations}/human_tools.ipynb | 8 +- .../agents/tools/integrations}/ifttt.ipynb | 5 +- .../tools/integrations}/metaphor_search.ipynb | 14 +- .../tools/integrations}/openweathermap.ipynb | 5 +- .../agents/tools/integrations}/pubmed.ipynb | 0 .../agents/tools/integrations}/python.ipynb | 2 +- .../agents/tools/integrations}/requests.ipynb | 3 +- .../tools/integrations}/sceneXplain.ipynb | 3 +- .../tools/integrations}/search_tools.ipynb | 16 +- .../tools/integrations}/searx_search.ipynb | 27 +- .../agents/tools/integrations}/serpapi.ipynb | 1 + .../agents/tools/integrations}/twilio.ipynb | 6 +- .../tools/integrations}/wikipedia.ipynb | 2 +- .../tools/integrations}/wolfram_alpha.ipynb | 3 +- .../agents/tools/integrations}/youtube.ipynb | 0 .../agents/tools/integrations}/zapier.ipynb | 63 +- .../callbacks/how_to/async_callbacks.ipynb | 134 + .../callbacks/how_to/custom_callbacks.ipynb | 102 + .../modules/callbacks/how_to/custom_chain.mdx | 6 + .../how_to}/filecallbackhandler.ipynb | 4 +- .../callbacks/how_to/multiple_callbacks.ipynb | 208 ++ docs/extras/modules/callbacks/how_to/tags.mdx | 3 + .../callbacks/how_to/token_counting.ipynb | 84 + .../modules/callbacks/how_to/tracing.ipynb | 402 +++ .../callbacks/integrations}/argilla.ipynb | 2 +- .../chains/additional}/extraction.ipynb | 21 +- .../modules/chains/additional}/flare.ipynb | 14 +- .../chains/additional}/graph_cypher_qa.ipynb | 2 +- .../chains/additional}/graph_nebula_qa.ipynb | 4 +- .../modules/chains/additional}/graph_qa.ipynb | 0 .../modules/chains/additional}/hyde.ipynb | 12 +- .../modules/chains/additional}/llm_bash.ipynb | 28 +- .../chains/additional}/llm_checker.ipynb | 4 +- .../modules/chains/additional}/llm_math.ipynb | 4 +- .../chains/additional}/llm_requests.ipynb | 8 +- .../llm_summarization_checker.ipynb | 4 +- .../chains/additional}/openai_openapi.yaml | 0 .../modules/chains/additional}/openapi.ipynb | 41 +- .../modules/chains/additional}/pal.ipynb | 10 +- .../modules/chains/additional}/tagging.ipynb | 48 +- .../vector_db_text_generation.ipynb | 10 +- .../modules/chains/foundational}/router.ipynb | 48 +- .../chains/foundational}/transformation.ipynb | 9 +- .../modules/chains/how_to}/async_chain.ipynb | 15 +- .../modules/chains/how_to/call_methods.ipynb | 180 + .../modules/chains/how_to}/custom_chain.ipynb | 26 +- .../modules/chains/how_to}/from_hub.ipynb | 3 +- .../modules/chains/how_to}/llm.json | 0 .../modules/chains/how_to}/llm_chain.json | 0 .../chains/how_to}/llm_chain_separate.json | 0 .../modules/chains/how_to}/prompt.json | 0 .../chains/how_to}/serialization.ipynb | 24 +- .../integrations}/acreom.ipynb | 2 +- .../integrations}/airbyte_json.ipynb | 2 +- .../integrations}/airtable.ipynb | 8 +- .../alibaba_cloud_maxcompute.ipynb | 5 +- .../integrations}/apify_dataset.ipynb | 2 +- .../integrations}/arxiv.ipynb | 2 +- .../integrations}/aws_s3_directory.ipynb | 0 .../integrations}/aws_s3_file.ipynb | 0 .../integrations}/azlyrics.ipynb | 0 .../azure_blob_storage_container.ipynb | 4 +- .../azure_blob_storage_file.ipynb | 6 +- .../integrations}/bibtex.ipynb | 4 +- .../integrations}/bilibili.ipynb | 4 +- .../integrations}/blackboard.ipynb | 0 .../integrations}/blockchain.ipynb | 31 +- .../integrations}/chatgpt_loader.ipynb | 2 +- .../integrations}/college_confidential.ipynb | 4 +- .../integrations}/confluence.ipynb | 15 +- .../integrations}/conll-u.ipynb | 0 .../integrations}/copypaste.ipynb | 0 .../document_loaders/integrations}/csv.ipynb | 21 +- .../integrations}/diffbot.ipynb | 1 + .../integrations}/discord.ipynb | 4 +- .../integrations}/docugami.ipynb | 6 +- .../integrations}/duckdb.ipynb | 4 +- .../integrations}/email.ipynb | 6 +- .../integrations}/embaas.ipynb | 0 .../document_loaders/integrations}/epub.ipynb | 0 .../integrations}/evernote.ipynb | 0 .../integrations}/example_data/conllu.conllu | 0 .../example_data/facebook_chat.json | 0 .../integrations}/example_data/factbook.xml | 0 .../example_data/fake-content.html | 0 .../integrations}/example_data/fake-email.eml | 0 .../integrations}/example_data/fake-email.msg | Bin .../example_data/fake-power-point.pptx | Bin .../integrations}/example_data/fake.docx | Bin .../integrations}/example_data/fake.odt | Bin .../example_data/fake_conversations.json | 0 .../example_data/fake_discord_data/output.txt | 0 .../messages/c105765859191975936/messages.csv | 0 .../messages/c278566343836565505/messages.csv | 0 .../messages/c279692806442844161/messages.csv | 0 .../messages/c280973436971515906/messages.csv | 0 .../integrations}/example_data/fake_rule.toml | 0 .../example_data/layout-parser-paper.pdf | Bin .../example_data/mlb_teams_2012.csv | 0 .../integrations/example_data/notebook.md | 29 + .../integrations}/example_data/sitemap.xml | 0 .../example_data/stanley-cups.xlsx | Bin .../integrations}/example_data/telegram.json | 0 .../integrations}/example_data/testing.enex | 0 .../example_data/testmw_pages_current.xml | 0 .../example_data/whatsapp_chat.txt | 0 .../integrations}/excel.ipynb | 5 +- .../integrations}/facebook_chat.ipynb | 2 +- .../integrations}/fauna.ipynb | 4 +- .../integrations}/figma.ipynb | 26 +- .../document_loaders/integrations}/git.ipynb | 5 +- .../integrations}/gitbook.ipynb | 0 .../integrations}/github.ipynb | 0 .../integrations}/google_bigquery.ipynb | 14 +- .../google_cloud_storage_directory.ipynb | 0 .../google_cloud_storage_file.ipynb | 0 .../integrations}/google_drive.ipynb | 2 +- .../integrations}/gutenberg.ipynb | 2 +- .../integrations}/hacker_news.ipynb | 0 .../integrations}/hugging_face_dataset.ipynb | 14 +- .../integrations}/ifixit.ipynb | 4 +- .../integrations}/image.ipynb | 0 .../integrations}/image_captions.ipynb | 17 +- .../integrations}/imsdb.ipynb | 0 .../document_loaders/integrations}/iugu.ipynb | 2 +- .../integrations}/joplin.ipynb | 0 .../integrations}/jupyter_notebook.ipynb | 13 +- .../integrations}/mastodon.ipynb | 0 .../integrations}/mediawikidump.ipynb | 6 +- .../integrations}/microsoft_onedrive.ipynb | 0 .../integrations}/microsoft_powerpoint.ipynb | 4 +- .../integrations}/microsoft_word.ipynb | 2 +- .../integrations}/modern_treasury.ipynb | 2 +- .../integrations}/notion.ipynb | 0 .../integrations}/notiondb.ipynb | 5 +- .../integrations}/obsidian.ipynb | 0 .../document_loaders/integrations}/odt.ipynb | 0 .../integrations}/pandas_dataframe.ipynb | 2 +- .../integrations}/psychic.ipynb | 9 +- .../integrations}/pyspark_dataframe.ipynb | 2 +- .../readthedocs_documentation.ipynb | 2 +- .../integrations}/reddit.ipynb | 15 +- .../document_loaders/integrations}/roam.ipynb | 0 .../integrations}/sitemap.ipynb | 15 +- .../integrations}/slack.ipynb | 4 +- .../integrations}/snowflake.ipynb | 5 +- .../integrations}/spreedly.ipynb | 6 +- .../integrations}/stripe.ipynb | 2 +- .../integrations}/subtitle.ipynb | 4 +- .../integrations}/telegram.ipynb | 8 +- .../integrations}/tomarkdown.ipynb | 6 +- .../document_loaders/integrations}/toml.ipynb | 2 +- .../integrations}/trello.ipynb | 8 +- .../integrations}/twitter.ipynb | 2 +- .../integrations}/unstructured_file.ipynb | 12 +- .../document_loaders/integrations}/url.ipynb | 10 +- .../integrations}/weather.ipynb | 4 +- .../integrations}/web_base.ipynb | 6 +- .../integrations}/whatsapp_chat.ipynb | 0 .../integrations}/wikipedia.ipynb | 4 +- .../document_loaders/integrations}/xml.ipynb | 0 .../integrations}/youtube_audio.ipynb | 19 +- .../integrations}/youtube_transcript.ipynb | 29 +- .../markdown_header_metadata.ipynb | 14 +- .../text_splitters/split_by_token.ipynb | 532 +++ .../self_query}/chroma_self_query.ipynb | 82 +- .../how_to/self_query/pinecone.ipynb} | 86 +- .../self_query}/qdrant_self_query.ipynb | 80 +- .../self_query}/weaviate_self_query.ipynb | 68 +- .../retrievers/integrations}/arxiv.ipynb | 22 +- .../aws_kendra_index_retriever.ipynb | 2 +- .../azure_cognitive_search.ipynb | 2 +- .../integrations}/chatgpt-plugin.ipynb | 13 +- .../integrations}/cohere-reranker.ipynb | 31 +- .../retrievers/integrations}/databerry.ipynb | 0 .../integrations}/elastic_search_bm25.ipynb | 2 +- .../retrievers/integrations}/knn.ipynb | 6 +- .../integrations}/merger_retriever.ipynb | 7 +- .../retrievers/integrations}/metal.ipynb | 7 +- .../pinecone_hybrid_search.ipynb | 24 +- .../retrievers/integrations}/pubmed.ipynb | 0 .../retrievers/integrations}/svm.ipynb | 8 +- .../retrievers/integrations}/tf_idf.ipynb | 13 +- .../retrievers/integrations}/vespa.ipynb | 2 +- .../integrations}/weaviate-hybrid.ipynb | 0 .../retrievers/integrations}/wikipedia.ipynb | 16 +- .../integrations}/zep_memorystore.ipynb | 2 +- .../integrations}/aleph_alpha.ipynb | 0 .../integrations}/azureopenai.ipynb | 4 +- .../integrations/bedrock.ipynb} | 6 +- .../text_embedding/integrations}/cohere.ipynb | 0 .../integrations}/dashscope.ipynb | 4 +- .../integrations}/deepinfra.ipynb | 9 +- .../integrations}/elasticsearch.ipynb | 100 +- .../text_embedding/integrations}/embaas.ipynb | 5 +- .../text_embedding/integrations}/fake.ipynb | 0 .../integrations}/google_vertex_ai_palm.ipynb | 5 +- .../integrations/huggingfacehub.ipynb} | 0 .../integrations/instruct_embeddings.ipynb} | 6 +- .../text_embedding/integrations}/jina.ipynb | 4 +- .../integrations}/llamacpp.ipynb | 0 .../integrations}/minimax.ipynb | 4 +- .../integrations}/modelscope_hub.ipynb | 0 .../integrations}/mosaicml.ipynb | 17 +- .../text_embedding/integrations}/openai.ipynb | 0 .../integrations}/sagemaker-endpoint.ipynb | 19 +- .../integrations}/self-hosted.ipynb | 0 .../integrations}/sentence_transformers.ipynb | 9 +- .../integrations}/tensorflowhub.ipynb | 9 +- .../integrations}/analyticdb.ipynb | 5 +- .../vectorstores/integrations}/annoy.ipynb | 0 .../vectorstores/integrations}/atlas.ipynb | 24 +- .../vectorstores/integrations}/awadb.ipynb | 11 +- .../integrations}/azuresearch.ipynb | 31 +- .../vectorstores/integrations}/chroma.ipynb | 12 +- .../vectorstores/integrations}/deeplake.ipynb | 67 +- .../integrations}/docarray_hnsw.ipynb | 9 +- .../integrations}/docarray_in_memory.ipynb | 2 +- .../integrations/elasticsearch.ipynb | 602 ++++ .../vectorstores/integrations}/faiss.ipynb | 8 +- .../integrations}/faiss_index/index.faiss | Bin .../vectorstores/integrations}/hologres.ipynb | 0 .../vectorstores/integrations}/lancedb.ipynb | 21 +- .../integrations}/matchingengine.ipynb | 26 +- .../vectorstores/integrations}/milvus.ipynb | 5 +- .../mongodb_atlas_vector_search.ipynb | 21 +- .../vectorstores/integrations}/myscale.ipynb | 20 +- .../integrations}/opensearch.ipynb | 63 +- .../vectorstores/integrations}/pgvector.ipynb | 33 +- .../vectorstores/integrations}/pinecone.ipynb | 13 +- .../vectorstores/integrations}/qdrant.ipynb | 35 +- .../vectorstores/integrations}/redis.ipynb | 12 +- .../integrations}/singlestoredb.ipynb | 13 +- .../vectorstores/integrations}/sklearn.ipynb | 21 +- .../vectorstores/integrations}/supabase.ipynb | 10 +- .../vectorstores/integrations}/tair.ipynb | 9 +- .../vectorstores/integrations}/tigris.ipynb | 12 +- .../integrations}/typesense.ipynb | 24 +- .../vectorstores/integrations}/vectara.ipynb | 4 +- .../vectorstores/integrations}/weaviate.ipynb | 0 .../vectorstores/integrations}/zilliz.ipynb | 13 +- .../memory/how_to}/adding_memory.ipynb | 9 +- .../adding_memory_chain_multiple_inputs.ipynb | 13 +- .../memory/how_to}/agent_with_memory.ipynb | 29 +- .../how_to}/agent_with_memory_in_db.ipynb | 103 +- .../conversational_customization.ipynb | 24 +- .../memory/how_to}/custom_memory.ipynb | 21 +- .../modules/memory/how_to}/kg.ipynb | 17 +- .../memory/how_to}/multiple_memory.ipynb | 19 +- .../memory/how_to}/summary_buffer.ipynb | 14 +- .../modules/memory/how_to}/token_buffer.ipynb | 14 +- .../cassandra_chat_message_history.ipynb | 0 .../dynamodb_chat_message_history.ipynb | 54 +- .../entity_memory_with_sqlite.ipynb | 32 +- .../momento_chat_message_history.ipynb | 2 +- .../mongodb_chat_message_history.ipynb | 4 +- .../integrations}/motorhead_memory.ipynb | 19 +- .../motorhead_memory_managed.ipynb | 0 .../postgres_chat_message_history.ipynb | 5 +- .../redis_chat_message_history.ipynb | 0 .../memory/integrations}/zep_memory.ipynb | 16 +- .../models/chat/integrations/anthropic.ipynb | 25 +- .../chat/integrations/azure_chat_openai.ipynb | 10 +- .../integrations/google_vertex_ai_palm.ipynb | 41 +- .../models/chat/integrations/openai.ipynb | 30 +- .../integrations/promptlayer_chatopenai.ipynb | 15 +- .../models/llms/how_to}/async_llm.ipynb | 11 +- .../models/llms/how_to}/custom_llm.ipynb | 13 +- .../models/llms/how_to}/fake_llm.ipynb | 13 +- .../models/llms/how_to}/human_input_llm.ipynb | 19 +- .../model_io/models/llms/how_to}/llm.json | 0 .../model_io/models/llms/how_to}/llm.yaml | 0 .../llms/how_to}/llm_serialization.ipynb | 4 +- .../llms/how_to}/token_usage_tracking.ipynb | 40 +- .../models/llms/integrations/ai21.ipynb | 5 +- .../llms/integrations/aleph_alpha.ipynb | 7 +- .../models/llms/integrations/anyscale.ipynb | 2 + .../integrations/azure_openai_example.ipynb | 3 +- .../models/llms/integrations/banana.ipynb | 0 .../models/llms/integrations/baseten.ipynb | 4 +- .../models/llms/integrations/beam.ipynb | 76 +- .../models/llms/integrations/bedrock.ipynb | 8 +- .../integrations/cerebriumai_example.ipynb | 0 .../models/llms/integrations/cohere.ipynb | 0 .../llms/integrations/ctransformers.ipynb | 14 +- .../models/llms/integrations/databricks.ipynb | 19 +- .../llms/integrations/deepinfra_example.ipynb | 7 +- .../integrations/forefrontai_example.ipynb | 0 .../integrations/google_vertex_ai_palm.ipynb | 1 - .../llms/integrations/gooseai_example.ipynb | 0 .../models/llms/integrations/gpt4all.ipynb | 178 + .../llms/integrations/huggingface_hub.ipynb | 13 +- .../integrations/huggingface_pipelines.ipynb | 16 +- .../huggingface_textgen_inference.ipynb | 4 +- .../jsonformer_experimental.ipynb | 33 +- .../models/llms/integrations/llamacpp.ipynb | 15 +- .../llms/integrations}/llm_caching.ipynb | 25 +- .../models/llms/integrations/manifest.ipynb | 26 +- .../models/llms/integrations/modal.ipynb | 0 .../models/llms/integrations/mosaicml.ipynb | 2 +- .../models/llms/integrations/nlpcloud.ipynb | 0 .../models/llms/integrations/openai.ipynb | 0 .../models/llms/integrations/openlm.ipynb | 10 +- .../llms/integrations/petals_example.ipynb | 0 .../integrations/pipelineai_example.ipynb | 0 .../llms/integrations/predictionguard.ipynb | 94 +- .../integrations/promptlayer_openai.ipynb | 0 .../integrations/rellm_experimental.ipynb | 20 +- .../models/llms/integrations/replicate.ipynb | 26 +- .../models/llms/integrations/runhouse.ipynb | 26 +- .../models/llms/integrations/sagemaker.ipynb | 23 +- .../llms/integrations/stochasticai.ipynb | 0 .../models/llms/integrations/writer.ipynb | 0 .../model_io/output_parsers}/datetime.ipynb | 9 +- .../model_io/output_parsers}/enum.ipynb | 5 +- .../model_io/output_parsers}/pydantic.ipynb | 26 +- .../model_io/output_parsers}/retry.ipynb | 27 +- .../custom_example_selector.md | 2 +- .../prompts/example_selectors}/mmr.ipynb | 31 +- .../example_selectors}/ngram_overlap.ipynb | 18 +- .../connecting_to_a_feature_store.ipynb | 23 +- .../custom_prompt_template.ipynb | 11 +- .../prompt_templates}/example_prompt.json | 0 .../prompts/prompt_templates}/examples.json | 0 .../prompts/prompt_templates}/examples.yaml | 0 .../few_shot_examples_chat.ipynb} | 34 +- .../prompt_templates/format_output.mdx | 59 + .../prompts/prompt_templates/formats.mdx | 16 + .../prompt_templates/msg_prompt_templates.mdx | 59 + .../prompt_serialization.ipynb | 8 +- .../prompt_with_output_parser.json | 0 .../prompt_templates}/simple_prompt.json | 0 .../prompt_templates}/simple_prompt.yaml | 0 .../simple_prompt_with_template_file.json | 0 .../prompt_templates}/simple_template.txt | 0 .../prompts/prompt_templates/validate.mdx | 14 + .../modules/paul_graham_essay.txt | 0 .../modules/state_of_the_union.txt | 0 .../camel_role_playing.ipynb | 72 +- .../agent_simulations/characters.ipynb | 112 +- .../agent_simulations/gymnasium.ipynb | 45 +- .../use_cases/agent_simulations/index.mdx | 24 + .../agent_simulations/multi_player_dnd.ipynb | 107 +- .../multiagent_authoritarian.ipynb | 225 +- .../multiagent_bidding.ipynb | 172 +- .../agent_simulations/petting_zoo.ipynb | 74 +- .../two_agent_debate_tools.ipynb | 103 +- .../agent_simulations/two_player_dnd.ipynb | 78 +- .../output_10_1.png | Bin 0 -> 787387 bytes .../output_15_1.png | Bin 0 -> 377468 bytes .../use_cases/agents/baby_agi.ipynb | 0 .../agents/baby_agi_with_agent.ipynb | 2 +- .../use_cases/agents/camel_role_playing.ipynb | 72 +- .../custom_agent_with_plugin_retrieval.ipynb | 51 +- ...ith_plugin_retrieval_using_plugnplai.ipynb | 51 +- .../use_cases/agents/index.mdx} | 17 +- .../agents/multi_modal_output_agent.ipynb | 28 +- .../agents/sales_agent_with_context.ipynb | 168 +- .../use_cases/agents/wikibase_agent.ipynb | 129 +- .../apis.md => extras/use_cases/apis.mdx} | 7 +- .../use_cases/autonomous_agents/autogpt.ipynb | 25 +- .../autonomous_agents/baby_agi.ipynb | 0 .../baby_agi_with_agent.ipynb | 8 +- .../use_cases/autonomous_agents/index.mdx} | 13 +- .../autonomous_agents/marathon_times.ipynb | 55 +- .../autonomous_agents/meta_prompt.ipynb | 57 +- docs/extras/use_cases/chatbots/index.mdx | 18 + .../use_cases/chatbots/voice_assistant.ipynb | 39 +- .../code/code-analysis-deeplake.ipynb | 55 +- .../use_cases/code/index.mdx} | 4 +- ...tter-the-algorithm-analysis-deeplake.ipynb | 62 +- .../use_cases/extraction.mdx} | 5 +- .../use_cases/multi_modal/_category_.yml | 1 + .../_image_agent_files/output_10_1.png | Bin 0 -> 787387 bytes .../use_cases/multi_modal/image_agent.ipynb | 28 +- .../use_cases/question_answering/index.mdx} | 26 +- .../semantic-search-over-chat.ipynb | 31 +- .../use_cases/summarization.mdx} | 7 +- .../use_cases/tabular.mdx} | 19 +- docs/getting_started/concepts.md | 75 - docs/getting_started/getting_started.md | 500 --- docs/getting_started/tutorials.md | 113 - docs/index.rst | 206 -- docs/integrations.rst | 39 - docs/integrations/anthropic.md | 26 - docs/integrations/clickhouse.md | 52 - docs/integrations/google_vertex_ai.md | 24 - docs/integrations/tensorflow_hub.md | 22 - docs/modules/agents.rst | 105 - docs/modules/agents/agent_executors.rst | 17 - docs/modules/agents/agents.rst | 39 - docs/modules/agents/agents/agent_types.md | 33 - .../agents/agents/custom_llm_agent.ipynb | 582 --- .../agents/agents/custom_llm_chat_agent.ipynb | 480 --- .../examples/chat_conversation_agent.ipynb | 383 -- .../examples/conversational_agent.ipynb | 285 -- .../modules/agents/agents/examples/mrkl.ipynb | 223 -- .../agents/agents/examples/mrkl_chat.ipynb | 251 -- .../agents/examples/structured_chat.ipynb | 424 --- docs/modules/agents/getting_started.ipynb | 184 - docs/modules/agents/how_to_guides.rst | 113 - docs/modules/agents/plan_and_execute.ipynb | 346 -- docs/modules/agents/toolkits.rst | 18 - .../toolkits/examples/openai_openapi.yml | 3124 ----------------- .../agents/toolkits/examples/titanic.csv | 892 ----- .../toolkits/examples/titanic_age_fillna.csv | 892 ----- docs/modules/agents/tools.rst | 48 - docs/modules/agents/tools/examples/bash.ipynb | 186 - docs/modules/agents/tools/getting_started.md | 168 - docs/modules/callbacks/getting_started.ipynb | 933 ----- docs/modules/chains.rst | 29 - docs/modules/chains/examples/api.ipynb | 208 -- .../examples/constitutional_chain.ipynb | 620 ---- docs/modules/chains/examples/moderation.ipynb | 436 --- .../chains/examples/multi_prompt_router.ipynb | 179 - .../examples/multi_retrieval_qa_router.ipynb | 209 -- docs/modules/chains/examples/sqlite.ipynb | 1406 -------- docs/modules/chains/generic/llm_chain.ipynb | 359 -- .../chains/generic/sequential_chains.ipynb | 365 -- docs/modules/chains/getting_started.ipynb | 601 ---- docs/modules/chains/how_to_guides.rst | 38 - .../index_examples/analyze_document.ipynb | 178 - .../index_examples/chat_vector_db.ipynb | 803 ----- .../index_examples/qa_with_sources.ipynb | 735 ---- .../index_examples/question_answering.ipynb | 754 ---- .../chains/index_examples/summarize.ipynb | 618 ---- .../chains/index_examples/vector_db_qa.ipynb | 341 -- .../vector_db_qa_with_sources.ipynb | 225 -- docs/modules/indexes.rst | 47 - docs/modules/indexes/document_loaders.rst | 146 - .../document_loaders/examples/audio.ipynb | 97 - .../examples/example_data/notebook.ipynb | 83 - .../examples/example_data/test_repo1 | 1 - .../examples/file_directory.ipynb | 571 --- .../document_loaders/examples/html.ipynb | 138 - .../document_loaders/examples/json.ipynb | 369 -- .../document_loaders/examples/markdown.ipynb | 164 - .../document_loaders/examples/pdf.ipynb | 768 ---- docs/modules/indexes/getting_started.ipynb | 476 --- docs/modules/indexes/retrievers.rst | 19 - .../examples/contextual-compression.ipynb | 371 -- .../examples/time_weighted_vectorstore.ipynb | 251 -- .../retrievers/examples/vectorstore.ipynb | 212 -- docs/modules/indexes/text_splitters.rst | 72 - .../examples/character_text_splitter.ipynb | 153 - .../examples/code_splitter.ipynb | 457 --- .../huggingface_length_function.ipynb | 105 - .../text_splitters/examples/nltk.ipynb | 129 - .../examples/recursive_text_splitter.ipynb | 140 - .../sentence_transformer_token_splitter.ipynb | 131 - .../text_splitters/examples/spacy.ipynb | 151 - .../text_splitters/examples/tiktoken.ipynb | 104 - .../examples/tiktoken_splitter.ipynb | 115 - .../text_splitters/getting_started.ipynb | 105 - docs/modules/indexes/vectorstores.rst | 27 - .../vectorstores/examples/clickhouse.ipynb | 399 --- .../vectorstores/examples/elasticsearch.ipynb | 580 --- .../vectorstores/getting_started.ipynb | 273 -- docs/modules/memory.rst | 33 - docs/modules/memory/getting_started.ipynb | 436 --- docs/modules/memory/how_to_guides.rst | 26 - docs/modules/memory/types/buffer.ipynb | 285 -- docs/modules/memory/types/buffer_window.ipynb | 311 -- .../memory/types/entity_summary_memory.ipynb | 589 ---- docs/modules/memory/types/summary.ipynb | 347 -- .../types/vectorstore_retriever_memory.ipynb | 368 -- docs/modules/models.rst | 38 - docs/modules/models/chat.rst | 30 - .../models/chat/examples/streaming.ipynb | 118 - .../modules/models/chat/getting_started.ipynb | 411 --- docs/modules/models/chat/how_to_guides.rst | 10 - docs/modules/models/chat/integrations.rst | 10 - docs/modules/models/getting_started.ipynb | 204 -- docs/modules/models/llms.rst | 31 - .../models/llms/examples/streaming_llm.ipynb | 261 -- .../modules/models/llms/getting_started.ipynb | 240 -- docs/modules/models/llms/how_to_guides.rst | 10 - docs/modules/models/llms/integrations.rst | 10 - .../models/llms/integrations/aviary.ipynb | 103 - .../models/llms/integrations/gpt4all.ipynb | 176 - docs/modules/models/text_embedding.rst | 22 - docs/modules/prompts.rst | 47 - .../prompts/chat_prompt_template.ipynb | 370 -- docs/modules/prompts/example_selectors.rst | 29 - .../examples/length_based.ipynb | 211 -- .../examples/similarity.ipynb | 184 - docs/modules/prompts/getting_started.ipynb | 218 -- docs/modules/prompts/output_parsers.rst | 32 - .../examples/comma_separated.ipynb | 127 - .../examples/output_fixing_parser.ipynb | 153 - .../output_parsers/examples/structured.ipynb | 215 -- .../output_parsers/getting_started.ipynb | 163 - .../prompts/output_parsers/how_to_guides.rst | 8 - docs/modules/prompts/prompt_templates.rst | 30 - .../examples/few_shot_examples.ipynb | 369 -- .../prompt_templates/examples/partial.ipynb | 184 - .../examples/prompt_composition.ipynb | 179 - .../prompt_templates/getting_started.md | 289 -- .../prompt_templates/how_to_guides.rst | 13 - docs/modules/utils/examples/gmail.ipynb | 90 - docs/reference.rst | 17 - docs/reference/modules/docstore.rst | 6 - .../modules/document_compressors.rst | 7 - docs/reference/modules/python.rst | 6 - docs/reference/modules/retrievers.rst | 7 - docs/reference/modules/searx_search.rst | 6 - docs/reference/modules/serpapi.rst | 6 - docs/reference/modules/text_splitter.rst | 6 - docs/requirements.txt | 4 +- .../get_started/installation.mdx} | 29 +- .../quickstart/agents_chat_models.mdx | 55 + .../get_started/quickstart/agents_llms.mdx | 37 + .../quickstart/chains_chat_models.mdx | 23 + .../get_started/quickstart/chains_llms.mdx | 17 + .../get_started/quickstart/chat_model.mdx | 21 + .../get_started/quickstart/installation.mdx | 12 + docs/snippets/get_started/quickstart/llm.mdx | 13 + .../quickstart/memory_chat_models.mdx | 44 + .../get_started/quickstart/memory_llms.mdx | 51 + .../get_started/quickstart/openai_setup.mdx | 19 + .../prompt_templates_chat_models.mdx | 23 + .../quickstart/prompt_templates_llms.mdx | 10 + .../agent_types/chat_conversation_agent.mdx | 130 + .../agent_types/conversational_agent.mdx | 150 + .../agent_types/openai_functions_agent.mdx | 72 + .../agents/agent_types/plan_and_execute.mdx | 228 ++ .../modules/agents/agent_types/react.mdx | 62 + .../modules/agents/agent_types/react_chat.mdx | 7 + .../agents/agent_types/structured_chat.mdx | 279 ++ docs/snippets/modules/agents/get_started.mdx | 67 + .../agents/how_to/custom_llm_agent.mdx | 356 ++ .../agents/how_to/custom_llm_chat_agent.mdx | 247 ++ docs/snippets/modules/agents/how_to/mrkl.mdx | 117 + .../modules/agents/how_to/mrkl_chat.mdx | 138 + .../modules/agents/tools/get_started.mdx | 15 + .../modules/callbacks/get_started.mdx | 142 + .../chains/additional/analyze_document.mdx | 70 + .../additional/constitutional_chain.mdx | 437 +++ .../modules/chains/additional/moderation.mdx | 273 ++ .../chains/additional/multi_prompt_router.mdx | 107 + .../additional/multi_retrieval_qa_router.mdx | 124 + .../chains/additional/qa_with_sources.mdx | 23 + .../chains/additional/question_answering.mdx | 417 +++ docs/snippets/modules/chains/base_class.mdx | 15 + .../modules/chains/document/combine_docs.mdx | 9 + .../modules/chains/foundational/llm_chain.mdx | 161 + .../chains/foundational/sequential_chains.mdx | 218 ++ docs/snippets/modules/chains/get_started.mdx | 87 + .../modules/chains/how_to/debugging.mdx | 30 + .../snippets/modules/chains/how_to/memory.mdx | 25 + docs/snippets/modules/chains/popular/api.mdx | 105 + .../modules/chains/popular/chat_vector_db.mdx | 398 +++ .../modules/chains/popular/sqlite.mdx | 966 +++++ .../modules/chains/popular/summarize.mdx | 369 ++ .../modules/chains/popular/vector_db_qa.mdx | 119 + .../popular/vector_db_qa_with_sources.mdx | 68 + .../document_loaders/get_started.mdx | 18 + .../document_loaders/how_to/csv.mdx | 74 + .../how_to/file_directory.mdx | 277 ++ .../document_loaders/how_to/html.mdx | 50 + .../document_loaders/how_to/json.mdx | 255 ++ .../document_loaders/how_to/markdown.mdx | 59 + .../document_loaders/how_to/pdf.mdx | 391 +++ .../document_transformers/get_started.mdx | 47 + .../character_text_splitter.mdx | 60 + .../text_splitters/code_splitter.mdx | 313 ++ .../recursive_text_splitter.mdx | 50 + .../contextual_compression/get_started.mdx | 261 ++ .../retrievers/get_started.mdx | 238 ++ .../how_to/time_weighted_vectorstore.mdx | 124 + .../retrievers/how_to/vectorstore.mdx | 88 + .../retrievers/self_query/get_started.mdx | 201 ++ .../text_embedding/get_started.mdx | 73 + .../vectorstores/get_started.mdx | 61 + docs/snippets/modules/memory/get_started.mdx | 256 ++ .../snippets/modules/memory/how_to/buffer.mdx | 157 + .../modules/memory/how_to/buffer_window.mdx | 185 + .../memory/how_to/entity_summary_memory.mdx | 418 +++ .../modules/memory/how_to/summary.mdx | 193 + .../how_to/vectorstore_retriever_memory.mdx | 229 ++ .../model_io/models/chat/get_started.mdx | 120 + .../model_io/models/chat/how_to/llm_chain.mdx | 16 + .../model_io/models/chat/how_to/prompts.mdx | 47 + .../model_io/models/chat/how_to/streaming.mdx | 59 + .../model_io/models/llms/get_started.mdx | 108 + .../models/llms/how_to/llm_caching.mdx | 177 + .../models/llms/how_to/streaming_llm.mdx | 71 + .../output_parsers/comma_separated.mdx | 46 + .../model_io/output_parsers/get_started.mdx | 76 + .../output_parsers/output_fixing_parser.mdx | 112 + .../model_io/output_parsers/structured.mdx | 93 + .../prompts/example_selectors/get_started.mdx | 10 + .../example_selectors/length_based.mdx | 130 + .../prompts/example_selectors/similarity.mdx | 112 + .../prompt_templates/few_shot_examples.mdx | 257 ++ .../prompts/prompt_templates/get_started.mdx | 140 + .../prompts/prompt_templates/partial.mdx | 92 + .../prompt_templates/prompt_composition.mdx | 88 + docs/tracing/hosted_installation.md | 36 - docs/tracing/local_installation.md | 35 - docs/use_cases/agent_simulations.md | 24 - docs/use_cases/chatbots.md | 21 - .../use_cases/question_answering/messages.txt | 246 -- .../agent_toolkits/vectorstore/toolkit.py | 2 +- langchain/chains/conversation/base.py | 1 + .../client/tracing_datasets.ipynb | 27 +- tests/unit_tests/examples/example_prompt.json | 5 + tests/unit_tests/examples/examples.json | 4 + tests/unit_tests/examples/examples.yaml | 4 + .../unit_tests}/examples/few_shot_prompt.json | 0 .../unit_tests}/examples/few_shot_prompt.yaml | 0 .../few_shot_prompt_example_prompt.json | 0 .../examples/few_shot_prompt_examples_in.json | 0 .../few_shot_prompt_yaml_examples.yaml | 0 .../examples/prompt_with_output_parser.json | 20 + tests/unit_tests/examples/simple_prompt.json | 5 + tests/unit_tests/examples/simple_prompt.yaml | 5 + .../simple_prompt_with_template_file.json | 5 + tests/unit_tests/examples/simple_template.txt | 1 + tests/unit_tests/prompts/test_loading.py | 53 +- 1027 files changed, 23012 insertions(+), 36746 deletions(-) delete mode 100644 .github/workflows/linkcheck.yml create mode 100644 .gitmodules rename docs/{ => api_reference}/Makefile (100%) rename docs/{ => api_reference}/_static/css/custom.css (100%) rename docs/{ => api_reference}/_static/js/mendablesearch.js (100%) rename docs/{reference => api_reference}/agents.rst (100%) rename docs/{ => api_reference}/conf.py (82%) rename docs/{reference/indexes.rst => api_reference/data_connection.rst} (60%) create mode 100644 docs/api_reference/index.rst rename docs/{ => api_reference}/make.bat (100%) create mode 100644 docs/api_reference/model_io.rst rename docs/{reference => api_reference}/models.rst (89%) rename docs/{reference => api_reference}/modules/agent_toolkits.rst (100%) rename docs/{reference => api_reference}/modules/agents.rst (100%) create mode 100644 docs/api_reference/modules/base_classes.rst create mode 100644 docs/api_reference/modules/callbacks.rst rename docs/{reference => api_reference}/modules/chains.rst (74%) rename docs/{reference => api_reference}/modules/chat_models.rst (100%) rename docs/{reference => api_reference}/modules/document_loaders.rst (100%) rename docs/{reference => api_reference}/modules/document_transformers.rst (53%) rename docs/{reference => api_reference}/modules/embeddings.rst (100%) rename docs/{reference => api_reference}/modules/example_selector.rst (100%) rename docs/{reference => api_reference}/modules/experimental.rst (91%) rename docs/{reference => api_reference}/modules/llms.rst (100%) rename docs/{reference => api_reference}/modules/memory.rst (100%) rename docs/{reference => api_reference}/modules/output_parsers.rst (100%) rename docs/{reference => api_reference}/modules/prompts.rst (66%) create mode 100644 docs/api_reference/modules/retrievers.rst rename docs/{reference => api_reference}/modules/tools.rst (100%) rename docs/{reference => api_reference}/modules/utilities.rst (100%) rename docs/{reference => api_reference}/modules/vectorstores.rst (100%) rename docs/{reference => api_reference}/prompts.rst (87%) delete mode 100644 docs/dependents.md create mode 100644 docs/docs_skeleton/.gitignore create mode 100644 docs/docs_skeleton/README.md create mode 100644 docs/docs_skeleton/babel.config.js create mode 100644 docs/docs_skeleton/code-block-loader.js rename docs/{ => docs_skeleton/docs}/_static/ApifyActors.png (100%) rename docs/{ => docs_skeleton/docs}/_static/DataberryDashboard.png (100%) rename docs/{ => docs_skeleton/docs}/_static/HeliconeDashboard.png (100%) rename docs/{ => docs_skeleton/docs}/_static/HeliconeKeys.png (100%) rename docs/{ => docs_skeleton/docs}/_static/MetalDash.png (100%) create mode 100644 docs/docs_skeleton/docs/_static/android-chrome-192x192.png create mode 100644 docs/docs_skeleton/docs/_static/android-chrome-512x512.png create mode 100644 docs/docs_skeleton/docs/_static/apple-touch-icon.png create mode 100644 docs/docs_skeleton/docs/_static/css/custom.css create mode 100644 docs/docs_skeleton/docs/_static/favicon-16x16.png create mode 100644 docs/docs_skeleton/docs/_static/favicon-32x32.png create mode 100644 docs/docs_skeleton/docs/_static/favicon.ico create mode 100644 docs/docs_skeleton/docs/_static/js/mendablesearch.js create mode 100644 docs/docs_skeleton/docs/_static/lc_modules.jpg create mode 100644 docs/docs_skeleton/docs/_static/parrot-chainlink-icon.png create mode 100644 docs/docs_skeleton/docs/_static/parrot-icon.png create mode 100644 docs/docs_skeleton/docs/ecosystem/integrations/index.mdx create mode 100644 docs/docs_skeleton/docs/get_started/installation.mdx create mode 100644 docs/docs_skeleton/docs/get_started/introduction.mdx create mode 100644 docs/docs_skeleton/docs/get_started/quickstart.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/agent_types/chat_conversation_agent.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/agent_types/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/agent_types/openai_functions_agent.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/agent_types/plan_and_execute.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/agent_types/react.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/agent_types/structured_chat.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/how_to/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/agents/how_to/custom_llm_agent.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/how_to/custom_llm_chat_agent.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/how_to/mrkl.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/toolkits/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/tools/how_to/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/agents/tools/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/agents/tools/integrations/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/callbacks/how_to/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/callbacks/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/callbacks/integrations/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/chains/additional/analyze_document.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/additional/constitutional_chain.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/additional/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/additional/moderation.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/additional/multi_prompt_router.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/additional/multi_retrieval_qa_router.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/additional/question_answering.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/document/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/document/map_reduce.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/document/map_rerank.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/document/refine.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/document/stuff.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/foundational/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/foundational/llm_chain.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/foundational/sequential_chains.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/how_to/debugging.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/how_to/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/how_to/memory.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/popular/api.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/popular/chat_vector_db.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/popular/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/popular/sqlite.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/popular/summarize.mdx create mode 100644 docs/docs_skeleton/docs/modules/chains/popular/vector_db_qa.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_loaders/how_to/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_loaders/how_to/csv.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_loaders/how_to/file_directory.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_loaders/how_to/html.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_loaders/how_to/json.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_loaders/how_to/markdown.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_loaders/how_to/pdf.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_loaders/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_loaders/integrations/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_transformers/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_transformers/text_splitters/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_transformers/text_splitters/character_text_splitter.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_transformers/text_splitters/code_splitter.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/document_transformers/text_splitters/recursive_text_splitter.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/retrievers/how_to/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/data_connection/retrievers/how_to/contextual_compression/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/retrievers/how_to/self_query/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/retrievers/how_to/time_weighted_vectorstore.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/retrievers/how_to/vectorstore.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/retrievers/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/retrievers/integrations/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/data_connection/text_embedding/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/text_embedding/integrations/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/data_connection/vectorstores/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/data_connection/vectorstores/integrations/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/memory/how_to/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/memory/how_to/buffer.mdx create mode 100644 docs/docs_skeleton/docs/modules/memory/how_to/buffer_window.mdx create mode 100644 docs/docs_skeleton/docs/modules/memory/how_to/entity_summary_memory.mdx create mode 100644 docs/docs_skeleton/docs/modules/memory/how_to/summary.mdx create mode 100644 docs/docs_skeleton/docs/modules/memory/how_to/vectorstore_retriever_memory.mdx create mode 100644 docs/docs_skeleton/docs/modules/memory/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/memory/integrations/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/model_io/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/models/chat/how_to/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/model_io/models/chat/how_to/llm_chain.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/models/chat/how_to/prompts.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/models/chat/how_to/streaming.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/models/chat/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/models/chat/integrations/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/model_io/models/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/models/llms/how_to/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/model_io/models/llms/how_to/llm_caching.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/models/llms/how_to/streaming_llm.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/models/llms/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/models/llms/integrations/_category_.yml create mode 100644 docs/docs_skeleton/docs/modules/model_io/output_parsers/comma_separated.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/output_parsers/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/output_parsers/output_fixing_parser.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/output_parsers/structured.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/prompts/example_selectors/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/prompts/example_selectors/length_based.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/prompts/example_selectors/similarity.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/prompts/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/prompts/prompt_templates/few_shot_examples.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/prompts/prompt_templates/index.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/prompts/prompt_templates/partial.mdx create mode 100644 docs/docs_skeleton/docs/modules/model_io/prompts/prompt_templates/prompt_composition.mdx create mode 100644 docs/docs_skeleton/docusaurus.config.js create mode 100755 docs/docs_skeleton/ignore_build.sh create mode 100644 docs/docs_skeleton/package.json create mode 100644 docs/docs_skeleton/settings.ini create mode 100644 docs/docs_skeleton/sidebars.js create mode 100644 docs/docs_skeleton/src/css/custom.css create mode 100644 docs/docs_skeleton/src/pages/index.js create mode 100644 docs/docs_skeleton/src/theme/CodeBlock/index.js create mode 100644 docs/docs_skeleton/src/theme/SearchBar.js create mode 100644 docs/docs_skeleton/static/.nojekyll create mode 100644 docs/docs_skeleton/static/img/ApifyActors.png create mode 100644 docs/docs_skeleton/static/img/HeliconeDashboard.png create mode 100644 docs/docs_skeleton/static/img/HeliconeKeys.png create mode 100644 docs/docs_skeleton/static/img/MetalDash.png create mode 100644 docs/docs_skeleton/static/img/apple-touch-icon.png create mode 100644 docs/docs_skeleton/static/img/contextual_compression.jpg create mode 100644 docs/docs_skeleton/static/img/data_connection.jpg create mode 100644 docs/docs_skeleton/static/img/favicon-16x16.png create mode 100644 docs/docs_skeleton/static/img/favicon-32x32.png create mode 100644 docs/docs_skeleton/static/img/favicon.ico create mode 100644 docs/docs_skeleton/static/img/map_reduce.jpg create mode 100644 docs/docs_skeleton/static/img/map_rerank.jpg create mode 100644 docs/docs_skeleton/static/img/model_io.jpg create mode 100644 docs/docs_skeleton/static/img/parrot-chainlink-icon.png create mode 100644 docs/docs_skeleton/static/img/parrot-icon.png create mode 100644 docs/docs_skeleton/static/img/refine.jpg create mode 100644 docs/docs_skeleton/static/img/self_querying.jpg create mode 100644 docs/docs_skeleton/static/img/stuff.jpg create mode 100755 docs/docs_skeleton/vercel_build.sh rename docs/{templates/integration.md => extras/_templates/integration.mdx} (79%) rename docs/{additional_resources/youtube.md => extras/additional_resources/youtube.mdx} (58%) create mode 100644 docs/extras/ecosystem/dependents.mdx rename docs/{ => extras/ecosystem}/integrations/agent_with_wandb_tracing.ipynb (99%) rename docs/{integrations/ai21.md => extras/ecosystem/integrations/ai21.mdx} (100%) rename docs/{ => extras/ecosystem}/integrations/aim_tracking.ipynb (93%) rename docs/{integrations/airbyte.md => extras/ecosystem/integrations/airbyte.mdx} (91%) rename docs/{integrations/aleph_alpha.md => extras/ecosystem/integrations/aleph_alpha.mdx} (84%) rename docs/{integrations/analyticdb.md => extras/ecosystem/integrations/analyticdb.mdx} (81%) rename docs/{integrations/annoy.md => extras/ecosystem/integrations/annoy.mdx} (83%) rename docs/{integrations/anyscale.md => extras/ecosystem/integrations/anyscale.mdx} (100%) rename docs/{integrations/apify.md => extras/ecosystem/integrations/apify.mdx} (86%) rename docs/{integrations/argilla.md => extras/ecosystem/integrations/argilla.mdx} (90%) rename docs/{integrations/arxiv.md => extras/ecosystem/integrations/arxiv.mdx} (79%) rename docs/{integrations/atlas.md => extras/ecosystem/integrations/atlas.mdx} (92%) rename docs/{ => extras/ecosystem}/integrations/awadb.md (100%) rename docs/{integrations/aws_s3.md => extras/ecosystem/integrations/aws_s3.mdx} (68%) rename docs/{integrations/azlyrics.md => extras/ecosystem/integrations/azlyrics.mdx} (73%) rename docs/{integrations/azure_blob_storage.md => extras/ecosystem/integrations/azure_blob_storage.mdx} (82%) rename docs/{integrations/azure_cognitive_search_.md => extras/ecosystem/integrations/azure_cognitive_search_.mdx} (92%) rename docs/{integrations/azure_openai.md => extras/ecosystem/integrations/azure_openai.mdx} (83%) rename docs/{integrations/bananadev.md => extras/ecosystem/integrations/bananadev.mdx} (100%) rename docs/{ecosystem => extras/ecosystem/integrations}/baseten.md (100%) rename docs/{integrations/beam.md => extras/ecosystem/integrations/beam.mdx} (81%) rename docs/{integrations/amazon_bedrock.md => extras/ecosystem/integrations/bedrock.mdx} (70%) rename docs/{integrations/bilibili.md => extras/ecosystem/integrations/bilibili.mdx} (73%) rename docs/{integrations/blackboard.md => extras/ecosystem/integrations/blackboard.mdx} (90%) rename docs/{integrations/cassandra.md => extras/ecosystem/integrations/cassandra.mdx} (89%) rename docs/{integrations/cerebriumai.md => extras/ecosystem/integrations/cerebriumai.mdx} (100%) rename docs/{integrations/chroma.md => extras/ecosystem/integrations/chroma.mdx} (74%) rename docs/{ => extras/ecosystem}/integrations/clearml_tracking.ipynb (99%) rename docs/{integrations/cohere.md => extras/ecosystem/integrations/cohere.mdx} (70%) rename docs/{integrations/college_confidential.md => extras/ecosystem/integrations/college_confidential.mdx} (73%) rename docs/{ => extras/ecosystem}/integrations/comet_tracking.ipynb (97%) rename docs/{integrations/confluence.md => extras/ecosystem/integrations/confluence.mdx} (85%) rename docs/{integrations/ctransformers.md => extras/ecosystem/integrations/ctransformers.mdx} (92%) rename docs/{integrations/databerry.md => extras/ecosystem/integrations/databerry.mdx} (84%) rename docs/{integrations/databricks => extras/ecosystem/integrations}/databricks.ipynb (75%) rename docs/{ => extras/ecosystem}/integrations/databricks.md (100%) create mode 100644 docs/extras/ecosystem/integrations/databricks/databricks.ipynb rename docs/{integrations/deepinfra.md => extras/ecosystem/integrations/deepinfra.mdx} (100%) rename docs/{integrations/deeplake.md => extras/ecosystem/integrations/deeplake.mdx} (81%) rename docs/{integrations/diffbot.md => extras/ecosystem/integrations/diffbot.mdx} (88%) rename docs/{integrations/discord.md => extras/ecosystem/integrations/discord.mdx} (90%) rename docs/{integrations/docugami.md => extras/ecosystem/integrations/docugami.mdx} (82%) rename docs/{integrations/duckdb.md => extras/ecosystem/integrations/duckdb.mdx} (75%) rename docs/{integrations/elasticsearch.md => extras/ecosystem/integrations/elasticsearch.mdx} (92%) rename docs/{integrations/evernote.md => extras/ecosystem/integrations/evernote.mdx} (83%) rename docs/{integrations/facebook_chat.md => extras/ecosystem/integrations/facebook_chat.mdx} (82%) rename docs/{integrations/figma.md => extras/ecosystem/integrations/figma.mdx} (86%) rename docs/{integrations/forefrontai.md => extras/ecosystem/integrations/forefrontai.mdx} (100%) rename docs/{integrations/git.md => extras/ecosystem/integrations/git.mdx} (83%) rename docs/{integrations/gitbook.md => extras/ecosystem/integrations/gitbook.mdx} (77%) rename docs/{integrations/google_bigquery.md => extras/ecosystem/integrations/google_bigquery.mdx} (81%) rename docs/{integrations/google_cloud_storage.md => extras/ecosystem/integrations/google_cloud_storage.mdx} (70%) rename docs/{integrations/google_drive.md => extras/ecosystem/integrations/google_drive.mdx} (77%) rename docs/{integrations/google_search.md => extras/ecosystem/integrations/google_search.mdx} (87%) rename docs/{integrations/google_serper.md => extras/ecosystem/integrations/google_serper.mdx} (92%) rename docs/{integrations/gooseai.md => extras/ecosystem/integrations/gooseai.mdx} (100%) rename docs/{integrations/gpt4all.md => extras/ecosystem/integrations/gpt4all.mdx} (92%) rename docs/{integrations/graphsignal.md => extras/ecosystem/integrations/graphsignal.mdx} (100%) rename docs/{integrations/gutenberg.md => extras/ecosystem/integrations/gutenberg.mdx} (72%) rename docs/{integrations/hacker_news.md => extras/ecosystem/integrations/hacker_news.mdx} (83%) rename docs/{integrations/hazy_research.md => extras/ecosystem/integrations/hazy_research.mdx} (100%) rename docs/{integrations/helicone.md => extras/ecosystem/integrations/helicone.mdx} (94%) rename docs/{integrations/huggingface.md => extras/ecosystem/integrations/huggingface.mdx} (85%) rename docs/{integrations/ifixit.md => extras/ecosystem/integrations/ifixit.mdx} (80%) rename docs/{integrations/imsdb.md => extras/ecosystem/integrations/imsdb.mdx} (71%) rename docs/{integrations/jina.md => extras/ecosystem/integrations/jina.mdx} (80%) rename docs/{integrations/lancedb.md => extras/ecosystem/integrations/lancedb.mdx} (88%) rename docs/{integrations/langchain_decorators.md => extras/ecosystem/integrations/langchain_decorators.mdx} (99%) rename docs/{integrations/llamacpp.md => extras/ecosystem/integrations/llamacpp.mdx} (75%) rename docs/{integrations/mediawikidump.md => extras/ecosystem/integrations/mediawikidump.mdx} (89%) rename docs/{integrations/metal.md => extras/ecosystem/integrations/metal.mdx} (96%) rename docs/{integrations/microsoft_onedrive.md => extras/ecosystem/integrations/microsoft_onedrive.mdx} (60%) rename docs/{integrations/microsoft_powerpoint.md => extras/ecosystem/integrations/microsoft_powerpoint.mdx} (73%) rename docs/{integrations/microsoft_word.md => extras/ecosystem/integrations/microsoft_word.mdx} (74%) rename docs/{integrations/milvus.md => extras/ecosystem/integrations/milvus.mdx} (87%) rename docs/{ => extras/ecosystem}/integrations/mlflow_tracking.ipynb (89%) rename docs/{integrations/modal.md => extras/ecosystem/integrations/modal.mdx} (100%) rename docs/{ecosystem/modelscope.md => extras/ecosystem/integrations/modelscope.mdx} (76%) rename docs/{integrations/modern_treasury.md => extras/ecosystem/integrations/modern_treasury.mdx} (81%) rename docs/{integrations/momento.md => extras/ecosystem/integrations/momento.mdx} (90%) rename docs/{integrations/myscale.md => extras/ecosystem/integrations/myscale.mdx} (96%) rename docs/{integrations/nlpcloud.md => extras/ecosystem/integrations/nlpcloud.mdx} (100%) rename docs/{integrations/notion.md => extras/ecosystem/integrations/notion.mdx} (70%) rename docs/{integrations/obsidian.md => extras/ecosystem/integrations/obsidian.mdx} (76%) rename docs/{integrations/openai.md => extras/ecosystem/integrations/openai.mdx} (72%) rename docs/{integrations/opensearch.md => extras/ecosystem/integrations/opensearch.mdx} (89%) rename docs/{integrations/openweathermap.md => extras/ecosystem/integrations/openweathermap.mdx} (87%) rename docs/{integrations/petals.md => extras/ecosystem/integrations/petals.mdx} (100%) rename docs/{integrations/pgvector.md => extras/ecosystem/integrations/pgvector.mdx} (91%) rename docs/{integrations/pinecone.md => extras/ecosystem/integrations/pinecone.mdx} (86%) rename docs/{integrations/pipelineai.md => extras/ecosystem/integrations/pipelineai.mdx} (100%) rename docs/{integrations/predictionguard.md => extras/ecosystem/integrations/predictionguard.mdx} (83%) rename docs/{integrations/promptlayer.md => extras/ecosystem/integrations/promptlayer.mdx} (51%) rename docs/{integrations/psychic.md => extras/ecosystem/integrations/psychic.mdx} (92%) rename docs/{integrations/qdrant.md => extras/ecosystem/integrations/qdrant.mdx} (87%) rename docs/{ => extras/ecosystem}/integrations/ray_serve.ipynb (98%) rename docs/{ => extras/ecosystem}/integrations/rebuff.ipynb (93%) rename docs/{integrations/reddit.md => extras/ecosystem/integrations/reddit.mdx} (82%) rename docs/{integrations/redis.md => extras/ecosystem/integrations/redis.mdx} (88%) rename docs/{integrations/replicate.md => extras/ecosystem/integrations/replicate.mdx} (100%) rename docs/{integrations/roam.md => extras/ecosystem/integrations/roam.mdx} (75%) rename docs/{integrations/runhouse.md => extras/ecosystem/integrations/runhouse.mdx} (86%) rename docs/{integrations/rwkv.md => extras/ecosystem/integrations/rwkv.mdx} (100%) rename docs/{integrations/sagemaker_endpoint.md => extras/ecosystem/integrations/sagemaker_endpoint.mdx} (89%) rename docs/{integrations/searx.md => extras/ecosystem/integrations/searx.mdx} (95%) rename docs/{integrations/serpapi.md => extras/ecosystem/integrations/serpapi.mdx} (84%) rename docs/{ => extras/ecosystem}/integrations/shaleprotocol.md (100%) rename docs/{integrations/sklearn.md => extras/ecosystem/integrations/sklearn.mdx} (87%) rename docs/{integrations/slack.md => extras/ecosystem/integrations/slack.mdx} (71%) rename docs/{integrations/spacy.md => extras/ecosystem/integrations/spacy.mdx} (72%) rename docs/{integrations/spreedly.md => extras/ecosystem/integrations/spreedly.mdx} (76%) rename docs/{integrations/stochasticai.md => extras/ecosystem/integrations/stochasticai.mdx} (100%) rename docs/{integrations/stripe.md => extras/ecosystem/integrations/stripe.mdx} (65%) rename docs/{integrations/tair.md => extras/ecosystem/integrations/tair.mdx} (85%) rename docs/{integrations/telegram.md => extras/ecosystem/integrations/telegram.mdx} (71%) rename docs/{integrations/tomarkdown.md => extras/ecosystem/integrations/tomarkdown.mdx} (76%) rename docs/{integrations/trello.md => extras/ecosystem/integrations/trello.mdx} (74%) rename docs/{integrations/twitter.md => extras/ecosystem/integrations/twitter.mdx} (78%) rename docs/{integrations/unstructured.md => extras/ecosystem/integrations/unstructured.mdx} (100%) rename docs/{integrations/vectara.md => extras/ecosystem/integrations/vectara/index.mdx} (100%) rename docs/{ => extras/ecosystem}/integrations/vectara/vectara_chat.ipynb (91%) rename docs/{ => extras/ecosystem}/integrations/vectara/vectara_text_generation.ipynb (97%) rename docs/{integrations/vespa.md => extras/ecosystem/integrations/vespa.mdx} (79%) rename docs/{ => extras/ecosystem}/integrations/wandb_tracking.ipynb (96%) rename docs/{integrations/weather.md => extras/ecosystem/integrations/weather.mdx} (75%) rename docs/{integrations/weaviate.md => extras/ecosystem/integrations/weaviate.mdx} (95%) rename docs/{integrations/whatsapp.md => extras/ecosystem/integrations/whatsapp.mdx} (82%) rename docs/{ => extras/ecosystem}/integrations/whylabs_profiling.ipynb (100%) rename docs/{integrations/wikipedia.md => extras/ecosystem/integrations/wikipedia.mdx} (74%) rename docs/{integrations/wolfram_alpha.md => extras/ecosystem/integrations/wolfram_alpha.mdx} (86%) rename docs/{integrations/writer.md => extras/ecosystem/integrations/writer.mdx} (100%) rename docs/{integrations/yeagerai.md => extras/ecosystem/integrations/yeagerai.mdx} (100%) rename docs/{integrations/youtube.md => extras/ecosystem/integrations/youtube.mdx} (66%) rename docs/{integrations/zep.md => extras/ecosystem/integrations/zep.mdx} (90%) rename docs/{integrations/zilliz.md => extras/ecosystem/integrations/zilliz.mdx} (85%) rename docs/{additional_resources/deploy_llms.rst => extras/guides/deployments/index.mdx} (89%) rename docs/{ecosystem/deployments.md => extras/guides/deployments/template_repos.mdx} (92%) rename docs/{use_cases => extras/guides}/evaluation/agent_benchmarking.ipynb (88%) rename docs/{use_cases => extras/guides}/evaluation/agent_vectordb_sota_pg.ipynb (87%) rename docs/{use_cases => extras/guides}/evaluation/benchmarking_template.ipynb (99%) rename docs/{use_cases => extras/guides}/evaluation/data_augmented_question_answering.ipynb (94%) rename docs/{use_cases => extras/guides}/evaluation/generic_agent_evaluation.ipynb (91%) rename docs/{use_cases => extras/guides}/evaluation/huggingface_datasets.ipynb (94%) rename docs/{use_cases/evaluation.rst => extras/guides/evaluation/index.mdx} (57%) rename docs/{use_cases => extras/guides}/evaluation/llm_math.ipynb (97%) rename docs/{use_cases => extras/guides}/evaluation/openapi_eval.ipynb (94%) rename docs/{use_cases => extras/guides}/evaluation/qa_benchmarking_pg.ipynb (93%) rename docs/{use_cases => extras/guides}/evaluation/qa_benchmarking_sota.ipynb (93%) rename docs/{use_cases => extras/guides}/evaluation/qa_generation.ipynb (97%) rename docs/{use_cases => extras/guides}/evaluation/question_answering.ipynb (87%) rename docs/{use_cases => extras/guides}/evaluation/sql_qa_benchmarking_chinook.ipynb (96%) rename docs/{additional_resources => extras/guides}/model_laboratory.ipynb (93%) rename docs/{ => extras/guides}/tracing/agent_with_tracing.ipynb (97%) rename docs/{ => extras/guides}/tracing/default_empty.png (100%) rename docs/{ => extras/guides}/tracing/explore.png (100%) rename docs/{ => extras/guides}/tracing/explore_llm.png (100%) rename docs/{ => extras/guides}/tracing/explore_trace.png (100%) rename docs/{ => extras/guides}/tracing/first_trace.png (100%) rename docs/{ => extras/guides}/tracing/homepage.png (100%) rename docs/{additional_resources/tracing.md => extras/guides/tracing/index.mdx} (84%) rename docs/{modules/agents/agents/examples => extras/modules/agents/agent_types}/openai_functions_agent.ipynb (90%) rename docs/{modules/agents/agents/examples/react.ipynb => extras/modules/agents/agent_types/react_docstore.ipynb} (92%) rename docs/{modules/agents/agents/examples => extras/modules/agents/agent_types}/self_ask_with_search.ipynb (85%) rename docs/{modules/agents/agent_executors/examples => extras/modules/agents/how_to}/agent_vectorstore.ipynb (90%) rename docs/{modules/agents/agent_executors/examples => extras/modules/agents/how_to}/async_agent.ipynb (67%) rename docs/{modules/agents/agent_executors/examples => extras/modules/agents/how_to}/chatgpt_clone.ipynb (96%) rename docs/{modules/agents/agents => extras/modules/agents/how_to}/custom_agent.ipynb (94%) rename docs/{modules/agents/agents => extras/modules/agents/how_to}/custom_agent_with_tool_retrieval.ipynb (91%) rename docs/{modules/agents/agents => extras/modules/agents/how_to}/custom_mrkl_agent.ipynb (94%) rename docs/{modules/agents/agents => extras/modules/agents/how_to}/custom_multi_action_agent.ipynb (93%) rename docs/{modules/agents/agent_executors/examples => extras/modules/agents/how_to}/handle_parsing_errors.ipynb (96%) rename docs/{modules/agents/agent_executors/examples => extras/modules/agents/how_to}/intermediate_steps.ipynb (91%) rename docs/{modules/agents/agent_executors/examples => extras/modules/agents/how_to}/max_iterations.ipynb (88%) rename docs/{modules/agents/agent_executors/examples => extras/modules/agents/how_to}/max_time_limit.ipynb (87%) rename docs/{modules/agents/agent_executors/examples => extras/modules/agents/how_to}/sharedmemory_for_tools.ipynb (93%) rename docs/{modules/agents => extras/modules/agents/how_to}/streaming_stdout_final_only.ipynb (83%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/azure_cognitive_services.ipynb (97%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/csv.ipynb (93%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/gmail.ipynb (95%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/jira.ipynb (88%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/json.ipynb (95%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/openapi.ipynb (96%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/openapi_nla.ipynb (91%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/pandas.ipynb (98%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/playwright.ipynb (96%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/powerbi.ipynb (82%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/python.ipynb (97%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/spark.ipynb (98%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/spark_sql.ipynb (83%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/sql_database.ipynb (98%) rename docs/{modules/agents/toolkits/examples => extras/modules/agents/toolkits}/vectorstore.ipynb (91%) rename docs/{modules/agents/tools => extras/modules/agents/tools/how_to}/custom_tools.ipynb (88%) rename docs/{modules/agents/tools => extras/modules/agents/tools/how_to}/human_approval.ipynb (99%) rename docs/{modules/agents/tools => extras/modules/agents/tools/how_to}/multi_input_tool.ipynb (93%) rename docs/{modules/agents/tools => extras/modules/agents/tools/how_to}/tool_input_validation.ipynb (95%) rename docs/{modules/agents/tools => extras/modules/agents/tools/how_to}/tools_as_openai_functions.ipynb (93%) create mode 100644 docs/extras/modules/agents/tools/integrations/_gradio_tools_files/output_7_0.png rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/apify.ipynb (94%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/arxiv.ipynb (99%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/awslambda.ipynb (95%) create mode 100644 docs/extras/modules/agents/tools/integrations/bash.ipynb rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/bing_search.ipynb (99%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/brave_search.ipynb (100%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/chatgpt_plugins.ipynb (97%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/ddg.ipynb (100%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/filesystem.ipynb (95%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/google_places.ipynb (99%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/google_search.ipynb (96%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/google_serper.ipynb (97%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/gradio_tools.ipynb (99%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/graphql.ipynb (94%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/huggingface_tools.ipynb (100%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/human_tools.ipynb (97%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/ifttt.ipynb (96%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/metaphor_search.ipynb (94%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/openweathermap.ipynb (97%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/pubmed.ipynb (100%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/python.ipynb (98%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/requests.ipynb (99%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/sceneXplain.ipynb (99%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/search_tools.ipynb (95%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/searx_search.ipynb (97%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/serpapi.ipynb (99%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/twilio.ipynb (95%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/wikipedia.ipynb (99%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/wolfram_alpha.ipynb (97%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/youtube.ipynb (100%) rename docs/{modules/agents/tools/examples => extras/modules/agents/tools/integrations}/zapier.ipynb (87%) create mode 100644 docs/extras/modules/callbacks/how_to/async_callbacks.ipynb create mode 100644 docs/extras/modules/callbacks/how_to/custom_callbacks.ipynb create mode 100644 docs/extras/modules/callbacks/how_to/custom_chain.mdx rename docs/{modules/callbacks => extras/modules/callbacks/how_to}/filecallbackhandler.ipynb (98%) create mode 100644 docs/extras/modules/callbacks/how_to/multiple_callbacks.ipynb create mode 100644 docs/extras/modules/callbacks/how_to/tags.mdx create mode 100644 docs/extras/modules/callbacks/how_to/token_counting.ipynb create mode 100644 docs/extras/modules/callbacks/how_to/tracing.ipynb rename docs/{modules/callbacks/examples => extras/modules/callbacks/integrations}/argilla.ipynb (99%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/extraction.ipynb (91%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/flare.ipynb (99%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/graph_cypher_qa.ipynb (99%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/graph_nebula_qa.ipynb (99%) rename docs/{modules/chains/index_examples => extras/modules/chains/additional}/graph_qa.ipynb (100%) rename docs/{modules/chains/index_examples => extras/modules/chains/additional}/hyde.ipynb (95%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/llm_bash.ipynb (87%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/llm_checker.ipynb (97%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/llm_math.ipynb (97%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/llm_requests.ipynb (94%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/llm_summarization_checker.ipynb (99%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/openai_openapi.yaml (100%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/openapi.ipynb (97%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/pal.ipynb (96%) rename docs/{modules/chains/examples => extras/modules/chains/additional}/tagging.ipynb (86%) rename docs/{modules/chains/index_examples => extras/modules/chains/additional}/vector_db_text_generation.ipynb (98%) rename docs/{modules/chains/generic => extras/modules/chains/foundational}/router.ipynb (90%) rename docs/{modules/chains/generic => extras/modules/chains/foundational}/transformation.ipynb (93%) rename docs/{modules/chains/generic => extras/modules/chains/how_to}/async_chain.ipynb (88%) create mode 100644 docs/extras/modules/chains/how_to/call_methods.ipynb rename docs/{modules/chains/generic => extras/modules/chains/how_to}/custom_chain.ipynb (91%) rename docs/{modules/chains/generic => extras/modules/chains/how_to}/from_hub.ipynb (98%) rename docs/{modules/chains/generic => extras/modules/chains/how_to}/llm.json (100%) rename docs/{modules/chains/generic => extras/modules/chains/how_to}/llm_chain.json (100%) rename docs/{modules/chains/generic => extras/modules/chains/how_to}/llm_chain_separate.json (100%) rename docs/{modules/chains/generic => extras/modules/chains/how_to}/prompt.json (100%) rename docs/{modules/chains/generic => extras/modules/chains/how_to}/serialization.ipynb (94%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/acreom.ipynb (95%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/airbyte_json.ipynb (97%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/airtable.ipynb (95%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/alibaba_cloud_maxcompute.ipynb (98%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/apify_dataset.ipynb (97%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/arxiv.ipynb (99%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/aws_s3_directory.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/aws_s3_file.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/azlyrics.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/azure_blob_storage_container.ipynb (96%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/azure_blob_storage_file.ipynb (92%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/bibtex.ipynb (97%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/bilibili.ipynb (94%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/blackboard.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/blockchain.ipynb (76%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/chatgpt_loader.ipynb (95%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/college_confidential.ipynb (98%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/confluence.ipynb (92%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/conll-u.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/copypaste.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/csv.ipynb (97%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/diffbot.ipynb (99%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/discord.ipynb (93%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/docugami.ipynb (99%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/duckdb.ipynb (97%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/email.ipynb (95%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/embaas.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/epub.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/evernote.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/conllu.conllu (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/facebook_chat.json (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/factbook.xml (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake-content.html (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake-email.eml (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake-email.msg (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake-power-point.pptx (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake.docx (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake.odt (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake_conversations.json (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake_discord_data/output.txt (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake_discord_data/package/messages/c105765859191975936/messages.csv (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake_discord_data/package/messages/c278566343836565505/messages.csv (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake_discord_data/package/messages/c279692806442844161/messages.csv (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake_discord_data/package/messages/c280973436971515906/messages.csv (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/fake_rule.toml (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/layout-parser-paper.pdf (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/mlb_teams_2012.csv (100%) create mode 100644 docs/extras/modules/data_connection/document_loaders/integrations/example_data/notebook.md rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/sitemap.xml (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/stanley-cups.xlsx (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/telegram.json (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/testing.enex (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/testmw_pages_current.xml (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/example_data/whatsapp_chat.txt (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/excel.ipynb (95%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/facebook_chat.ipynb (99%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/fauna.ipynb (89%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/figma.ipynb (90%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/git.ipynb (96%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/gitbook.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/github.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/google_bigquery.ipynb (95%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/google_cloud_storage_directory.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/google_cloud_storage_file.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/google_drive.ipynb (99%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/gutenberg.ipynb (96%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/hacker_news.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/hugging_face_dataset.ipynb (98%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/ifixit.ipynb (99%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/image.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/image_captions.ipynb (98%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/imsdb.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/iugu.ipynb (94%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/joplin.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/jupyter_notebook.ipynb (62%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/mastodon.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/mediawikidump.ipynb (96%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/microsoft_onedrive.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/microsoft_powerpoint.ipynb (96%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/microsoft_word.ipynb (99%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/modern_treasury.ipynb (97%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/notion.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/notiondb.ipynb (97%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/obsidian.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/odt.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/pandas_dataframe.ipynb (99%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/psychic.ipynb (93%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/pyspark_dataframe.ipynb (98%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/readthedocs_documentation.ipynb (96%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/reddit.ipynb (94%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/roam.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/sitemap.ipynb (99%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/slack.ipynb (96%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/snowflake.ipynb (96%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/spreedly.ipynb (97%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/stripe.ipynb (95%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/subtitle.ipynb (95%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/telegram.ipynb (93%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/tomarkdown.ipynb (96%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/toml.ipynb (97%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/trello.ipynb (97%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/twitter.ipynb (99%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/unstructured_file.ipynb (97%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/url.ipynb (94%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/weather.ipynb (93%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/web_base.ipynb (99%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/whatsapp_chat.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/wikipedia.ipynb (95%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/xml.ipynb (100%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/youtube_audio.ipynb (93%) rename docs/{modules/indexes/document_loaders/examples => extras/modules/data_connection/document_loaders/integrations}/youtube_transcript.ipynb (82%) rename docs/{modules/indexes/text_splitters/examples => extras/modules/data_connection/document_transformers/text_splitters}/markdown_header_metadata.ipynb (78%) create mode 100644 docs/extras/modules/data_connection/document_transformers/text_splitters/split_by_token.ipynb rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/how_to/self_query}/chroma_self_query.ipynb (80%) rename docs/{modules/indexes/retrievers/examples/self_query.ipynb => extras/modules/data_connection/retrievers/how_to/self_query/pinecone.ipynb} (77%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/how_to/self_query}/qdrant_self_query.ipynb (80%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/how_to/self_query}/weaviate_self_query.ipynb (74%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/arxiv.ipynb (95%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/aws_kendra_index_retriever.ipynb (96%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/azure_cognitive_search.ipynb (97%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/chatgpt-plugin.ipynb (94%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/cohere-reranker.ipynb (95%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/databerry.ipynb (100%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/elastic_search_bm25.ipynb (98%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/knn.ipynb (93%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/merger_retriever.ipynb (97%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/metal.ipynb (95%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/pinecone_hybrid_search.ipynb (91%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/pubmed.ipynb (100%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/svm.ipynb (93%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/tf_idf.ipynb (89%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/vespa.ipynb (99%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/weaviate-hybrid.ipynb (100%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/wikipedia.ipynb (95%) rename docs/{modules/indexes/retrievers/examples => extras/modules/data_connection/retrievers/integrations}/zep_memorystore.ipynb (99%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/aleph_alpha.ipynb (100%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/azureopenai.ipynb (97%) rename docs/{modules/models/text_embedding/examples/amazon_bedrock.ipynb => extras/modules/data_connection/text_embedding/integrations/bedrock.ipynb} (82%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/cohere.ipynb (100%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/dashscope.ipynb (91%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/deepinfra.ipynb (90%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/elasticsearch.ipynb (76%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/embaas.ipynb (95%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/fake.ipynb (100%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/google_vertex_ai_palm.ipynb (97%) rename docs/{modules/models/text_embedding/examples/huggingface_hub.ipynb => extras/modules/data_connection/text_embedding/integrations/huggingfacehub.ipynb} (100%) rename docs/{modules/models/text_embedding/examples/huggingface_instruct.ipynb => extras/modules/data_connection/text_embedding/integrations/instruct_embeddings.ipynb} (93%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/jina.ipynb (94%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/llamacpp.ipynb (100%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/minimax.ipynb (95%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/modelscope_hub.ipynb (100%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/mosaicml.ipynb (87%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/openai.ipynb (100%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/sagemaker-endpoint.ipynb (88%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/self-hosted.ipynb (100%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/sentence_transformers.ipynb (88%) rename docs/{modules/models/text_embedding/examples => extras/modules/data_connection/text_embedding/integrations}/tensorflowhub.ipynb (87%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/analyticdb.ipynb (97%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/annoy.ipynb (100%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/atlas.ipynb (90%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/awadb.ipynb (93%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/azuresearch.ipynb (88%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/chroma.ipynb (97%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/deeplake.ipynb (93%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/docarray_hnsw.ipynb (96%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/docarray_in_memory.ipynb (98%) create mode 100644 docs/extras/modules/data_connection/vectorstores/integrations/elasticsearch.ipynb rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/faiss.ipynb (98%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/faiss_index/index.faiss (100%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/hologres.ipynb (100%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/lancedb.ipynb (93%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/matchingengine.ipynb (93%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/milvus.ipynb (96%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/mongodb_atlas_vector_search.ipynb (91%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/myscale.ipynb (94%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/opensearch.ipynb (78%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/pgvector.ipynb (97%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/pinecone.ipynb (92%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/qdrant.ipynb (97%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/redis.ipynb (94%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/singlestoredb.ipynb (90%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/sklearn.ipynb (91%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/supabase.ipynb (97%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/tair.ipynb (95%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/tigris.ipynb (91%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/typesense.ipynb (84%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/vectara.ipynb (98%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/weaviate.ipynb (100%) rename docs/{modules/indexes/vectorstores/examples => extras/modules/data_connection/vectorstores/integrations}/zilliz.ipynb (93%) rename docs/{modules/memory/examples => extras/modules/memory/how_to}/adding_memory.ipynb (95%) rename docs/{modules/memory/examples => extras/modules/memory/how_to}/adding_memory_chain_multiple_inputs.ipynb (93%) rename docs/{modules/memory/examples => extras/modules/memory/how_to}/agent_with_memory.ipynb (95%) rename docs/{modules/memory/examples => extras/modules/memory/how_to}/agent_with_memory_in_db.ipynb (83%) rename docs/{modules/memory/examples => extras/modules/memory/how_to}/conversational_customization.ipynb (96%) rename docs/{modules/memory/examples => extras/modules/memory/how_to}/custom_memory.ipynb (94%) rename docs/{modules/memory/types => extras/modules/memory/how_to}/kg.ipynb (95%) rename docs/{modules/memory/examples => extras/modules/memory/how_to}/multiple_memory.ipynb (92%) rename docs/{modules/memory/types => extras/modules/memory/how_to}/summary_buffer.ipynb (96%) rename docs/{modules/memory/types => extras/modules/memory/how_to}/token_buffer.ipynb (96%) rename docs/{modules/memory/examples => extras/modules/memory/integrations}/cassandra_chat_message_history.ipynb (100%) rename docs/{modules/memory/examples => extras/modules/memory/integrations}/dynamodb_chat_message_history.ipynb (85%) rename docs/{modules/memory/examples => extras/modules/memory/integrations}/entity_memory_with_sqlite.ipynb (94%) rename docs/{modules/memory/examples => extras/modules/memory/integrations}/momento_chat_message_history.ipynb (98%) rename docs/{modules/memory/examples => extras/modules/memory/integrations}/mongodb_chat_message_history.ipynb (95%) rename docs/{modules/memory/examples => extras/modules/memory/integrations}/motorhead_memory.ipynb (91%) rename docs/{modules/memory/examples => extras/modules/memory/integrations}/motorhead_memory_managed.ipynb (100%) rename docs/{modules/memory/examples => extras/modules/memory/integrations}/postgres_chat_message_history.ipynb (86%) rename docs/{modules/memory/examples => extras/modules/memory/integrations}/redis_chat_message_history.ipynb (100%) rename docs/{modules/memory/examples => extras/modules/memory/integrations}/zep_memory.ipynb (98%) rename docs/{modules => extras/modules/model_io}/models/chat/integrations/anthropic.ipynb (78%) rename docs/{modules => extras/modules/model_io}/models/chat/integrations/azure_chat_openai.ipynb (88%) rename docs/{modules => extras/modules/model_io}/models/chat/integrations/google_vertex_ai_palm.ipynb (78%) rename docs/{modules => extras/modules/model_io}/models/chat/integrations/openai.ipynb (79%) rename docs/{modules => extras/modules/model_io}/models/chat/integrations/promptlayer_chatopenai.ipynb (89%) rename docs/{modules/models/llms/examples => extras/modules/model_io/models/llms/how_to}/async_llm.ipynb (93%) rename docs/{modules/models/llms/examples => extras/modules/model_io/models/llms/how_to}/custom_llm.ipynb (95%) rename docs/{modules/models/llms/examples => extras/modules/model_io/models/llms/how_to}/fake_llm.ipynb (90%) rename docs/{modules/models/llms/examples => extras/modules/model_io/models/llms/how_to}/human_input_llm.ipynb (97%) rename docs/{modules/models/llms/examples => extras/modules/model_io/models/llms/how_to}/llm.json (100%) rename docs/{modules/models/llms/examples => extras/modules/model_io/models/llms/how_to}/llm.yaml (100%) rename docs/{modules/models/llms/examples => extras/modules/model_io/models/llms/how_to}/llm_serialization.ipynb (98%) rename docs/{modules/models/llms/examples => extras/modules/model_io/models/llms/how_to}/token_usage_tracking.ipynb (79%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/ai21.ipynb (98%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/aleph_alpha.ipynb (93%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/anyscale.ipynb (99%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/azure_openai_example.ipynb (98%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/banana.ipynb (100%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/baseten.ipynb (97%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/beam.ipynb (74%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/bedrock.ipynb (89%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/cerebriumai_example.ipynb (100%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/cohere.ipynb (100%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/ctransformers.ipynb (87%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/databricks.ipynb (97%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/deepinfra_example.ipynb (96%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/forefrontai_example.ipynb (100%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/google_vertex_ai_palm.ipynb (99%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/gooseai_example.ipynb (100%) create mode 100644 docs/extras/modules/model_io/models/llms/integrations/gpt4all.ipynb rename docs/{modules => extras/modules/model_io}/models/llms/integrations/huggingface_hub.ipynb (94%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/huggingface_pipelines.ipynb (89%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/huggingface_textgen_inference.ipynb (94%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/jsonformer_experimental.ipynb (90%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/llamacpp.ipynb (96%) rename docs/{modules/models/llms/examples => extras/modules/model_io/models/llms/integrations}/llm_caching.ipynb (97%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/manifest.ipynb (88%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/modal.ipynb (100%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/mosaicml.ipynb (98%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/nlpcloud.ipynb (100%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/openai.ipynb (100%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/openlm.ipynb (94%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/petals_example.ipynb (100%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/pipelineai_example.ipynb (100%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/predictionguard.ipynb (81%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/promptlayer_openai.ipynb (100%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/rellm_experimental.ipynb (87%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/replicate.ipynb (99%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/runhouse.ipynb (91%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/sagemaker.ipynb (92%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/stochasticai.ipynb (100%) rename docs/{modules => extras/modules/model_io}/models/llms/integrations/writer.ipynb (100%) rename docs/{modules/prompts/output_parsers/examples => extras/modules/model_io/output_parsers}/datetime.ipynb (91%) rename docs/{modules/prompts/output_parsers/examples => extras/modules/model_io/output_parsers}/enum.ipynb (99%) rename docs/{modules/prompts/output_parsers/examples => extras/modules/model_io/output_parsers}/pydantic.ipynb (91%) rename docs/{modules/prompts/output_parsers/examples => extras/modules/model_io/output_parsers}/retry.ipynb (93%) rename docs/{modules/prompts/example_selectors/examples => extras/modules/model_io/prompts/example_selectors}/custom_example_selector.md (97%) rename docs/{modules/prompts/example_selectors/examples => extras/modules/model_io/prompts/example_selectors}/mmr.ipynb (83%) rename docs/{modules/prompts/example_selectors/examples => extras/modules/model_io/prompts/example_selectors}/ngram_overlap.ipynb (93%) rename docs/{modules/prompts/prompt_templates/examples => extras/modules/model_io/prompts/prompt_templates}/connecting_to_a_feature_store.ipynb (97%) rename docs/{modules/prompts/prompt_templates/examples => extras/modules/model_io/prompts/prompt_templates}/custom_prompt_template.ipynb (94%) rename docs/{modules/prompts/prompt_templates/examples => extras/modules/model_io/prompts/prompt_templates}/example_prompt.json (100%) rename docs/{modules/prompts/prompt_templates/examples => extras/modules/model_io/prompts/prompt_templates}/examples.json (100%) rename docs/{modules/prompts/prompt_templates/examples => extras/modules/model_io/prompts/prompt_templates}/examples.yaml (100%) rename docs/{modules/models/chat/examples/few_shot_examples.ipynb => extras/modules/model_io/prompts/prompt_templates/few_shot_examples_chat.ipynb} (80%) create mode 100644 docs/extras/modules/model_io/prompts/prompt_templates/format_output.mdx create mode 100644 docs/extras/modules/model_io/prompts/prompt_templates/formats.mdx create mode 100644 docs/extras/modules/model_io/prompts/prompt_templates/msg_prompt_templates.mdx rename docs/{modules/prompts/prompt_templates/examples => extras/modules/model_io/prompts/prompt_templates}/prompt_serialization.ipynb (98%) rename docs/{modules/prompts/prompt_templates/examples => extras/modules/model_io/prompts/prompt_templates}/prompt_with_output_parser.json (100%) rename docs/{modules/prompts/prompt_templates/examples => extras/modules/model_io/prompts/prompt_templates}/simple_prompt.json (100%) rename docs/{modules/prompts/prompt_templates/examples => extras/modules/model_io/prompts/prompt_templates}/simple_prompt.yaml (100%) rename docs/{modules/prompts/prompt_templates/examples => extras/modules/model_io/prompts/prompt_templates}/simple_prompt_with_template_file.json (100%) rename docs/{modules/prompts/prompt_templates/examples => extras/modules/model_io/prompts/prompt_templates}/simple_template.txt (100%) create mode 100644 docs/extras/modules/model_io/prompts/prompt_templates/validate.mdx rename docs/{ => extras}/modules/paul_graham_essay.txt (100%) rename docs/{ => extras}/modules/state_of_the_union.txt (100%) rename docs/{ => extras}/use_cases/agent_simulations/camel_role_playing.ipynb (94%) rename docs/{ => extras}/use_cases/agent_simulations/characters.ipynb (91%) rename docs/{ => extras}/use_cases/agent_simulations/gymnasium.ipynb (86%) create mode 100644 docs/extras/use_cases/agent_simulations/index.mdx rename docs/{ => extras}/use_cases/agent_simulations/multi_player_dnd.ipynb (90%) rename docs/{ => extras}/use_cases/agent_simulations/multiagent_authoritarian.ipynb (88%) rename docs/{ => extras}/use_cases/agent_simulations/multiagent_bidding.ipynb (88%) rename docs/{ => extras}/use_cases/agent_simulations/petting_zoo.ipynb (95%) rename docs/{ => extras}/use_cases/agent_simulations/two_agent_debate_tools.ipynb (95%) rename docs/{ => extras}/use_cases/agent_simulations/two_player_dnd.ipynb (91%) create mode 100644 docs/extras/use_cases/agents/_multi_modal_output_agent_files/output_10_1.png create mode 100644 docs/extras/use_cases/agents/_multi_modal_output_agent_files/output_15_1.png rename docs/{ => extras}/use_cases/agents/baby_agi.ipynb (100%) rename docs/{ => extras}/use_cases/agents/baby_agi_with_agent.ipynb (98%) rename docs/{ => extras}/use_cases/agents/camel_role_playing.ipynb (94%) rename docs/{ => extras}/use_cases/agents/custom_agent_with_plugin_retrieval.ipynb (91%) rename docs/{ => extras}/use_cases/agents/custom_agent_with_plugin_retrieval_using_plugnplai.ipynb (93%) rename docs/{use_cases/personal_assistants.md => extras/use_cases/agents/index.mdx} (65%) rename docs/{ => extras}/use_cases/agents/multi_modal_output_agent.ipynb (99%) rename docs/{ => extras}/use_cases/agents/sales_agent_with_context.ipynb (76%) rename docs/{ => extras}/use_cases/agents/wikibase_agent.ipynb (87%) rename docs/{use_cases/apis.md => extras/use_cases/apis.mdx} (78%) rename docs/{ => extras}/use_cases/autonomous_agents/autogpt.ipynb (94%) rename docs/{ => extras}/use_cases/autonomous_agents/baby_agi.ipynb (100%) rename docs/{ => extras}/use_cases/autonomous_agents/baby_agi_with_agent.ipynb (97%) rename docs/{use_cases/autonomous_agents.md => extras/use_cases/autonomous_agents/index.mdx} (52%) rename docs/{ => extras}/use_cases/autonomous_agents/marathon_times.ipynb (94%) rename docs/{ => extras}/use_cases/autonomous_agents/meta_prompt.ipynb (94%) create mode 100644 docs/extras/use_cases/chatbots/index.mdx rename docs/{ => extras}/use_cases/chatbots/voice_assistant.ipynb (98%) rename docs/{ => extras}/use_cases/code/code-analysis-deeplake.ipynb (94%) rename docs/{use_cases/code.md => extras/use_cases/code/index.mdx} (89%) rename docs/{ => extras}/use_cases/code/twitter-the-algorithm-analysis-deeplake.ipynb (93%) rename docs/{use_cases/extraction.md => extras/use_cases/extraction.mdx} (87%) create mode 100644 docs/extras/use_cases/multi_modal/_category_.yml create mode 100644 docs/extras/use_cases/multi_modal/_image_agent_files/output_10_1.png rename docs/{ => extras}/use_cases/multi_modal/image_agent.ipynb (99%) rename docs/{use_cases/question_answering.md => extras/use_cases/question_answering/index.mdx} (52%) rename docs/{ => extras}/use_cases/question_answering/semantic-search-over-chat.ipynb (81%) rename docs/{use_cases/summarization.md => extras/use_cases/summarization.mdx} (52%) rename docs/{use_cases/tabular.md => extras/use_cases/tabular.mdx} (65%) delete mode 100644 docs/getting_started/concepts.md delete mode 100644 docs/getting_started/getting_started.md delete mode 100644 docs/getting_started/tutorials.md delete mode 100644 docs/index.rst delete mode 100644 docs/integrations.rst delete mode 100644 docs/integrations/anthropic.md delete mode 100644 docs/integrations/clickhouse.md delete mode 100644 docs/integrations/google_vertex_ai.md delete mode 100644 docs/integrations/tensorflow_hub.md delete mode 100644 docs/modules/agents.rst delete mode 100644 docs/modules/agents/agent_executors.rst delete mode 100644 docs/modules/agents/agents.rst delete mode 100644 docs/modules/agents/agents/agent_types.md delete mode 100644 docs/modules/agents/agents/custom_llm_agent.ipynb delete mode 100644 docs/modules/agents/agents/custom_llm_chat_agent.ipynb delete mode 100644 docs/modules/agents/agents/examples/chat_conversation_agent.ipynb delete mode 100644 docs/modules/agents/agents/examples/conversational_agent.ipynb delete mode 100644 docs/modules/agents/agents/examples/mrkl.ipynb delete mode 100644 docs/modules/agents/agents/examples/mrkl_chat.ipynb delete mode 100644 docs/modules/agents/agents/examples/structured_chat.ipynb delete mode 100644 docs/modules/agents/getting_started.ipynb delete mode 100644 docs/modules/agents/how_to_guides.rst delete mode 100644 docs/modules/agents/plan_and_execute.ipynb delete mode 100644 docs/modules/agents/toolkits.rst delete mode 100644 docs/modules/agents/toolkits/examples/openai_openapi.yml delete mode 100644 docs/modules/agents/toolkits/examples/titanic.csv delete mode 100644 docs/modules/agents/toolkits/examples/titanic_age_fillna.csv delete mode 100644 docs/modules/agents/tools.rst delete mode 100644 docs/modules/agents/tools/examples/bash.ipynb delete mode 100644 docs/modules/agents/tools/getting_started.md delete mode 100644 docs/modules/callbacks/getting_started.ipynb delete mode 100644 docs/modules/chains.rst delete mode 100644 docs/modules/chains/examples/api.ipynb delete mode 100644 docs/modules/chains/examples/constitutional_chain.ipynb delete mode 100644 docs/modules/chains/examples/moderation.ipynb delete mode 100644 docs/modules/chains/examples/multi_prompt_router.ipynb delete mode 100644 docs/modules/chains/examples/multi_retrieval_qa_router.ipynb delete mode 100644 docs/modules/chains/examples/sqlite.ipynb delete mode 100644 docs/modules/chains/generic/llm_chain.ipynb delete mode 100644 docs/modules/chains/generic/sequential_chains.ipynb delete mode 100644 docs/modules/chains/getting_started.ipynb delete mode 100644 docs/modules/chains/how_to_guides.rst delete mode 100644 docs/modules/chains/index_examples/analyze_document.ipynb delete mode 100644 docs/modules/chains/index_examples/chat_vector_db.ipynb delete mode 100644 docs/modules/chains/index_examples/qa_with_sources.ipynb delete mode 100644 docs/modules/chains/index_examples/question_answering.ipynb delete mode 100644 docs/modules/chains/index_examples/summarize.ipynb delete mode 100644 docs/modules/chains/index_examples/vector_db_qa.ipynb delete mode 100644 docs/modules/chains/index_examples/vector_db_qa_with_sources.ipynb delete mode 100644 docs/modules/indexes.rst delete mode 100644 docs/modules/indexes/document_loaders.rst delete mode 100644 docs/modules/indexes/document_loaders/examples/audio.ipynb delete mode 100644 docs/modules/indexes/document_loaders/examples/example_data/notebook.ipynb delete mode 160000 docs/modules/indexes/document_loaders/examples/example_data/test_repo1 delete mode 100644 docs/modules/indexes/document_loaders/examples/file_directory.ipynb delete mode 100644 docs/modules/indexes/document_loaders/examples/html.ipynb delete mode 100644 docs/modules/indexes/document_loaders/examples/json.ipynb delete mode 100644 docs/modules/indexes/document_loaders/examples/markdown.ipynb delete mode 100644 docs/modules/indexes/document_loaders/examples/pdf.ipynb delete mode 100644 docs/modules/indexes/getting_started.ipynb delete mode 100644 docs/modules/indexes/retrievers.rst delete mode 100644 docs/modules/indexes/retrievers/examples/contextual-compression.ipynb delete mode 100644 docs/modules/indexes/retrievers/examples/time_weighted_vectorstore.ipynb delete mode 100644 docs/modules/indexes/retrievers/examples/vectorstore.ipynb delete mode 100644 docs/modules/indexes/text_splitters.rst delete mode 100644 docs/modules/indexes/text_splitters/examples/character_text_splitter.ipynb delete mode 100644 docs/modules/indexes/text_splitters/examples/code_splitter.ipynb delete mode 100644 docs/modules/indexes/text_splitters/examples/huggingface_length_function.ipynb delete mode 100644 docs/modules/indexes/text_splitters/examples/nltk.ipynb delete mode 100644 docs/modules/indexes/text_splitters/examples/recursive_text_splitter.ipynb delete mode 100644 docs/modules/indexes/text_splitters/examples/sentence_transformer_token_splitter.ipynb delete mode 100644 docs/modules/indexes/text_splitters/examples/spacy.ipynb delete mode 100644 docs/modules/indexes/text_splitters/examples/tiktoken.ipynb delete mode 100644 docs/modules/indexes/text_splitters/examples/tiktoken_splitter.ipynb delete mode 100644 docs/modules/indexes/text_splitters/getting_started.ipynb delete mode 100644 docs/modules/indexes/vectorstores.rst delete mode 100644 docs/modules/indexes/vectorstores/examples/clickhouse.ipynb delete mode 100644 docs/modules/indexes/vectorstores/examples/elasticsearch.ipynb delete mode 100644 docs/modules/indexes/vectorstores/getting_started.ipynb delete mode 100644 docs/modules/memory.rst delete mode 100644 docs/modules/memory/getting_started.ipynb delete mode 100644 docs/modules/memory/how_to_guides.rst delete mode 100644 docs/modules/memory/types/buffer.ipynb delete mode 100644 docs/modules/memory/types/buffer_window.ipynb delete mode 100644 docs/modules/memory/types/entity_summary_memory.ipynb delete mode 100644 docs/modules/memory/types/summary.ipynb delete mode 100644 docs/modules/memory/types/vectorstore_retriever_memory.ipynb delete mode 100644 docs/modules/models.rst delete mode 100644 docs/modules/models/chat.rst delete mode 100644 docs/modules/models/chat/examples/streaming.ipynb delete mode 100644 docs/modules/models/chat/getting_started.ipynb delete mode 100644 docs/modules/models/chat/how_to_guides.rst delete mode 100644 docs/modules/models/chat/integrations.rst delete mode 100644 docs/modules/models/getting_started.ipynb delete mode 100644 docs/modules/models/llms.rst delete mode 100644 docs/modules/models/llms/examples/streaming_llm.ipynb delete mode 100644 docs/modules/models/llms/getting_started.ipynb delete mode 100644 docs/modules/models/llms/how_to_guides.rst delete mode 100644 docs/modules/models/llms/integrations.rst delete mode 100644 docs/modules/models/llms/integrations/aviary.ipynb delete mode 100644 docs/modules/models/llms/integrations/gpt4all.ipynb delete mode 100644 docs/modules/models/text_embedding.rst delete mode 100644 docs/modules/prompts.rst delete mode 100644 docs/modules/prompts/chat_prompt_template.ipynb delete mode 100644 docs/modules/prompts/example_selectors.rst delete mode 100644 docs/modules/prompts/example_selectors/examples/length_based.ipynb delete mode 100644 docs/modules/prompts/example_selectors/examples/similarity.ipynb delete mode 100644 docs/modules/prompts/getting_started.ipynb delete mode 100644 docs/modules/prompts/output_parsers.rst delete mode 100644 docs/modules/prompts/output_parsers/examples/comma_separated.ipynb delete mode 100644 docs/modules/prompts/output_parsers/examples/output_fixing_parser.ipynb delete mode 100644 docs/modules/prompts/output_parsers/examples/structured.ipynb delete mode 100644 docs/modules/prompts/output_parsers/getting_started.ipynb delete mode 100644 docs/modules/prompts/output_parsers/how_to_guides.rst delete mode 100644 docs/modules/prompts/prompt_templates.rst delete mode 100644 docs/modules/prompts/prompt_templates/examples/few_shot_examples.ipynb delete mode 100644 docs/modules/prompts/prompt_templates/examples/partial.ipynb delete mode 100644 docs/modules/prompts/prompt_templates/examples/prompt_composition.ipynb delete mode 100644 docs/modules/prompts/prompt_templates/getting_started.md delete mode 100644 docs/modules/prompts/prompt_templates/how_to_guides.rst delete mode 100644 docs/modules/utils/examples/gmail.ipynb delete mode 100644 docs/reference.rst delete mode 100644 docs/reference/modules/docstore.rst delete mode 100644 docs/reference/modules/document_compressors.rst delete mode 100644 docs/reference/modules/python.rst delete mode 100644 docs/reference/modules/retrievers.rst delete mode 100644 docs/reference/modules/searx_search.rst delete mode 100644 docs/reference/modules/serpapi.rst delete mode 100644 docs/reference/modules/text_splitter.rst rename docs/{reference/installation.md => snippets/get_started/installation.mdx} (62%) create mode 100644 docs/snippets/get_started/quickstart/agents_chat_models.mdx create mode 100644 docs/snippets/get_started/quickstart/agents_llms.mdx create mode 100644 docs/snippets/get_started/quickstart/chains_chat_models.mdx create mode 100644 docs/snippets/get_started/quickstart/chains_llms.mdx create mode 100644 docs/snippets/get_started/quickstart/chat_model.mdx create mode 100644 docs/snippets/get_started/quickstart/installation.mdx create mode 100644 docs/snippets/get_started/quickstart/llm.mdx create mode 100644 docs/snippets/get_started/quickstart/memory_chat_models.mdx create mode 100644 docs/snippets/get_started/quickstart/memory_llms.mdx create mode 100644 docs/snippets/get_started/quickstart/openai_setup.mdx create mode 100644 docs/snippets/get_started/quickstart/prompt_templates_chat_models.mdx create mode 100644 docs/snippets/get_started/quickstart/prompt_templates_llms.mdx create mode 100644 docs/snippets/modules/agents/agent_types/chat_conversation_agent.mdx create mode 100644 docs/snippets/modules/agents/agent_types/conversational_agent.mdx create mode 100644 docs/snippets/modules/agents/agent_types/openai_functions_agent.mdx create mode 100644 docs/snippets/modules/agents/agent_types/plan_and_execute.mdx create mode 100644 docs/snippets/modules/agents/agent_types/react.mdx create mode 100644 docs/snippets/modules/agents/agent_types/react_chat.mdx create mode 100644 docs/snippets/modules/agents/agent_types/structured_chat.mdx create mode 100644 docs/snippets/modules/agents/get_started.mdx create mode 100644 docs/snippets/modules/agents/how_to/custom_llm_agent.mdx create mode 100644 docs/snippets/modules/agents/how_to/custom_llm_chat_agent.mdx create mode 100644 docs/snippets/modules/agents/how_to/mrkl.mdx create mode 100644 docs/snippets/modules/agents/how_to/mrkl_chat.mdx create mode 100644 docs/snippets/modules/agents/tools/get_started.mdx create mode 100644 docs/snippets/modules/callbacks/get_started.mdx create mode 100644 docs/snippets/modules/chains/additional/analyze_document.mdx create mode 100644 docs/snippets/modules/chains/additional/constitutional_chain.mdx create mode 100644 docs/snippets/modules/chains/additional/moderation.mdx create mode 100644 docs/snippets/modules/chains/additional/multi_prompt_router.mdx create mode 100644 docs/snippets/modules/chains/additional/multi_retrieval_qa_router.mdx create mode 100644 docs/snippets/modules/chains/additional/qa_with_sources.mdx create mode 100644 docs/snippets/modules/chains/additional/question_answering.mdx create mode 100644 docs/snippets/modules/chains/base_class.mdx create mode 100644 docs/snippets/modules/chains/document/combine_docs.mdx create mode 100644 docs/snippets/modules/chains/foundational/llm_chain.mdx create mode 100644 docs/snippets/modules/chains/foundational/sequential_chains.mdx create mode 100644 docs/snippets/modules/chains/get_started.mdx create mode 100644 docs/snippets/modules/chains/how_to/debugging.mdx create mode 100644 docs/snippets/modules/chains/how_to/memory.mdx create mode 100644 docs/snippets/modules/chains/popular/api.mdx create mode 100644 docs/snippets/modules/chains/popular/chat_vector_db.mdx create mode 100644 docs/snippets/modules/chains/popular/sqlite.mdx create mode 100644 docs/snippets/modules/chains/popular/summarize.mdx create mode 100644 docs/snippets/modules/chains/popular/vector_db_qa.mdx create mode 100644 docs/snippets/modules/chains/popular/vector_db_qa_with_sources.mdx create mode 100644 docs/snippets/modules/data_connection/document_loaders/get_started.mdx create mode 100644 docs/snippets/modules/data_connection/document_loaders/how_to/csv.mdx create mode 100644 docs/snippets/modules/data_connection/document_loaders/how_to/file_directory.mdx create mode 100644 docs/snippets/modules/data_connection/document_loaders/how_to/html.mdx create mode 100644 docs/snippets/modules/data_connection/document_loaders/how_to/json.mdx create mode 100644 docs/snippets/modules/data_connection/document_loaders/how_to/markdown.mdx create mode 100644 docs/snippets/modules/data_connection/document_loaders/how_to/pdf.mdx create mode 100644 docs/snippets/modules/data_connection/document_transformers/get_started.mdx create mode 100644 docs/snippets/modules/data_connection/document_transformers/text_splitters/character_text_splitter.mdx create mode 100644 docs/snippets/modules/data_connection/document_transformers/text_splitters/code_splitter.mdx create mode 100644 docs/snippets/modules/data_connection/document_transformers/text_splitters/recursive_text_splitter.mdx create mode 100644 docs/snippets/modules/data_connection/retrievers/contextual_compression/get_started.mdx create mode 100644 docs/snippets/modules/data_connection/retrievers/get_started.mdx create mode 100644 docs/snippets/modules/data_connection/retrievers/how_to/time_weighted_vectorstore.mdx create mode 100644 docs/snippets/modules/data_connection/retrievers/how_to/vectorstore.mdx create mode 100644 docs/snippets/modules/data_connection/retrievers/self_query/get_started.mdx create mode 100644 docs/snippets/modules/data_connection/text_embedding/get_started.mdx create mode 100644 docs/snippets/modules/data_connection/vectorstores/get_started.mdx create mode 100644 docs/snippets/modules/memory/get_started.mdx create mode 100644 docs/snippets/modules/memory/how_to/buffer.mdx create mode 100644 docs/snippets/modules/memory/how_to/buffer_window.mdx create mode 100644 docs/snippets/modules/memory/how_to/entity_summary_memory.mdx create mode 100644 docs/snippets/modules/memory/how_to/summary.mdx create mode 100644 docs/snippets/modules/memory/how_to/vectorstore_retriever_memory.mdx create mode 100644 docs/snippets/modules/model_io/models/chat/get_started.mdx create mode 100644 docs/snippets/modules/model_io/models/chat/how_to/llm_chain.mdx create mode 100644 docs/snippets/modules/model_io/models/chat/how_to/prompts.mdx create mode 100644 docs/snippets/modules/model_io/models/chat/how_to/streaming.mdx create mode 100644 docs/snippets/modules/model_io/models/llms/get_started.mdx create mode 100644 docs/snippets/modules/model_io/models/llms/how_to/llm_caching.mdx create mode 100644 docs/snippets/modules/model_io/models/llms/how_to/streaming_llm.mdx create mode 100644 docs/snippets/modules/model_io/output_parsers/comma_separated.mdx create mode 100644 docs/snippets/modules/model_io/output_parsers/get_started.mdx create mode 100644 docs/snippets/modules/model_io/output_parsers/output_fixing_parser.mdx create mode 100644 docs/snippets/modules/model_io/output_parsers/structured.mdx create mode 100644 docs/snippets/modules/model_io/prompts/example_selectors/get_started.mdx create mode 100644 docs/snippets/modules/model_io/prompts/example_selectors/length_based.mdx create mode 100644 docs/snippets/modules/model_io/prompts/example_selectors/similarity.mdx create mode 100644 docs/snippets/modules/model_io/prompts/prompt_templates/few_shot_examples.mdx create mode 100644 docs/snippets/modules/model_io/prompts/prompt_templates/get_started.mdx create mode 100644 docs/snippets/modules/model_io/prompts/prompt_templates/partial.mdx create mode 100644 docs/snippets/modules/model_io/prompts/prompt_templates/prompt_composition.mdx delete mode 100644 docs/tracing/hosted_installation.md delete mode 100644 docs/tracing/local_installation.md delete mode 100644 docs/use_cases/agent_simulations.md delete mode 100644 docs/use_cases/chatbots.md delete mode 100644 docs/use_cases/question_answering/messages.txt create mode 100644 tests/unit_tests/examples/example_prompt.json create mode 100644 tests/unit_tests/examples/examples.json create mode 100644 tests/unit_tests/examples/examples.yaml rename {docs/modules/prompts/prompt_templates => tests/unit_tests}/examples/few_shot_prompt.json (100%) rename {docs/modules/prompts/prompt_templates => tests/unit_tests}/examples/few_shot_prompt.yaml (100%) rename {docs/modules/prompts/prompt_templates => tests/unit_tests}/examples/few_shot_prompt_example_prompt.json (100%) rename {docs/modules/prompts/prompt_templates => tests/unit_tests}/examples/few_shot_prompt_examples_in.json (100%) rename {docs/modules/prompts/prompt_templates => tests/unit_tests}/examples/few_shot_prompt_yaml_examples.yaml (100%) create mode 100644 tests/unit_tests/examples/prompt_with_output_parser.json create mode 100644 tests/unit_tests/examples/simple_prompt.json create mode 100644 tests/unit_tests/examples/simple_prompt.yaml create mode 100644 tests/unit_tests/examples/simple_prompt_with_template_file.json create mode 100644 tests/unit_tests/examples/simple_template.txt diff --git a/.github/workflows/linkcheck.yml b/.github/workflows/linkcheck.yml deleted file mode 100644 index fdc11918..00000000 --- a/.github/workflows/linkcheck.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: linkcheck - -on: - push: - branches: [master] - pull_request: - paths: - - 'docs/**' - -env: - POETRY_VERSION: "1.4.2" - -jobs: - build: - runs-on: ubuntu-latest - strategy: - matrix: - python-version: - - "3.11" - steps: - - uses: actions/checkout@v3 - - name: Install poetry - run: | - pipx install poetry==$POETRY_VERSION - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - cache: poetry - - name: Install dependencies - run: | - poetry install --with docs - - name: Build the docs - run: | - make docs_build - - name: Analyzing the docs with linkcheck - run: | - make docs_linkcheck diff --git a/.gitignore b/.gitignore index c9451f40..2d9e9ccd 100644 --- a/.gitignore +++ b/.gitignore @@ -73,6 +73,7 @@ instance/ # Sphinx documentation docs/_build/ +docs/docs/_build/ # PyBuilder target/ @@ -152,4 +153,15 @@ data_map* \[('_type', 'fake'), ('stop', None)] # Replit files -*replit* \ No newline at end of file +*replit* + +node_modules +docs/.yarn/ +docs/node_modules/ +docs/.docusaurus/ +docs/.cache-loader/ +docs/_dist +docs/api_reference/_build +docs/docs_skeleton/build +docs/docs_skeleton/node_modules +docs/docs_skeleton/yarn.lock diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..855d3675 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "docs/_docs_skeleton"] + path = docs/_docs_skeleton + url = https://github.com/langchain-ai/langchain-shared-docs + branch = main diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 7dbb2d32..44bd13c9 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -12,7 +12,7 @@ build: # Build documentation in the docs/ directory with Sphinx sphinx: - configuration: docs/conf.py + configuration: docs/api_reference/conf.py # If using Sphinx, optionally build your docs in additional formats such as PDF # formats: @@ -23,4 +23,4 @@ python: install: - requirements: docs/requirements.txt - method: pip - path: . \ No newline at end of file + path: . diff --git a/Makefile b/Makefile index 8793a47d..1786c777 100644 --- a/Makefile +++ b/Makefile @@ -10,6 +10,9 @@ coverage: clean: docs_clean +docs_compile: + poetry run nbdoc_build --srcdir $(srcdir) + docs_build: cd docs && poetry run make html diff --git a/docs/Makefile b/docs/api_reference/Makefile similarity index 100% rename from docs/Makefile rename to docs/api_reference/Makefile diff --git a/docs/_static/css/custom.css b/docs/api_reference/_static/css/custom.css similarity index 100% rename from docs/_static/css/custom.css rename to docs/api_reference/_static/css/custom.css diff --git a/docs/_static/js/mendablesearch.js b/docs/api_reference/_static/js/mendablesearch.js similarity index 100% rename from docs/_static/js/mendablesearch.js rename to docs/api_reference/_static/js/mendablesearch.js diff --git a/docs/reference/agents.rst b/docs/api_reference/agents.rst similarity index 100% rename from docs/reference/agents.rst rename to docs/api_reference/agents.rst diff --git a/docs/conf.py b/docs/api_reference/conf.py similarity index 82% rename from docs/conf.py rename to docs/api_reference/conf.py index 087b2d20..86b58632 100644 --- a/docs/conf.py +++ b/docs/api_reference/conf.py @@ -17,7 +17,7 @@ import toml -with open("../pyproject.toml") as f: +with open("../../pyproject.toml") as f: data = toml.load(f) # -- Project information ----------------------------------------------------- @@ -49,19 +49,31 @@ extensions = [ "sphinx_copybutton", "sphinx_panels", "IPython.sphinxext.ipython_console_highlighting", + "sphinx_tabs.tabs", ] -source_suffix = [".ipynb", ".html", ".md", ".rst"] +source_suffix = [".rst"] autodoc_pydantic_model_show_json = False autodoc_pydantic_field_list_validators = False autodoc_pydantic_config_members = False autodoc_pydantic_model_show_config_summary = False autodoc_pydantic_model_show_validator_members = False +autodoc_pydantic_model_show_validator_summary = False autodoc_pydantic_model_show_field_summary = False autodoc_pydantic_model_members = False autodoc_pydantic_model_undoc_members = False -# autodoc_typehints = "signature" -# autodoc_typehints = "description" +autodoc_pydantic_model_hide_paramlist = False +autodoc_pydantic_model_signature_prefix = "class" +autodoc_pydantic_field_signature_prefix = "attribute" +autodoc_pydantic_model_summary_list_order = "bysource" +autodoc_member_order = "bysource" +autodoc_default_options = { + "members": True, + "show-inheritance": True, + "undoc_members": True, + "inherited_members": "BaseModel", +} +autodoc_typehints = "description" # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] @@ -77,12 +89,13 @@ exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = "sphinx_book_theme" +html_theme = "sphinx_rtd_theme" html_theme_options = { "path_to_docs": "docs", "repository_url": "https://github.com/hwchase17/langchain", "use_repository_button": True, + # "style_nav_header_background": "white" } html_context = { @@ -90,7 +103,7 @@ html_context = { "github_user": "hwchase17", # Username "github_repo": "langchain", # Repo name "github_version": "master", # Version - "conf_py_path": "/docs/", # Path in the checkout to the docs root + "conf_py_path": "/docs/api_reference", # Path in the checkout to the docs root } # Add any paths that contain custom static files (such as style sheets) here, diff --git a/docs/reference/indexes.rst b/docs/api_reference/data_connection.rst similarity index 60% rename from docs/reference/indexes.rst rename to docs/api_reference/data_connection.rst index 9d6bcf96..5abe59fc 100644 --- a/docs/reference/indexes.rst +++ b/docs/api_reference/data_connection.rst @@ -1,16 +1,13 @@ -Indexes +Data connection ============== -Indexes refer to ways to structure documents so that LLMs can best interact with them. LangChain has a number of modules that help you load, structure, store, and retrieve documents. .. toctree:: :maxdepth: 1 :glob: - modules/docstore - modules/text_splitter modules/document_loaders + modules/document_transformers + modules/embeddings modules/vectorstores modules/retrievers - modules/document_compressors - modules/document_transformers diff --git a/docs/api_reference/index.rst b/docs/api_reference/index.rst new file mode 100644 index 00000000..365ecac6 --- /dev/null +++ b/docs/api_reference/index.rst @@ -0,0 +1,29 @@ +API Reference +========================== + +| Full documentation on all methods, classes, and APIs in the LangChain Python package. + +.. toctree:: + :maxdepth: 1 + :caption: Abstractions + + ./modules/base_classes.rst + + +.. toctree:: + :maxdepth: 1 + :caption: Core + + ./model_io.rst + ./data_connection.rst + ./modules/chains.rst + ./agents.rst + ./modules/memory.rst + ./modules/callbacks.rst + +.. toctree:: + :maxdepth: 1 + :caption: Additional + + ./modules/utilities.rst + ./modules/experimental.rst diff --git a/docs/make.bat b/docs/api_reference/make.bat similarity index 100% rename from docs/make.bat rename to docs/api_reference/make.bat diff --git a/docs/api_reference/model_io.rst b/docs/api_reference/model_io.rst new file mode 100644 index 00000000..0fcc2fd5 --- /dev/null +++ b/docs/api_reference/model_io.rst @@ -0,0 +1,12 @@ +Model I/O +============== + +LangChain provides interfaces and integrations for working with language models. + +.. toctree:: + :maxdepth: 1 + :glob: + + ./prompts.rst + ./models.rst + ./modules/output_parsers.rst diff --git a/docs/reference/models.rst b/docs/api_reference/models.rst similarity index 89% rename from docs/reference/models.rst rename to docs/api_reference/models.rst index 22e3c33f..dccec0c0 100644 --- a/docs/reference/models.rst +++ b/docs/api_reference/models.rst @@ -9,4 +9,3 @@ LangChain provides interfaces and integrations for a number of different types o modules/llms modules/chat_models - modules/embeddings diff --git a/docs/reference/modules/agent_toolkits.rst b/docs/api_reference/modules/agent_toolkits.rst similarity index 100% rename from docs/reference/modules/agent_toolkits.rst rename to docs/api_reference/modules/agent_toolkits.rst diff --git a/docs/reference/modules/agents.rst b/docs/api_reference/modules/agents.rst similarity index 100% rename from docs/reference/modules/agents.rst rename to docs/api_reference/modules/agents.rst diff --git a/docs/api_reference/modules/base_classes.rst b/docs/api_reference/modules/base_classes.rst new file mode 100644 index 00000000..68ac2436 --- /dev/null +++ b/docs/api_reference/modules/base_classes.rst @@ -0,0 +1,5 @@ +Base classes +======================== + +.. automodule:: langchain.schema + :inherited-members: diff --git a/docs/api_reference/modules/callbacks.rst b/docs/api_reference/modules/callbacks.rst new file mode 100644 index 00000000..24140bd8 --- /dev/null +++ b/docs/api_reference/modules/callbacks.rst @@ -0,0 +1,7 @@ +Callbacks +======================= + +.. automodule:: langchain.callbacks + :members: + :undoc-members: + diff --git a/docs/reference/modules/chains.rst b/docs/api_reference/modules/chains.rst similarity index 74% rename from docs/reference/modules/chains.rst rename to docs/api_reference/modules/chains.rst index 5e4fd496..3689a4d6 100644 --- a/docs/reference/modules/chains.rst +++ b/docs/api_reference/modules/chains.rst @@ -4,4 +4,5 @@ Chains .. automodule:: langchain.chains :members: :undoc-members: + :inherited-members: BaseModel diff --git a/docs/reference/modules/chat_models.rst b/docs/api_reference/modules/chat_models.rst similarity index 100% rename from docs/reference/modules/chat_models.rst rename to docs/api_reference/modules/chat_models.rst diff --git a/docs/reference/modules/document_loaders.rst b/docs/api_reference/modules/document_loaders.rst similarity index 100% rename from docs/reference/modules/document_loaders.rst rename to docs/api_reference/modules/document_loaders.rst diff --git a/docs/reference/modules/document_transformers.rst b/docs/api_reference/modules/document_transformers.rst similarity index 53% rename from docs/reference/modules/document_transformers.rst rename to docs/api_reference/modules/document_transformers.rst index 7b71f6e5..43c8a7ee 100644 --- a/docs/reference/modules/document_transformers.rst +++ b/docs/api_reference/modules/document_transformers.rst @@ -5,3 +5,9 @@ Document Transformers :members: :undoc-members: +Text Splitters +------------------------------ + +.. automodule:: langchain.text_splitter + :members: + :undoc-members: diff --git a/docs/reference/modules/embeddings.rst b/docs/api_reference/modules/embeddings.rst similarity index 100% rename from docs/reference/modules/embeddings.rst rename to docs/api_reference/modules/embeddings.rst diff --git a/docs/reference/modules/example_selector.rst b/docs/api_reference/modules/example_selector.rst similarity index 100% rename from docs/reference/modules/example_selector.rst rename to docs/api_reference/modules/example_selector.rst diff --git a/docs/reference/modules/experimental.rst b/docs/api_reference/modules/experimental.rst similarity index 91% rename from docs/reference/modules/experimental.rst rename to docs/api_reference/modules/experimental.rst index e97b4ca5..7d4b2f51 100644 --- a/docs/reference/modules/experimental.rst +++ b/docs/api_reference/modules/experimental.rst @@ -1,10 +1,10 @@ ==================== -Experimental Modules +Experimental ==================== This module contains experimental modules and reproductions of existing work using LangChain primitives. -Autonomous Agents +Autonomous agents ------------------ Here, we document the BabyAGI and AutoGPT classes from the langchain.experimental module. @@ -16,7 +16,7 @@ Here, we document the BabyAGI and AutoGPT classes from the langchain.experimenta :members: -Generative Agents +Generative agents ------------------ Here, we document the GenerativeAgent and GenerativeAgentMemory classes from the langchain.experimental module. diff --git a/docs/reference/modules/llms.rst b/docs/api_reference/modules/llms.rst similarity index 100% rename from docs/reference/modules/llms.rst rename to docs/api_reference/modules/llms.rst diff --git a/docs/reference/modules/memory.rst b/docs/api_reference/modules/memory.rst similarity index 100% rename from docs/reference/modules/memory.rst rename to docs/api_reference/modules/memory.rst diff --git a/docs/reference/modules/output_parsers.rst b/docs/api_reference/modules/output_parsers.rst similarity index 100% rename from docs/reference/modules/output_parsers.rst rename to docs/api_reference/modules/output_parsers.rst diff --git a/docs/reference/modules/prompts.rst b/docs/api_reference/modules/prompts.rst similarity index 66% rename from docs/reference/modules/prompts.rst rename to docs/api_reference/modules/prompts.rst index 65d3dcb2..5248f2e4 100644 --- a/docs/reference/modules/prompts.rst +++ b/docs/api_reference/modules/prompts.rst @@ -1,5 +1,6 @@ -PromptTemplates +Prompt Templates ======================== .. automodule:: langchain.prompts :members: + :undoc-members: diff --git a/docs/api_reference/modules/retrievers.rst b/docs/api_reference/modules/retrievers.rst new file mode 100644 index 00000000..5c6975b5 --- /dev/null +++ b/docs/api_reference/modules/retrievers.rst @@ -0,0 +1,14 @@ +Retrievers +=============================== + +.. automodule:: langchain.retrievers + :members: + :undoc-members: + +Document compressors +------------------------------- + +.. automodule:: langchain.retrievers.document_compressors + :members: + :undoc-members: + diff --git a/docs/reference/modules/tools.rst b/docs/api_reference/modules/tools.rst similarity index 100% rename from docs/reference/modules/tools.rst rename to docs/api_reference/modules/tools.rst diff --git a/docs/reference/modules/utilities.rst b/docs/api_reference/modules/utilities.rst similarity index 100% rename from docs/reference/modules/utilities.rst rename to docs/api_reference/modules/utilities.rst diff --git a/docs/reference/modules/vectorstores.rst b/docs/api_reference/modules/vectorstores.rst similarity index 100% rename from docs/reference/modules/vectorstores.rst rename to docs/api_reference/modules/vectorstores.rst diff --git a/docs/reference/prompts.rst b/docs/api_reference/prompts.rst similarity index 87% rename from docs/reference/prompts.rst rename to docs/api_reference/prompts.rst index 64fbf0d2..12a62e94 100644 --- a/docs/reference/prompts.rst +++ b/docs/api_reference/prompts.rst @@ -9,4 +9,3 @@ The reference guides here all relate to objects for working with Prompts. modules/prompts modules/example_selector - modules/output_parsers diff --git a/docs/dependents.md b/docs/dependents.md deleted file mode 100644 index e1c8e493..00000000 --- a/docs/dependents.md +++ /dev/null @@ -1,231 +0,0 @@ -# Dependents - -Dependents stats for `hwchase17/langchain` - -[![](https://img.shields.io/static/v1?label=Used%20by&message=7484&color=informational&logo=slickpic)](https://github.com/hwchase17/langchain/network/dependents) -[![](https://img.shields.io/static/v1?label=Used%20by%20(public)&message=212&color=informational&logo=slickpic)](https://github.com/hwchase17/langchain/network/dependents) -[![](https://img.shields.io/static/v1?label=Used%20by%20(private)&message=7272&color=informational&logo=slickpic)](https://github.com/hwchase17/langchain/network/dependents) -[![](https://img.shields.io/static/v1?label=Used%20by%20(stars)&message=19095&color=informational&logo=slickpic)](https://github.com/hwchase17/langchain/network/dependents) - -[update: 2023-06-05; only dependent repositories with Stars > 100] - - -| Repository | Stars | -| :-------- | -----: | -|[openai/openai-cookbook](https://github.com/openai/openai-cookbook) | 38024 | -|[LAION-AI/Open-Assistant](https://github.com/LAION-AI/Open-Assistant) | 33609 | -|[microsoft/TaskMatrix](https://github.com/microsoft/TaskMatrix) | 33136 | -|[hpcaitech/ColossalAI](https://github.com/hpcaitech/ColossalAI) | 30032 | -|[imartinez/privateGPT](https://github.com/imartinez/privateGPT) | 28094 | -|[reworkd/AgentGPT](https://github.com/reworkd/AgentGPT) | 23430 | -|[openai/chatgpt-retrieval-plugin](https://github.com/openai/chatgpt-retrieval-plugin) | 17942 | -|[jerryjliu/llama_index](https://github.com/jerryjliu/llama_index) | 16697 | -|[mindsdb/mindsdb](https://github.com/mindsdb/mindsdb) | 16410 | -|[mlflow/mlflow](https://github.com/mlflow/mlflow) | 14517 | -|[GaiZhenbiao/ChuanhuChatGPT](https://github.com/GaiZhenbiao/ChuanhuChatGPT) | 10793 | -|[databrickslabs/dolly](https://github.com/databrickslabs/dolly) | 10155 | -|[openai/evals](https://github.com/openai/evals) | 10076 | -|[AIGC-Audio/AudioGPT](https://github.com/AIGC-Audio/AudioGPT) | 8619 | -|[logspace-ai/langflow](https://github.com/logspace-ai/langflow) | 8211 | -|[imClumsyPanda/langchain-ChatGLM](https://github.com/imClumsyPanda/langchain-ChatGLM) | 8154 | -|[PromtEngineer/localGPT](https://github.com/PromtEngineer/localGPT) | 6853 | -|[StanGirard/quivr](https://github.com/StanGirard/quivr) | 6830 | -|[PipedreamHQ/pipedream](https://github.com/PipedreamHQ/pipedream) | 6520 | -|[go-skynet/LocalAI](https://github.com/go-skynet/LocalAI) | 6018 | -|[arc53/DocsGPT](https://github.com/arc53/DocsGPT) | 5643 | -|[e2b-dev/e2b](https://github.com/e2b-dev/e2b) | 5075 | -|[langgenius/dify](https://github.com/langgenius/dify) | 4281 | -|[nsarrazin/serge](https://github.com/nsarrazin/serge) | 4228 | -|[zauberzeug/nicegui](https://github.com/zauberzeug/nicegui) | 4084 | -|[madawei2699/myGPTReader](https://github.com/madawei2699/myGPTReader) | 4039 | -|[wenda-LLM/wenda](https://github.com/wenda-LLM/wenda) | 3871 | -|[GreyDGL/PentestGPT](https://github.com/GreyDGL/PentestGPT) | 3837 | -|[zilliztech/GPTCache](https://github.com/zilliztech/GPTCache) | 3625 | -|[csunny/DB-GPT](https://github.com/csunny/DB-GPT) | 3545 | -|[gkamradt/langchain-tutorials](https://github.com/gkamradt/langchain-tutorials) | 3404 | -|[mmabrouk/chatgpt-wrapper](https://github.com/mmabrouk/chatgpt-wrapper) | 3303 | -|[postgresml/postgresml](https://github.com/postgresml/postgresml) | 3052 | -|[marqo-ai/marqo](https://github.com/marqo-ai/marqo) | 3014 | -|[MineDojo/Voyager](https://github.com/MineDojo/Voyager) | 2945 | -|[PrefectHQ/marvin](https://github.com/PrefectHQ/marvin) | 2761 | -|[project-baize/baize-chatbot](https://github.com/project-baize/baize-chatbot) | 2673 | -|[hwchase17/chat-langchain](https://github.com/hwchase17/chat-langchain) | 2589 | -|[whitead/paper-qa](https://github.com/whitead/paper-qa) | 2572 | -|[Azure-Samples/azure-search-openai-demo](https://github.com/Azure-Samples/azure-search-openai-demo) | 2366 | -|[GerevAI/gerev](https://github.com/GerevAI/gerev) | 2330 | -|[OpenGVLab/InternGPT](https://github.com/OpenGVLab/InternGPT) | 2289 | -|[ParisNeo/gpt4all-ui](https://github.com/ParisNeo/gpt4all-ui) | 2159 | -|[OpenBMB/BMTools](https://github.com/OpenBMB/BMTools) | 2158 | -|[guangzhengli/ChatFiles](https://github.com/guangzhengli/ChatFiles) | 2005 | -|[h2oai/h2ogpt](https://github.com/h2oai/h2ogpt) | 1939 | -|[Farama-Foundation/PettingZoo](https://github.com/Farama-Foundation/PettingZoo) | 1845 | -|[OpenGVLab/Ask-Anything](https://github.com/OpenGVLab/Ask-Anything) | 1749 | -|[IntelligenzaArtificiale/Free-Auto-GPT](https://github.com/IntelligenzaArtificiale/Free-Auto-GPT) | 1740 | -|[Unstructured-IO/unstructured](https://github.com/Unstructured-IO/unstructured) | 1628 | -|[hwchase17/notion-qa](https://github.com/hwchase17/notion-qa) | 1607 | -|[NVIDIA/NeMo-Guardrails](https://github.com/NVIDIA/NeMo-Guardrails) | 1544 | -|[SamurAIGPT/privateGPT](https://github.com/SamurAIGPT/privateGPT) | 1543 | -|[paulpierre/RasaGPT](https://github.com/paulpierre/RasaGPT) | 1526 | -|[yanqiangmiffy/Chinese-LangChain](https://github.com/yanqiangmiffy/Chinese-LangChain) | 1485 | -|[Kav-K/GPTDiscord](https://github.com/Kav-K/GPTDiscord) | 1402 | -|[vocodedev/vocode-python](https://github.com/vocodedev/vocode-python) | 1387 | -|[Chainlit/chainlit](https://github.com/Chainlit/chainlit) | 1336 | -|[lunasec-io/lunasec](https://github.com/lunasec-io/lunasec) | 1323 | -|[psychic-api/psychic](https://github.com/psychic-api/psychic) | 1248 | -|[agiresearch/OpenAGI](https://github.com/agiresearch/OpenAGI) | 1208 | -|[jina-ai/thinkgpt](https://github.com/jina-ai/thinkgpt) | 1193 | -|[thomas-yanxin/LangChain-ChatGLM-Webui](https://github.com/thomas-yanxin/LangChain-ChatGLM-Webui) | 1182 | -|[ttengwang/Caption-Anything](https://github.com/ttengwang/Caption-Anything) | 1137 | -|[jina-ai/dev-gpt](https://github.com/jina-ai/dev-gpt) | 1135 | -|[greshake/llm-security](https://github.com/greshake/llm-security) | 1086 | -|[keephq/keep](https://github.com/keephq/keep) | 1063 | -|[juncongmoo/chatllama](https://github.com/juncongmoo/chatllama) | 1037 | -|[richardyc/Chrome-GPT](https://github.com/richardyc/Chrome-GPT) | 1035 | -|[visual-openllm/visual-openllm](https://github.com/visual-openllm/visual-openllm) | 997 | -|[mmz-001/knowledge_gpt](https://github.com/mmz-001/knowledge_gpt) | 995 | -|[jina-ai/langchain-serve](https://github.com/jina-ai/langchain-serve) | 949 | -|[irgolic/AutoPR](https://github.com/irgolic/AutoPR) | 936 | -|[microsoft/X-Decoder](https://github.com/microsoft/X-Decoder) | 908 | -|[poe-platform/api-bot-tutorial](https://github.com/poe-platform/api-bot-tutorial) | 902 | -|[peterw/Chat-with-Github-Repo](https://github.com/peterw/Chat-with-Github-Repo) | 875 | -|[cirediatpl/FigmaChain](https://github.com/cirediatpl/FigmaChain) | 822 | -|[homanp/superagent](https://github.com/homanp/superagent) | 806 | -|[seanpixel/Teenage-AGI](https://github.com/seanpixel/Teenage-AGI) | 800 | -|[chatarena/chatarena](https://github.com/chatarena/chatarena) | 796 | -|[hashintel/hash](https://github.com/hashintel/hash) | 795 | -|[SamurAIGPT/Camel-AutoGPT](https://github.com/SamurAIGPT/Camel-AutoGPT) | 786 | -|[rlancemartin/auto-evaluator](https://github.com/rlancemartin/auto-evaluator) | 770 | -|[corca-ai/EVAL](https://github.com/corca-ai/EVAL) | 769 | -|[101dotxyz/GPTeam](https://github.com/101dotxyz/GPTeam) | 755 | -|[noahshinn024/reflexion](https://github.com/noahshinn024/reflexion) | 706 | -|[eyurtsev/kor](https://github.com/eyurtsev/kor) | 695 | -|[cheshire-cat-ai/core](https://github.com/cheshire-cat-ai/core) | 681 | -|[e-johnstonn/BriefGPT](https://github.com/e-johnstonn/BriefGPT) | 656 | -|[run-llama/llama-lab](https://github.com/run-llama/llama-lab) | 635 | -|[griptape-ai/griptape](https://github.com/griptape-ai/griptape) | 583 | -|[namuan/dr-doc-search](https://github.com/namuan/dr-doc-search) | 555 | -|[getmetal/motorhead](https://github.com/getmetal/motorhead) | 550 | -|[kreneskyp/ix](https://github.com/kreneskyp/ix) | 543 | -|[hwchase17/chat-your-data](https://github.com/hwchase17/chat-your-data) | 510 | -|[Anil-matcha/ChatPDF](https://github.com/Anil-matcha/ChatPDF) | 501 | -|[whyiyhw/chatgpt-wechat](https://github.com/whyiyhw/chatgpt-wechat) | 497 | -|[SamurAIGPT/ChatGPT-Developer-Plugins](https://github.com/SamurAIGPT/ChatGPT-Developer-Plugins) | 496 | -|[microsoft/PodcastCopilot](https://github.com/microsoft/PodcastCopilot) | 492 | -|[debanjum/khoj](https://github.com/debanjum/khoj) | 485 | -|[akshata29/chatpdf](https://github.com/akshata29/chatpdf) | 485 | -|[langchain-ai/langchain-aiplugin](https://github.com/langchain-ai/langchain-aiplugin) | 462 | -|[jina-ai/agentchain](https://github.com/jina-ai/agentchain) | 460 | -|[alexanderatallah/window.ai](https://github.com/alexanderatallah/window.ai) | 457 | -|[yeagerai/yeagerai-agent](https://github.com/yeagerai/yeagerai-agent) | 451 | -|[mckaywrigley/repo-chat](https://github.com/mckaywrigley/repo-chat) | 446 | -|[michaelthwan/searchGPT](https://github.com/michaelthwan/searchGPT) | 446 | -|[mpaepper/content-chatbot](https://github.com/mpaepper/content-chatbot) | 441 | -|[freddyaboulton/gradio-tools](https://github.com/freddyaboulton/gradio-tools) | 439 | -|[ruoccofabrizio/azure-open-ai-embeddings-qna](https://github.com/ruoccofabrizio/azure-open-ai-embeddings-qna) | 429 | -|[StevenGrove/GPT4Tools](https://github.com/StevenGrove/GPT4Tools) | 422 | -|[jonra1993/fastapi-alembic-sqlmodel-async](https://github.com/jonra1993/fastapi-alembic-sqlmodel-async) | 407 | -|[msoedov/langcorn](https://github.com/msoedov/langcorn) | 405 | -|[amosjyng/langchain-visualizer](https://github.com/amosjyng/langchain-visualizer) | 395 | -|[ajndkr/lanarky](https://github.com/ajndkr/lanarky) | 384 | -|[mtenenholtz/chat-twitter](https://github.com/mtenenholtz/chat-twitter) | 376 | -|[steamship-core/steamship-langchain](https://github.com/steamship-core/steamship-langchain) | 371 | -|[langchain-ai/auto-evaluator](https://github.com/langchain-ai/auto-evaluator) | 365 | -|[xuwenhao/geektime-ai-course](https://github.com/xuwenhao/geektime-ai-course) | 358 | -|[continuum-llms/chatgpt-memory](https://github.com/continuum-llms/chatgpt-memory) | 357 | -|[opentensor/bittensor](https://github.com/opentensor/bittensor) | 347 | -|[showlab/VLog](https://github.com/showlab/VLog) | 345 | -|[daodao97/chatdoc](https://github.com/daodao97/chatdoc) | 345 | -|[logan-markewich/llama_index_starter_pack](https://github.com/logan-markewich/llama_index_starter_pack) | 332 | -|[poe-platform/poe-protocol](https://github.com/poe-platform/poe-protocol) | 320 | -|[explosion/spacy-llm](https://github.com/explosion/spacy-llm) | 312 | -|[andylokandy/gpt-4-search](https://github.com/andylokandy/gpt-4-search) | 311 | -|[alejandro-ao/langchain-ask-pdf](https://github.com/alejandro-ao/langchain-ask-pdf) | 310 | -|[jupyterlab/jupyter-ai](https://github.com/jupyterlab/jupyter-ai) | 294 | -|[BlackHC/llm-strategy](https://github.com/BlackHC/llm-strategy) | 283 | -|[itamargol/openai](https://github.com/itamargol/openai) | 281 | -|[momegas/megabots](https://github.com/momegas/megabots) | 279 | -|[personoids/personoids-lite](https://github.com/personoids/personoids-lite) | 277 | -|[yvann-hub/Robby-chatbot](https://github.com/yvann-hub/Robby-chatbot) | 267 | -|[Anil-matcha/Website-to-Chatbot](https://github.com/Anil-matcha/Website-to-Chatbot) | 266 | -|[Cheems-Seminar/grounded-segment-any-parts](https://github.com/Cheems-Seminar/grounded-segment-any-parts) | 260 | -|[sullivan-sean/chat-langchainjs](https://github.com/sullivan-sean/chat-langchainjs) | 248 | -|[bborn/howdoi.ai](https://github.com/bborn/howdoi.ai) | 245 | -|[daveebbelaar/langchain-experiments](https://github.com/daveebbelaar/langchain-experiments) | 240 | -|[MagnivOrg/prompt-layer-library](https://github.com/MagnivOrg/prompt-layer-library) | 237 | -|[ur-whitelab/exmol](https://github.com/ur-whitelab/exmol) | 234 | -|[conceptofmind/toolformer](https://github.com/conceptofmind/toolformer) | 234 | -|[recalign/RecAlign](https://github.com/recalign/RecAlign) | 226 | -|[OpenBMB/AgentVerse](https://github.com/OpenBMB/AgentVerse) | 220 | -|[alvarosevilla95/autolang](https://github.com/alvarosevilla95/autolang) | 219 | -|[JohnSnowLabs/nlptest](https://github.com/JohnSnowLabs/nlptest) | 216 | -|[kaleido-lab/dolphin](https://github.com/kaleido-lab/dolphin) | 215 | -|[truera/trulens](https://github.com/truera/trulens) | 208 | -|[NimbleBoxAI/ChainFury](https://github.com/NimbleBoxAI/ChainFury) | 208 | -|[airobotlab/KoChatGPT](https://github.com/airobotlab/KoChatGPT) | 207 | -|[monarch-initiative/ontogpt](https://github.com/monarch-initiative/ontogpt) | 200 | -|[paolorechia/learn-langchain](https://github.com/paolorechia/learn-langchain) | 195 | -|[shaman-ai/agent-actors](https://github.com/shaman-ai/agent-actors) | 185 | -|[Haste171/langchain-chatbot](https://github.com/Haste171/langchain-chatbot) | 184 | -|[plchld/InsightFlow](https://github.com/plchld/InsightFlow) | 182 | -|[su77ungr/CASALIOY](https://github.com/su77ungr/CASALIOY) | 180 | -|[jbrukh/gpt-jargon](https://github.com/jbrukh/gpt-jargon) | 177 | -|[benthecoder/ClassGPT](https://github.com/benthecoder/ClassGPT) | 174 | -|[billxbf/ReWOO](https://github.com/billxbf/ReWOO) | 170 | -|[filip-michalsky/SalesGPT](https://github.com/filip-michalsky/SalesGPT) | 168 | -|[hwchase17/langchain-streamlit-template](https://github.com/hwchase17/langchain-streamlit-template) | 168 | -|[radi-cho/datasetGPT](https://github.com/radi-cho/datasetGPT) | 164 | -|[hardbyte/qabot](https://github.com/hardbyte/qabot) | 164 | -|[gia-guar/JARVIS-ChatGPT](https://github.com/gia-guar/JARVIS-ChatGPT) | 158 | -|[plastic-labs/tutor-gpt](https://github.com/plastic-labs/tutor-gpt) | 154 | -|[yasyf/compress-gpt](https://github.com/yasyf/compress-gpt) | 154 | -|[fengyuli-dev/multimedia-gpt](https://github.com/fengyuli-dev/multimedia-gpt) | 154 | -|[ethanyanjiali/minChatGPT](https://github.com/ethanyanjiali/minChatGPT) | 153 | -|[hwchase17/chroma-langchain](https://github.com/hwchase17/chroma-langchain) | 153 | -|[edreisMD/plugnplai](https://github.com/edreisMD/plugnplai) | 148 | -|[chakkaradeep/pyCodeAGI](https://github.com/chakkaradeep/pyCodeAGI) | 145 | -|[ccurme/yolopandas](https://github.com/ccurme/yolopandas) | 145 | -|[shamspias/customizable-gpt-chatbot](https://github.com/shamspias/customizable-gpt-chatbot) | 144 | -|[realminchoi/babyagi-ui](https://github.com/realminchoi/babyagi-ui) | 143 | -|[PradipNichite/Youtube-Tutorials](https://github.com/PradipNichite/Youtube-Tutorials) | 140 | -|[gustavz/DataChad](https://github.com/gustavz/DataChad) | 140 | -|[Klingefjord/chatgpt-telegram](https://github.com/Klingefjord/chatgpt-telegram) | 140 | -|[Jaseci-Labs/jaseci](https://github.com/Jaseci-Labs/jaseci) | 139 | -|[handrew/browserpilot](https://github.com/handrew/browserpilot) | 137 | -|[jmpaz/promptlib](https://github.com/jmpaz/promptlib) | 137 | -|[SamPink/dev-gpt](https://github.com/SamPink/dev-gpt) | 135 | -|[menloparklab/langchain-cohere-qdrant-doc-retrieval](https://github.com/menloparklab/langchain-cohere-qdrant-doc-retrieval) | 135 | -|[hirokidaichi/wanna](https://github.com/hirokidaichi/wanna) | 135 | -|[steamship-core/vercel-examples](https://github.com/steamship-core/vercel-examples) | 134 | -|[pablomarin/GPT-Azure-Search-Engine](https://github.com/pablomarin/GPT-Azure-Search-Engine) | 133 | -|[ibiscp/LLM-IMDB](https://github.com/ibiscp/LLM-IMDB) | 133 | -|[shauryr/S2QA](https://github.com/shauryr/S2QA) | 133 | -|[jerlendds/osintbuddy](https://github.com/jerlendds/osintbuddy) | 132 | -|[yuanjie-ai/ChatLLM](https://github.com/yuanjie-ai/ChatLLM) | 132 | -|[yasyf/summ](https://github.com/yasyf/summ) | 132 | -|[WongSaang/chatgpt-ui-server](https://github.com/WongSaang/chatgpt-ui-server) | 130 | -|[peterw/StoryStorm](https://github.com/peterw/StoryStorm) | 127 | -|[Teahouse-Studios/akari-bot](https://github.com/Teahouse-Studios/akari-bot) | 126 | -|[vaibkumr/prompt-optimizer](https://github.com/vaibkumr/prompt-optimizer) | 125 | -|[preset-io/promptimize](https://github.com/preset-io/promptimize) | 124 | -|[homanp/vercel-langchain](https://github.com/homanp/vercel-langchain) | 124 | -|[petehunt/langchain-github-bot](https://github.com/petehunt/langchain-github-bot) | 123 | -|[eunomia-bpf/GPTtrace](https://github.com/eunomia-bpf/GPTtrace) | 118 | -|[nicknochnack/LangchainDocuments](https://github.com/nicknochnack/LangchainDocuments) | 116 | -|[jiran214/GPT-vup](https://github.com/jiran214/GPT-vup) | 112 | -|[rsaryev/talk-codebase](https://github.com/rsaryev/talk-codebase) | 112 | -|[zenml-io/zenml-projects](https://github.com/zenml-io/zenml-projects) | 112 | -|[microsoft/azure-openai-in-a-day-workshop](https://github.com/microsoft/azure-openai-in-a-day-workshop) | 112 | -|[davila7/file-gpt](https://github.com/davila7/file-gpt) | 112 | -|[prof-frink-lab/slangchain](https://github.com/prof-frink-lab/slangchain) | 111 | -|[aurelio-labs/arxiv-bot](https://github.com/aurelio-labs/arxiv-bot) | 110 | -|[fixie-ai/fixie-examples](https://github.com/fixie-ai/fixie-examples) | 108 | -|[miaoshouai/miaoshouai-assistant](https://github.com/miaoshouai/miaoshouai-assistant) | 105 | -|[flurb18/AgentOoba](https://github.com/flurb18/AgentOoba) | 103 | -|[solana-labs/chatgpt-plugin](https://github.com/solana-labs/chatgpt-plugin) | 102 | -|[Significant-Gravitas/Auto-GPT-Benchmarks](https://github.com/Significant-Gravitas/Auto-GPT-Benchmarks) | 102 | -|[kaarthik108/snowChat](https://github.com/kaarthik108/snowChat) | 100 | - - -_Generated by [github-dependents-info](https://github.com/nvuillam/github-dependents-info)_ - -`github-dependents-info --repo hwchase17/langchain --markdownfile dependents.md --minstars 100 --sort stars` diff --git a/docs/docs_skeleton/.gitignore b/docs/docs_skeleton/.gitignore new file mode 100644 index 00000000..25a6e30a --- /dev/null +++ b/docs/docs_skeleton/.gitignore @@ -0,0 +1,7 @@ +.yarn/ + +node_modules/ + +.docusaurus +.cache-loader +docs/api \ No newline at end of file diff --git a/docs/docs_skeleton/README.md b/docs/docs_skeleton/README.md new file mode 100644 index 00000000..6ffad61f --- /dev/null +++ b/docs/docs_skeleton/README.md @@ -0,0 +1,49 @@ +# Website + +This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. + +### Installation + +``` +$ yarn +``` + +### Local Development + +``` +$ yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +### Build + +``` +$ yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + +### Deployment + +Using SSH: + +``` +$ USE_SSH=true yarn deploy +``` + +Not using SSH: + +``` +$ GIT_USER= yarn deploy +``` + +If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. + +### Continuous Integration + +Some common defaults for linting/formatting have been set for you. If you integrate your project with an open source Continuous Integration system (e.g. Travis CI, CircleCI), you may check for issues using the following command. + +``` +$ yarn ci +``` diff --git a/docs/docs_skeleton/babel.config.js b/docs/docs_skeleton/babel.config.js new file mode 100644 index 00000000..4ca11b80 --- /dev/null +++ b/docs/docs_skeleton/babel.config.js @@ -0,0 +1,12 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @format + */ + +module.exports = { + presets: [require.resolve("@docusaurus/core/lib/babel/preset")], +}; diff --git a/docs/docs_skeleton/code-block-loader.js b/docs/docs_skeleton/code-block-loader.js new file mode 100644 index 00000000..044e4552 --- /dev/null +++ b/docs/docs_skeleton/code-block-loader.js @@ -0,0 +1,76 @@ +/* eslint-disable prefer-template */ +/* eslint-disable no-param-reassign */ +// eslint-disable-next-line import/no-extraneous-dependencies +const babel = require("@babel/core"); +const path = require("path"); +const fs = require("fs"); + +/** + * + * @param {string|Buffer} content Content of the resource file + * @param {object} [map] SourceMap data consumable by https://github.com/mozilla/source-map + * @param {any} [meta] Meta data, could be anything + */ +async function webpackLoader(content, map, meta) { + const cb = this.async(); + + if (!this.resourcePath.endsWith(".ts")) { + cb(null, JSON.stringify({ content, imports: [] }), map, meta); + return; + } + + try { + const result = await babel.parseAsync(content, { + sourceType: "module", + filename: this.resourcePath, + }); + + const imports = []; + + result.program.body.forEach((node) => { + if (node.type === "ImportDeclaration") { + const source = node.source.value; + + if (!source.startsWith("langchain")) { + return; + } + + node.specifiers.forEach((specifier) => { + if (specifier.type === "ImportSpecifier") { + const local = specifier.local.name; + const imported = specifier.imported.name; + imports.push({ local, imported, source }); + } else { + throw new Error("Unsupported import type"); + } + }); + } + }); + + imports.forEach((imp) => { + const { imported, source } = imp; + const moduleName = source.split("/").slice(1).join("_"); + const docsPath = path.resolve(__dirname, "docs", "api", moduleName); + const available = fs.readdirSync(docsPath, { withFileTypes: true }); + const found = available.find( + (dirent) => + dirent.isDirectory() && + fs.existsSync(path.resolve(docsPath, dirent.name, imported + ".md")) + ); + if (found) { + imp.docs = + "/" + path.join("docs", "api", moduleName, found.name, imported); + } else { + throw new Error( + `Could not find docs for ${source}.${imported} in docs/api/` + ); + } + }); + + cb(null, JSON.stringify({ content, imports }), map, meta); + } catch (err) { + cb(err); + } +} + +module.exports = webpackLoader; diff --git a/docs/_static/ApifyActors.png b/docs/docs_skeleton/docs/_static/ApifyActors.png similarity index 100% rename from docs/_static/ApifyActors.png rename to docs/docs_skeleton/docs/_static/ApifyActors.png diff --git a/docs/_static/DataberryDashboard.png b/docs/docs_skeleton/docs/_static/DataberryDashboard.png similarity index 100% rename from docs/_static/DataberryDashboard.png rename to docs/docs_skeleton/docs/_static/DataberryDashboard.png diff --git a/docs/_static/HeliconeDashboard.png b/docs/docs_skeleton/docs/_static/HeliconeDashboard.png similarity index 100% rename from docs/_static/HeliconeDashboard.png rename to docs/docs_skeleton/docs/_static/HeliconeDashboard.png diff --git a/docs/_static/HeliconeKeys.png b/docs/docs_skeleton/docs/_static/HeliconeKeys.png similarity index 100% rename from docs/_static/HeliconeKeys.png rename to docs/docs_skeleton/docs/_static/HeliconeKeys.png diff --git a/docs/_static/MetalDash.png b/docs/docs_skeleton/docs/_static/MetalDash.png similarity index 100% rename from docs/_static/MetalDash.png rename to docs/docs_skeleton/docs/_static/MetalDash.png diff --git a/docs/docs_skeleton/docs/_static/android-chrome-192x192.png b/docs/docs_skeleton/docs/_static/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..2647abd88d5f549d5b8fab70882bb4dbd56d9a38 GIT binary patch literal 18119 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/docs_skeleton/docs/_static/android-chrome-512x512.png b/docs/docs_skeleton/docs/_static/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..c1bebd25ce5d6dacded160bf73a0a2a9792940a7 GIT binary patch literal 86761 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 P8`u0 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 AH2?qr literal 0 HcmV?d00001 diff --git a/docs/docs_skeleton/docs/_static/apple-touch-icon.png b/docs/docs_skeleton/docs/_static/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0627c7bdf9b638d514eafb7777b7f288a58b4bc4 GIT binary patch literal 16117 zcmc(mWm6nX5TF-#cTGrwJBz!!ySqEVT|#gR5ZnpQ;_eQ?-4@>jcUc@R?_Jg1AGoXg z(9@&URWn^ZQu9QsD$8J?lA;0t01P=bv z0sz7$a*|@2J}_swM>W(dzInYu7r^`l_Y@`dUkIbgR*cHz0w~y$(J6rF&_6ooqv^>G z$k-q8a*kvW$=nbnemKdIOF}mS_l2;0^IXpOH&f+ea4RUG6~{FiH+5BccgvkU&GuTw zD;KQA=f{k7G&%+CG`+=dBzFX3jH+-(-|Dn=3K0E3&NinSiaOQ7e!altCtAMLyfDzdhZ#ehgqS`9k5)p4xR!hA2i^Mfd6-lzIGUgNqg=ktn!=u zHu5I>x=eGYw) zHd9(Wu`;3CSI&5UEE>1_H{SED?2%X61s^}o#GC$4*1$2Ach-wslLeEvaafGOxg$>V z;3|TPp0!w)?v+@RcgE~1Ovs8?XMN{p{M1RetqZqBdxlIS+1!?G@s3h~@rVa!d`ej{ zuW-%~qzr(uaS_a!@S#T}y4NQdKVL9o#I#McedTuAcs_s0hX5SuEPmtMORx>I)qCRr zzS=a|j1h40urT4;vXimt#LL~(<^&jDes6Eansh9_WhwMv*NHw-JNa!(Ie252LzxJ< zDzy8^40L@RFIIEzr$n7I!_V@YTF8amxRZLcXjp&64D#BNCkcvq3Vd-yYMk+l{h3@JH%-;IU|amEE@uvl#A z4&nPmj^60z6|GA1b7zIbguyxB-8t_VY?KA3z1V$vrAU)0rcg)?u$~DDI`EF^V3h-i zJiN7OAFl{fb#aLLQ`8ntZ-c>c-aMUi171x{1aC;oqR~X6K3f^XSnsDyZwI|X@mL}x za4thUby&TxD^N(TH;;uyE5-)M)?4+fW?Nw@*~#Z8s#ONp&Ul2Q84HIpg3cSSfD?hu zj1jMz_xCsa5=sK6;HitV62VvP&ds-PI=ktghptXSUS^zKMnT=mP4#dXpU7b*m7b{O zTmtIi-hqPg!B-dO!@W-`v~HXMpD|}J_kv$$p4|dGD0#5f#R@*}-)L>Dtpe5Js7WMY zsn8!wDusYV$_2A%{iNn5h@Pl;n`b0%f1>R za~Xj`xjk8F+=7H-mUF>w@1}|B{camwUXtkT1TK43+mF&blsTNLOP~yIfA&mewRJDU zZjRXP2T*t0;})hVEGNn22!n;LxbKtwMr0m;q*PBj?xr;82yC?2@xjfto1ph;<;m^E z66ZdMv(U9P;%Nf*u3^Q$LiGNrJNyw!)@tG4fX5i>EhH4b>q^WM(p4YGoVJ2x{=RAF zNYS*%zr1^2k9MC(Iiw;?3cDkHn{{>wx3~SerTlW%>&*pqrfQ5hjdPr3PBwjQBK$^z zen4&`##~A*fo3c}g6)E_2s-}+S>V}r80HBkJ8|QUg&^(IxqIK`>%5?LaTW*=uaNP$ z3{4sESh%|b&G0(n&!$#4w?A97iJ@%MwLsJA-K!=7_U3cWwjZ~|MsnUE!Tbq{!dZ33 zpL=e|I$4JmxSg`5fIYBqTFC!g7^%N{!UX zQ2ZdfXgTV1Q_fA&FEMdT)+xJJ4{?Uw6rMHi^%eTrzHo%i;Jh1oFn5CMcT&6@$7*9U zw@r$3C8~ebhau^0Q%1J^yw&`0?s7J|d&Sh@^VdO=8;WwLM@rWw&8BHAfTYkT6^FO? zSJO(mM9X>gzD>zn(KcM4f?Z}UeNoCu9l6o7guvxRpNBGtGZxSOv>x2yKU~|V0OR*f zap&iWjzuhPKQ~)zXxk>D>@IA%bM4HF_U*a_htpt&y1A{HESd^>Hoh4Tgs?CP?Bci+ zcr~sKz%eXD(EOPx;(L_7_^OM{XV&!ypE0@+9+dEDMwSz@{AHw(-b}P?l-(fN$TAoM z)pPyf$YI-dG<*AaB!g}1P*E#*_~MXSq?-t{De?Af^K6w$eQrR4Q+1Sv&Aa~NI`)Y{ zQ|9*2W%73HF4gQARcZ3ZsFx`c)4DT^eM(Yx+Q4P@r`SxoG}sJ+9fanyecjmaLe1y< zjhRC>lsHWm;;6i%%Q?!45J&!~s{r{Qepo+jL^O9DaGlmR97ZULC`YlZ-7b()nEZPG zOm@wSynlyN`u$}N{Syviu-W3)WY)MMy-FBUju-8qvS8pw^oc(l16g5H_<42f+&~ah z(?@CAaxm3POp}q{pPzB4Hy*t4kAUE~C0So5F@Es$s#lB+;uTzw9UZYrvntL7{1uU(8qQUm*h)kI~ZnS?*r_L2> zmuo>bV18dMXwD9!4hG0!k0I#nVf{OIB2gvss_fpz&Bhxi8^38%*EtZ)VX66Y+Rr|; zW#-zMcfxX@ryv=jl#CD+*yKQ!hF`!G;v3S}o_92WvSqew8xG0KnoHac!xsklc?t1uHP#;Ys;z^4CQA?E)ghOf`;Z zJ`0kYpio@#5$|;Uzo5{*Qfbgx+~1K`cI9Y7^D&=vWy^lVsfe=d;b@Njc4d>%8^M@& z));0pqNNW#_rEFT;%i8V08CAzq)<>=m7X6@@j&Q9wnbj(oLQAaG6%3wb;H*>=219% zi$F*`9A@3|;W<>;2iZ(tLhSI6$x?`?FDEC|$fpt@@EJ(5Ko?t_zq&9Oiw}6y7V=g! z1JM|SPnx^KVW4hAoJ3{8$2z?G9u-8KY<2J2Wda|1QJwSx{DAW5ot%~s8If^8a`eVN z$Wy#S7mMe&aXFk18i^LQ0#O*%1LUsR_=02nEH7A^xt zIMD~GtI*%4bjrWc6L@JtlLS3V>69mjthc`mt~x6FRK-f}qqK7FOs&!yJ`gSs&JW&< zT4FmCLXW#RHqmN@*U#?ucE(|L`6Rpw8c<0l>+l9|#GsWITT6lR=-$zC_aQAZBOtt2 z-e}M=-|{c~9Q?pkQAdP6{X!GCtxEz%jszfwr(~L%brBvq5}LTjjeFP4$LWtGJSkfw z(>I(OCItOsZX6MQNt|psRX6h*8nZwW=^XVb4`CLYtMQFFg`iKYhK2Fgy6NIpjhNpz zlS6KzDhpHQqU>|X>czS-2mOKegBX!;)hIYo(*F*Eozcy_(I?pl=)dthn1!h98eQp_ zE2kvMbPcR;k>}zo!uT6@Bqv~&Z6XfCGcmLdHekSH{EH$GCS3b@{7R--$j@49Gq0)D z_T?z=;7&Xnx?9?=mgd_X&wF{pP$EnZJ7ZJS08yc`KPq(qZ;oqEhL6;Kg{_nrGAKb< z#8V%wiCx+$AVZ(T*;v< zxG4f7A46OZK>$;{D7*oXeP>r_2alT9wus|iASum&F>TFOw9kciCp)k4&@OE_nL~NE zA8WTiy{HOZ5O<}RFbgo;!ZgjXyS8~}WI$1RZqj^UtAFBCW*S2tIux?I$5}I(H`IJ4 z<@mWG5a2}Cx&M_Wb#J_d;k}yc*Zf?@Dv)6+0QG}T%!Dj#HWQJjS5{!fKcAMEsUMbX z{2Pm4iC-qfJs7Tf|1{k?)`!dZ{`P?d68^N{tl`ai|1V}>87+lwt**;jk;7i>rVPe; zHT{w)$0cDwPdcblr@O$PZCt0V&SRpv`sGVXTmHg#k^{GzvSuH`tA@+N_|ILEE#H`Ys%Z`vd&9ZZS2_8pBH@BFuKxY;m%IZ9z}5EdaDDwe?_$%6s0D)*BCs67-@WuvHs@n`)e$9CF)abnqi z3)T<1qqb5|0MCeh!RVUGEQF+xA3bzUAhqN49@e}R2yExK9$;*n>^;m}R?(^BVJU#3 z0B1^ZxNV2+IAVAq2w=Tjxj*(jUFYB7azzM=xStlw2U)RTo*oXvy!5HWq9Y_FHGTE?Y&&;II^W ze6;jmYawwAjv|rcCEzJ!tZQ-RY->bL@1YN&&3MKY%ChdtnbtaMe6Bf23ep9| zk%h1!Nx@FeBZUa)z3mZ7Tky*$C%#;cpR=#uX7?=PrFsZA#M>_*>u0L9Vj&Go{3ym&x!w?_ONGm<_160n&y>%QgE`*%uNqu+&qKe5iFR04 z1l!;kPrf*=1E06o>tJiZS5!JMPyH7oKKWn@EI%nEah^jf+2#HT=F!*h z=~&7t`Ri)Djv65pGwN+iYDShld(lq$oV4|YH_=>AAyaFL$aVxnsHI%e+#1+eIMmko zkgGX6G*k6J)`ZcZ;EpVyDX=7-OOd=26;e%!{}*t#UHgjKl_%;?5>BeMu>&Napu8BS z(fs*S{x9|JdD8(v$p^%|$QUb@n+S?midlJr~ZNkUS~m;fcqw?y`iJ+xTi~IiG2@v+G&B7%SlG+j4Q{a-_tH`t^^|(I~3e4 zIEk*c#pM4xHymnLepRzy(lZrc;1sPI5Z^2d%`y(gn!W2UuN-EktEyWs`D;30C+5uc zbeqlR$jy)9Z|4~2)F2!qfo2Hk6vOFB>NMdfY8t_QUhx6GG8fS7V%UBe-Mi+8O-_Gu zc)xjqJu4B#5A?T6k?A~>u-PD1G5h`k+lb1%2-vI_juLHj_D_Gbq*Jq3puGVRUU9Y9 z+;5cQH7&reraGd!-vY9c(Qp%@3sxc@wyChu+FTo}?Q*iN2rpQjomn+N&jI`voc5~7 z61s`-N7kPAcSbO|5C?FkTJ~ka_Cpe)eUu-u_RSJqU?s^wK=j8@!gESvAa+?h%Sz5hEjzzXa{j5b<#$;Zkh+BfH#bqe|95nH>R2?~`8AF8ZsFQN zzrW*wcfGaE;?Fm)lEWEsX$0S1hO((TaU&5W{&+guPWgB+a8LNaS)um1qnZ&8r36-4 zMe`eY+F?cyWQeMJhqro#D!WWVEg#_hO7~EG*YQMa9Z?TpJBV@}%ZO|ad1a*UMt|i> z8Fur>znNTIBZN}gcjE+KyL`%1M_Afc_cl30?Si5*GjR(y`hHVUbA++1Y(zEE%tFk# zoas~kHE1j2dj=*#w#^G^b92|?EXOVLlr5z*lPrw&bww2Ty;Tg;QaM@N@49i|Rh<=G ztWQ-Icwb`qv2&Be z_C#UHSX)z?g_Qv8#fC0+eV_eA+E8fJ@S2Cq}mMY za$TL21VP#@#-C72A&ZrH$}8x^ITKVaP62m?%H-wR>FW)Q=Y6bEXft3ve~Xr~TQ1)v ze9+j>c9%OReGVgu^BB-JkqOF8!$R{!Hg%xCoqMv=TAvpo0DInjQ9k-Wj_MVfcBfY> z&dYZvIX=MQVa;{cpry0S{LCSQa(B*U%s03#(yfBP%+b-TuA_5uKvsh_8$QTgliqUi z2e^%jl*RycWPG*8ysMkw`^oKdwA^aSL6|F=QX%=%$|K>PyF=|0x#4U$Nz!)%i&IXs zq=B2pqk~-~+x%~j=BYmv@y{cNc6*v=zycVjGTErwXFdVxI-|!CRKdc@Iu5l6v#@jQ z^J1F`gw;=bAteFBG7ij_bGLe{Vscx_F^b|wq(2JRX&Iah+tn>Y30KjylzkA|LJW^x z%NLcikquYuBAqAtb-<~+3~GM_@rLbR!?Uz}aUX_O_kK2fGqBV}VcrVPw;q2W^xb?7 z&@mMX+2;XA+#(t`Nr1f>T*N`*7N0eb)XU&J>L|opGxSx9B1dc*6R5)`2v$k*jh6t9 z)jQ!G@LF0dqV_WIDY>*6VdGtnV{tUTz<^JuEZ&DtGk#PosApeSSP$xkZFr!yT#!qg z{ESYSoX#M){ew?_%pp*s^ti$wnA_w?_EgPuh958l#5aFGVxuhH(9a=k?I}OR>ovZ8 z*O4xyckg%a(>GTBnPDsiJqyjz)8sWXrmtnA?K|q$b7m4qKWe2Iou%DDIJK$Mi2Ux`;qgLb0hM$k&L$N|KQOTqQ=DmAIgo6S>VL?!#wb3yy` ztJDEH70vc>f9t5S*h?Y^6%>R|>}mJIi5y*2oQGRUn?MaVb6KeI&UavB`j^grH>%A8?yCa{gp!%n^Vs3WO>$eQU<+{AWXR=ppvpy)i( zc2IQp5Z}8rWnWenV19l@yNab#**Vh<>rg!VHbCgf$L-=-B!SbmgQ8TipjHZWFV7zV z8loC&y)jE~KUzt)^IEWD5#Fwv8W$^}L)-NaLAC-Sk4UU)h!0 zvZtB|ssh`Lpf51%8$T`^^P(l98tt1;GO!OpcLxnDD0jzGm>7E8d;KztEVp11&-+Xr z)4-7Z1HFxItK0;Ne2AP)WxcA+pFvwhw$CHO3^Y_2rry?c&1EDrP;_;hge;^AnXNUa6$6;kK>3niF0;xKV_owB@-TX7yf#=30zV zsao56#whd-HY*!kq*WsP^Hm^~ys|Hdnej7H7*h3PvmT46pPjhhLyV)J*rE(Fpie{pYGwN`1 z4f^4wF1i&GNLSXBu5(C!U9jl{p-|zWoS<-@5dHPa+A4!ZDgNQ|o7ct4#7F*t<{48y zFlbq_!dGmP$nKcsf362BhefN~Ph1Ikj2pY^@3Q3>n=l+6w1?J190kWpavhX^wrB4i-kH@{ zU#0ta5HR)|JI}H(N+X04%U6ON-vB@8i!4Atpq`D$Kj}D@lx#v<&HyT^;`iH_m%0Ay zp&Ns%2tr4nju4x1^=QyqAyqaE zqw%%#89sj?qIX-YJb0j|WHRmTG1_9#2Wpjz+cB~3!@%1Z7z<`ah@)%ExS^iDekJ_y zIJ}*ur`a6O?V%n0kpM4>A&HTV5gSjK;GwJ!1n3212l8H+XE~A2yb2gQUDRhxpOJXU z`64|W6+^5A+f)KdI9JE@(;E#$3Uu!4rAq50HqEtkO)zRv8h>C)tsFVpp&WuOzu*PP zn(W0hHxXY8xqv~0$G93Sszf3a8X@5W)+mPOu_6RR6>X>661(bO9|Tun^BftNWAXG>w{sEOp#=#C^oGl1F9%f47&ND~B#Qx5rzdoU zqhCtcI)Nj_^!hAwiLkXMhed10b#9spuN`CF2zKI4VZ*+aLPfb4lJ)|)+@bn+QSBJ? z)KSwDXCxg?B_n(u2K#@Zr;Vg4ZTZ47@ zm!U=CbC6xP4uEznq4w!lyqlPEmHOGY!h%x2+6d%}VUK|mVa1O%6K&nkyJC0(*{L5X zua-9bd4s`qJ>i>vuxIi3$nuLFT>)8dYtM{;knDw;q!^=56xycx*I6-!WH@rYll&Sx zY842&rr*n8ImE2yjnFb~Ftot5u8Oon==nN}_C}Ed{yz#0LFuAs$M%mm5-?E1@b$ob zVZ-!6mz^?jb-+DLVb|v%tO-_w))rC!1<>dm1Wikuv3WxN$p^!LVT!NHRmMuBp^YS? z5kM2~P@y?LE3>6ZV z6&?2KT1j+cls9S?v=8?ZfBWQ=p1H$)wGiM>FWd$GbEF=`6U(CXpKT;9!)&CJO9qV} zvwO^-kbGE-*|nJR`&_sF>DFGVNpy>d(~oNBTF0T(U(ugcsXczG>&PE@oa_7Osa$^7 zI)q=G(X-??TfZ|*L-}TPE}@G7<`e#_3$1Kb?PNXZj7Rx~?Q_o9>Mnd^XdQNvoJ=X) zOxx%4yL!|QuDj#Wsffbq*z3z!h*>;074_SXf1Aqo-+QFy&jYAyekXAOmyR=MfC*f; zaU~L)j9xSf1<*@#D&i4$1r=Vn0MR40&6gmqCcJuN zPd2(aE$oE0fC-{Gerslf75ej#m@wh>#|Aj}M_9K^UNqubnNBF+odw}0UAAO}%+|T* z_{&G;0CE389z6!ITETP}AxuOR!9*MyU*D>Psx>Z^e2G^NdF3Js-Lp#VWY_I)M%iYB z%Iljz{qF=GnSfR82gVY@aZRrlJjH_pjuy3w&2*J$py0Jc5y^o>!W2IW*Ue@b*f&Sh zYx?d8RNS(7?Z-J36Riz=g!Co>J*Nh%nk6Qle2HX_&p+Bq1|Vr)VRD{f1wM zw#bGDS0Jq8xfW@*b34dbpt%h1!-Y?~>tS@DgFridPtHKBAub+lNhzb?t+k^ec%0ADhMd9`wx;fPR!bc*4g{c-I<;L}Y~f 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 literal 0 HcmV?d00001 diff --git a/docs/docs_skeleton/docs/_static/favicon-32x32.png b/docs/docs_skeleton/docs/_static/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..26f4dfa495f81076871fad7399bdc3f51fa28a87 GIT binary patch literal 1188 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 { + // Load the external dependencies + function loadScript(src, onLoadCallback) { + const script = document.createElement('script'); + script.src = src; + script.onload = onLoadCallback; + document.head.appendChild(script); + } + + function createRootElement() { + const rootElement = document.createElement('div'); + rootElement.id = 'my-component-root'; + document.body.appendChild(rootElement); + return rootElement; + } + + + + function initializeMendable() { + const rootElement = createRootElement(); + const { MendableFloatingButton } = Mendable; + + + const iconSpan1 = React.createElement('span', { + }, '🦜'); + + const iconSpan2 = React.createElement('span', { + }, '🔗'); + + const icon = React.createElement('p', { + style: { color: '#ffffff', fontSize: '22px',width: '48px', height: '48px', margin: '0px', padding: '0px', display: 'flex', alignItems: 'center', justifyContent: 'center', textAlign: 'center' }, + }, [iconSpan1, iconSpan2]); + + const mendableFloatingButton = React.createElement( + MendableFloatingButton, + { + style: { darkMode: false, accentColor: '#010810' }, + floatingButtonStyle: { color: '#ffffff', backgroundColor: '#010810' }, + anon_key: '82842b36-3ea6-49b2-9fb8-52cfc4bde6bf', // Mendable Search Public ANON key, ok to be public + messageSettings: { + openSourcesInNewTab: false, + prettySources: true // Prettify the sources displayed now + }, + icon: icon, + } + ); + + ReactDOM.render(mendableFloatingButton, rootElement); + } + + loadScript('https://unpkg.com/react@17/umd/react.production.min.js', () => { + loadScript('https://unpkg.com/react-dom@17/umd/react-dom.production.min.js', () => { + loadScript('https://unpkg.com/@mendable/search@0.0.102/dist/umd/mendable.min.js', initializeMendable); + }); + }); +}); diff --git a/docs/docs_skeleton/docs/_static/lc_modules.jpg b/docs/docs_skeleton/docs/_static/lc_modules.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e94758bef9906f2ee6f9edd30fc285fcb7f2a01b GIT binary patch literal 105649 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

C!dIZWOS!yTr%Z6RpC*e!5Ic<{4&^G|(2WM)b z)^N!h*qkHXPW7GSJ^T)Ws~qcxBJT$drRvH-ui!D^{M-V~pUO(|VP;VQ*Kd+a(QR== zZKPcc7x@PIY~|ELS+X)^hp1qgvVZ!m!B*x&pEVd3m33T{BImLzOC`zbaa6>Hw%Wr! z*PPzMj?B&e+%)3P$jXmw)AeW?e^26-`KbOiG!1b=V_246#X+z!!i7HL$$EOS4fI2B zlSQ2_3lZEh4XGf1Bw)fkHW^Is$BF1yhHgN3avgixce2ivMSj~Ra}>|*rEC*V9h&0B zo^F(d6irTGQTbwmK8}d>H20N3z}#FHE8j*U`e78|(WQyxyNI~ktSND^ubKxx=%LUD zl)lkcRFuoNM3*WEiI_l6cH%2M`tI8Z=+S1_6h!@@)EL7=iEotO15750Wr8R=FW=T5 zo^r>&`5ZwxIs47^E8=0V7G~PJkbbrjy?|HAtZO7_2m3=X{6~TE&p!K`iOG+f@Sh$3 z@8zYzMMxTA-tv{?zXSCldQ6br z@8Bn;E9!~KuzUwu+b4I3b&o}LOX$M<@Ab#UM~fzqtnDd98m5qO=F zHg2}IelppsZzw7%yk8dBn>a4bKg}d2l71TEeMfCE$^lalE6s%M5^H%#e$7d*?M=_6 zyW}o=>8*^iMwN5<*^RPW>60%0wLML_^cnUL6_y&^9Y7EcP{(PnvN(~2>gB5&h8Lvm z3*XrfRQr7JD)M!2!8CmSe0Rmm)&9V#(JQ%nl~E!4+IhR&EJHmIPm5vwKTiPu=-Dgd z?V34D=JD64itWcVa}DhhXRn4&o2g%EYgv%dY4>mhUw9r2<{NVb>PP}0vZdZJ&2qHV zCK;aE92AwF>Q&x{Q1tH9|xrFgDb~X?vRH}!|O6sZ_TSE_qx3|sAJMQ34EszE@3KIK#FeE-S z7nC&)8#=)91u#u&bj>=5Iq0BB5=}fHbJjQ-RzQB_$M8^lA

%g4E!&c-u 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