diff --git a/examples/web-data-contradiction-testing-using-llms.mdx b/examples/contradiction_testing/web-data-contradiction-testing-using-llms.mdx similarity index 100% rename from examples/web-data-contradiction-testing-using-llms.mdx rename to examples/contradiction_testing/web-data-contradiction-testing-using-llms.mdx diff --git a/examples/example_web_apps/local-website-chatbot/.env.local.example b/examples/example_web_apps/local-website-chatbot/.env.local.example new file mode 100644 index 00000000..3aad1da9 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/.env.local.example @@ -0,0 +1,11 @@ +# Required environment variables +FIRECRAWL_API_KEY= + +# Optional environment variables +# LangSmith tracing from the web worker. +# WARNING: FOR DEVELOPMENT ONLY. DO NOT DEPLOY A LIVE VERSION WITH THESE +# VARIABLES SET AS YOU WILL LEAK YOUR LANGCHAIN API KEY. +NEXT_PUBLIC_LANGCHAIN_TRACING_V2= +NEXT_PUBLIC_LANGCHAIN_API_KEY= +NEXT_PUBLIC_LANGCHAIN_PROJECT= + diff --git a/examples/roastmywebsite-example-app/.eslintrc.json b/examples/example_web_apps/local-website-chatbot/.eslintrc.json similarity index 100% rename from examples/roastmywebsite-example-app/.eslintrc.json rename to examples/example_web_apps/local-website-chatbot/.eslintrc.json diff --git a/examples/example_web_apps/local-website-chatbot/.gitignore b/examples/example_web_apps/local-website-chatbot/.gitignore new file mode 100644 index 00000000..fcea1de2 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/.gitignore @@ -0,0 +1,38 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local +.env + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +.yarn diff --git a/examples/example_web_apps/local-website-chatbot/.prettierrc.json b/examples/example_web_apps/local-website-chatbot/.prettierrc.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/.prettierrc.json @@ -0,0 +1 @@ +{} diff --git a/examples/example_web_apps/local-website-chatbot/LICENSE b/examples/example_web_apps/local-website-chatbot/LICENSE new file mode 100644 index 00000000..8bc18831 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Jacob Lee + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/examples/example_web_apps/local-website-chatbot/LICENSE.md b/examples/example_web_apps/local-website-chatbot/LICENSE.md new file mode 100644 index 00000000..2942df20 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/LICENSE.md @@ -0,0 +1,7 @@ +Copyright + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/examples/example_web_apps/local-website-chatbot/README.md b/examples/example_web_apps/local-website-chatbot/README.md new file mode 100644 index 00000000..7d0bca05 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/README.md @@ -0,0 +1,72 @@ +# Local Chat With Websites + +Welcome to the Local Web Chatbot! This is a direct fork of [Jacob Lee' fully local PDF chatbot](https://github.com/jacoblee93/fully-local-pdf-chatbot) replacing the chat with PDF functionality with chat with website support powered by [Firecrawl](https://www.firecrawl.dev/). It is a simple chatbot that allows you to ask questions about a website by embedding it and running queries against the vector store using a local LLM and embeddings. + +## 🦙 Ollama + +You can run more powerful, general models outside the browser using [Ollama's desktop app](https://ollama.ai). Users will need to download and set up then run the following commands to allow the site access to a locally running Mistral instance: + +### Mac/Linux + +```bash +$ OLLAMA_ORIGINS=https://webml-demo.vercel.app OLLAMA_HOST=127.0.0.1:11435 ollama serve +``` + +Then, in another terminal window: + +```bash +$ OLLAMA_HOST=127.0.0.1:11435 ollama pull mistral +``` + +### Windows + +```cmd +$ set OLLAMA_ORIGINS=https://webml-demo.vercel.app +set OLLAMA_HOST=127.0.0.1:11435 +ollama serve +``` + +Then, in another terminal window: + +```cmd +$ set OLLAMA_HOST=127.0.0.1:11435 +ollama pull mistral +``` + +## 🔥 Firecrawl + +Additionally, you will need a Firecrawl API key for website embedding. Signing up for [Firecrawl](https://www.firecrawl.dev/) is easy and you get 500 credits free. Enter your API key into the box below the URL in the embedding form. + +## ⚡ Stack + +It uses the following: + +- [Voy](https://github.com/tantaraio/voy) as the vector store, fully WASM in the browser. +- [Ollama](https://ollama.ai/). +- [LangChain.js](https://js.langchain.com) to call the models, perform retrieval, and generally orchestrate all the pieces. +- [Transformers.js](https://huggingface.co/docs/transformers.js/index) to run open source [Nomic](https://www.nomic.ai/) embeddings in the browser. + - For higher-quality embeddings, switch to `"nomic-ai/nomic-embed-text-v1"` in `app/worker.ts`. +- [Firecrawl](https://www.firecrawl.dev/) to scrape the webpages and deliver them in markdown format. + +## 🔱 Forking + +To run/deploy this yourself, simply fork this repo and install the required dependencies with `yarn`. + +There are no required environment variables, but you can optionally set up [LangSmith tracing](https://smith.langchain.com/) while developing locally to help debug the prompts and the chain. Copy the `.env.example` file into a `.env.local` file: + +```ini +# No environment variables required! + +# LangSmith tracing from the web worker. +# WARNING: FOR DEVELOPMENT ONLY. DO NOT DEPLOY A LIVE VERSION WITH THESE +# VARIABLES SET AS YOU WILL LEAK YOUR LANGCHAIN API KEY. +NEXT_PUBLIC_LANGCHAIN_TRACING_V2="true" +NEXT_PUBLIC_LANGCHAIN_API_KEY= +NEXT_PUBLIC_LANGCHAIN_PROJECT= +``` + +Just make sure you don't set this in production, as your LangChain API key will be public on the frontend! + +## 🙏 Thank you! + +Huge thanks to Jacob Lee and the other contributors of the repo for making this happen! Be sure to give him a follow on Twitter [@Hacubu](https://x.com/hacubu)! diff --git a/examples/example_web_apps/local-website-chatbot/app/globals.css b/examples/example_web_apps/local-website-chatbot/app/globals.css new file mode 100644 index 00000000..eb6619f1 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/app/globals.css @@ -0,0 +1,74 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +body { + color: #f8f8f8; + background: #131318; +} + +body input, +body textarea { + color: black; +} + +a { + color: #5ba4f8; +} + +a:hover { + border-bottom: 1px solid; +} + +p { + margin: 8px 0; +} + +code, +pre { + color: #ffa500; +} + +pre { + background-color: black; + color: #39ff14; +} + +li { + padding: 4px; +} + +@layer base { + label { + @apply h-6 relative inline-block; + } + + [type="checkbox"] { + @apply w-11 h-0 cursor-pointer inline-block; + @apply focus:outline-0 dark:focus:outline-0; + @apply border-0 dark:border-0; + @apply focus:ring-offset-transparent dark:focus:ring-offset-transparent; + @apply focus:ring-transparent dark:focus:ring-transparent; + @apply focus-within:ring-0 dark:focus-within:ring-0; + @apply focus:shadow-none dark:focus:shadow-none; + + @apply after:absolute before:absolute; + @apply after:top-0 before:top-0; + @apply after:block before:inline-block; + @apply before:rounded-full after:rounded-full; + + @apply after:content-[''] after:w-5 after:h-5 after:mt-0.5 after:ml-0.5; + @apply after:shadow-md after:duration-100; + + @apply before:content-[''] before:w-10 before:h-full; + @apply before:shadow-[inset_0_0_#000]; + + @apply after:bg-white dark:after:bg-gray-50; + @apply before:bg-gray-300 dark:before:bg-gray-600; + @apply before:checked:bg-lime-500 dark:before:checked:bg-lime-500; + @apply checked:after:duration-300 checked:after:translate-x-4; + + @apply disabled:after:bg-opacity-75 disabled:cursor-not-allowed; + @apply disabled:checked:before:bg-opacity-40; + } +} diff --git a/examples/example_web_apps/local-website-chatbot/app/layout.tsx b/examples/example_web_apps/local-website-chatbot/app/layout.tsx new file mode 100644 index 00000000..3476d56d --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/app/layout.tsx @@ -0,0 +1,49 @@ +import "./globals.css"; +import { Public_Sans } from "next/font/google"; + +import { Navbar } from "@/components/Navbar"; + +const publicSans = Public_Sans({ subsets: ["latin"] }); + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + + Fully In-Browser Chat Over Documents + + + + + + + + + + + + + +
{children}
+ + + ); +} diff --git a/examples/example_web_apps/local-website-chatbot/app/page.tsx b/examples/example_web_apps/local-website-chatbot/app/page.tsx new file mode 100644 index 00000000..ba8529c8 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/app/page.tsx @@ -0,0 +1,7 @@ +import { ChatWindow } from "@/components/ChatWindow"; + +export default function Home() { + return ( + + ); +} diff --git a/examples/example_web_apps/local-website-chatbot/app/worker.ts b/examples/example_web_apps/local-website-chatbot/app/worker.ts new file mode 100644 index 00000000..50e5f3f0 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/app/worker.ts @@ -0,0 +1,232 @@ +import { ChatWindowMessage } from "@/schema/ChatWindowMessage"; + +import { Voy as VoyClient } from "voy-search"; + +import { createRetrievalChain } from "langchain/chains/retrieval"; +import { createStuffDocumentsChain } from "langchain/chains/combine_documents"; +import { createHistoryAwareRetriever } from "langchain/chains/history_aware_retriever"; + +import { FireCrawlLoader } from "@langchain/community/document_loaders/web/firecrawl"; + +import { HuggingFaceTransformersEmbeddings } from "@langchain/community/embeddings/hf_transformers"; +import { VoyVectorStore } from "@langchain/community/vectorstores/voy"; +import { + ChatPromptTemplate, + MessagesPlaceholder, + PromptTemplate, +} from "@langchain/core/prompts"; +import { RunnableSequence, RunnablePick } from "@langchain/core/runnables"; +import { + AIMessage, + type BaseMessage, + HumanMessage, +} from "@langchain/core/messages"; +import { RecursiveCharacterTextSplitter } from "langchain/text_splitter"; +import type { BaseChatModel } from "@langchain/core/language_models/chat_models"; +import type { LanguageModelLike } from "@langchain/core/language_models/base"; + +import { LangChainTracer } from "@langchain/core/tracers/tracer_langchain"; +import { Client } from "langsmith"; + +import { ChatOllama } from "@langchain/community/chat_models/ollama"; + +const embeddings = new HuggingFaceTransformersEmbeddings({ + modelName: "Xenova/all-MiniLM-L6-v2", +}); + +const voyClient = new VoyClient(); +const vectorstore = new VoyVectorStore(voyClient, embeddings); + +const OLLAMA_RESPONSE_SYSTEM_TEMPLATE = `You are an experienced researcher, expert at interpreting and answering questions based on provided sources. Using the provided context, answer the user's question to the best of your ability using the resources provided. +Generate a concise answer for a given question based solely on the provided search results. You must only use information from the provided search results. Use an unbiased and journalistic tone. Combine search results together into a coherent answer. Do not repeat text. +If there is nothing in the context relevant to the question at hand, just say "Hmm, I'm not sure." Don't try to make up an answer. +Anything between the following \`context\` html blocks is retrieved from a knowledge bank, not part of the conversation with the user. + +{context} + + +REMEMBER: If there is no relevant information within the context, just say "Hmm, I'm not sure." Don't try to make up an answer. Anything between the preceding 'context' html blocks is retrieved from a knowledge bank, not part of the conversation with the user.`; + +const _formatChatHistoryAsMessages = async ( + chatHistory: ChatWindowMessage[], +) => { + return chatHistory.map((chatMessage) => { + if (chatMessage.role === "human") { + return new HumanMessage(chatMessage.content); + } else { + return new AIMessage(chatMessage.content); + } + }); +}; + +const embedWebsite = async (url: string, firecrawlApiKey: string) => { + + const webLoader = new FireCrawlLoader({ + url: url, + apiKey: firecrawlApiKey, + mode: "scrape", + }); + + const docs = await webLoader.load(); + + const splitter = new RecursiveCharacterTextSplitter({ + chunkSize: 500, + chunkOverlap: 50, + }); + + const splitDocs = await splitter.splitDocuments(docs); + + self.postMessage({ + type: "log", + data: splitDocs, + }); + + await vectorstore.addDocuments(splitDocs); +}; + +const queryVectorStore = async ( + messages: ChatWindowMessage[], + { + chatModel, + modelProvider, + devModeTracer, + }: { + chatModel: LanguageModelLike; + modelProvider: "ollama"; + devModeTracer?: LangChainTracer; + }, +) => { + const text = messages[messages.length - 1].content; + const chatHistory = await _formatChatHistoryAsMessages(messages.slice(0, -1)); + + const responseChainPrompt = ChatPromptTemplate.fromMessages<{ + context: string; + chat_history: BaseMessage[]; + question: string; + }>([ + ["system", OLLAMA_RESPONSE_SYSTEM_TEMPLATE], + new MessagesPlaceholder("chat_history"), + ["user", `{input}`], + ]); + + const documentChain = await createStuffDocumentsChain({ + llm: chatModel, + prompt: responseChainPrompt, + documentPrompt: PromptTemplate.fromTemplate( + `\n{page_content}\n`, + ), + }); + + const historyAwarePrompt = ChatPromptTemplate.fromMessages([ + new MessagesPlaceholder("chat_history"), + ["user", "{input}"], + [ + "user", + "Given the above conversation, generate a natural language search query to look up in order to get information relevant to the conversation. Do not respond with anything except the query.", + ], + ]); + + const historyAwareRetrieverChain = await createHistoryAwareRetriever({ + llm: chatModel, + retriever: vectorstore.asRetriever(), + rephrasePrompt: historyAwarePrompt, + }); + + const retrievalChain = await createRetrievalChain({ + combineDocsChain: documentChain, + retriever: historyAwareRetrieverChain, + }); + + const fullChain = RunnableSequence.from([ + retrievalChain, + new RunnablePick("answer"), + ]); + + const stream = await fullChain.stream( + { + input: text, + chat_history: chatHistory, + }, + { + callbacks: devModeTracer !== undefined ? [devModeTracer] : [], + }, + ); + + for await (const chunk of stream) { + if (chunk) { + self.postMessage({ + type: "chunk", + data: chunk, + }); + } + } + + self.postMessage({ + type: "complete", + data: "OK", + }); +}; + +// Listen for messages from the main thread +self.addEventListener("message", async (event: { data: any }) => { + self.postMessage({ + type: "log", + data: `Received data!`, + }); + + let devModeTracer; + if ( + event.data.DEV_LANGCHAIN_TRACING !== undefined && + typeof event.data.DEV_LANGCHAIN_TRACING === "object" + ) { + devModeTracer = new LangChainTracer({ + projectName: event.data.DEV_LANGCHAIN_TRACING.LANGCHAIN_PROJECT, + client: new Client({ + apiKey: event.data.DEV_LANGCHAIN_TRACING.LANGCHAIN_API_KEY, + }), + }); + } + + if (event.data.url) { + try { + self.postMessage({ + type: "log", + data: `Embedding website now: ${event.data.url} with Firecrawl API Key: ${event.data.firecrawlApiKey}`, + }); + await embedWebsite(event.data.url, event.data.firecrawlApiKey); + self.postMessage({ + type: "log", + data: `Embedded website: ${event.data.url} complete`, + }); + } catch (e: any) { + self.postMessage({ + type: "error", + error: e.message, + }); + throw e; + } + } else { + const modelProvider = event.data.modelProvider; + const modelConfig = event.data.modelConfig; + let chatModel: BaseChatModel | LanguageModelLike; + chatModel = new ChatOllama(modelConfig); + try { + await queryVectorStore(event.data.messages, { + devModeTracer, + modelProvider, + chatModel, + }); + } catch (e: any) { + self.postMessage({ + type: "error", + error: `${e.message}. Make sure you are running Ollama.`, + }); + throw e; + } + } + + self.postMessage({ + type: "complete", + data: "OK", + }); +}); diff --git a/examples/example_web_apps/local-website-chatbot/components/ChatMessageBubble.tsx b/examples/example_web_apps/local-website-chatbot/components/ChatMessageBubble.tsx new file mode 100644 index 00000000..38935bd5 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/components/ChatMessageBubble.tsx @@ -0,0 +1,125 @@ +"use client"; + +import { toast } from 'react-toastify'; +import 'react-toastify/dist/ReactToastify.css'; + +import { ChatWindowMessage } from '@/schema/ChatWindowMessage'; + +import { useState, type FormEvent } from "react"; +import { Feedback } from 'langsmith'; + +export function ChatMessageBubble(props: { + message: ChatWindowMessage; + aiEmoji?: string; + onRemovePressed?: () => void; +}) { + const { role, content, runId } = props.message; + + const colorClassName = + role === "human" ? "bg-sky-600" : "bg-slate-50 text-black"; + const alignmentClassName = + role === "human" ? "ml-auto" : "mr-auto"; + const prefix = role === "human" ? "🧑" : props.aiEmoji; + + const [isLoading, setIsLoading] = useState(false); + const [feedback, setFeedback] = useState(null); + const [comment, setComment] = useState(""); + const [showCommentForm, setShowCommentForm] = useState(false); + + async function handleScoreButtonPress(e: React.MouseEvent, score: number) { + e.preventDefault(); + setComment(""); + await sendFeedback(score); + } + + async function handleCommentSubmission(e: FormEvent) { + e.preventDefault(); + const score = typeof feedback?.score === "number" ? feedback.score : 0; + await sendFeedback(score); + } + + async function sendFeedback(score: number) { + if (isLoading) { + return; + } + + setIsLoading(true); + + const response = await fetch("api/feedback", { + method: feedback?.id ? "PUT" : "POST", + body: JSON.stringify({ + id: feedback?.id, + run_id: runId, + score, + comment, + }) + }); + + const json = await response.json(); + + if (json.error) { + toast(json.error, { + theme: "dark" + }); + return; + } else if (feedback?.id && comment) { + toast("Response recorded! Go to https://smith.langchain.com and check it out in under your run's \"Feedback\" pane.", { + theme: "dark", + autoClose: 3000, + }); + setComment(""); + setShowCommentForm(false); + } else { + setShowCommentForm(true); + } + + if (json.feedback) { + setFeedback(json.feedback); + } + + setIsLoading(false); + } + return ( +
+
+
+ {prefix} +
+
+ {/* TODO: Remove. Hacky fix, stop sequences don't seem to work with WebLLM yet. */} + {content.trim().split("\nInstruct:")[0].split("\nInstruction:")[0]} +
+
+ ✖️ +
+
+
+ + +
+
+
+ setComment(e.target.value)} + /> +
+ + Loading... +
+
+
+
+ ); +} \ No newline at end of file diff --git a/examples/example_web_apps/local-website-chatbot/components/ChatWindow.tsx b/examples/example_web_apps/local-website-chatbot/components/ChatWindow.tsx new file mode 100644 index 00000000..730db030 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/components/ChatWindow.tsx @@ -0,0 +1,422 @@ +"use client"; + +import { Id, ToastContainer, toast } from "react-toastify"; +import "react-toastify/dist/ReactToastify.css"; + +import { useRef, useState, useEffect } from "react"; +import type { FormEvent } from "react"; + +import { ChatMessageBubble } from "@/components/ChatMessageBubble"; +import { ChatWindowMessage } from "@/schema/ChatWindowMessage"; + +export function ChatWindow(props: { placeholder?: string }) { + const { placeholder } = props; + const [messages, setMessages] = useState([]); + const [input, setInput] = useState(""); + const [isLoading, setIsLoading] = useState(true); + + const [selectedURL, setSelectedURL] = useState(null); + const [firecrawlApiKey, setFirecrawlApiKey] = useState(""); + const [readyToChat, setReadyToChat] = useState(false); + const initProgressToastId = useRef(null); + const titleText = "Local Chat With Websites"; + const emoji = "🔥"; + + const worker = useRef(null); + + async function queryStore(messages: ChatWindowMessage[]) { + if (!worker.current) { + throw new Error("Worker is not ready."); + } + return new ReadableStream({ + start(controller) { + if (!worker.current) { + controller.close(); + return; + } + const ollamaConfig = { + baseUrl: "http://localhost:11435", + temperature: 0.3, + model: "mistral", + }; + const payload: Record = { + messages, + modelProvider: "ollama", + modelConfig: ollamaConfig, + }; + if ( + process.env.NEXT_PUBLIC_LANGCHAIN_TRACING_V2 === "true" && + process.env.NEXT_PUBLIC_LANGCHAIN_API_KEY !== undefined + ) { + console.warn( + "[WARNING]: You have set your LangChain API key publicly. This should only be done in local devlopment - remember to remove it before deploying!", + ); + payload.DEV_LANGCHAIN_TRACING = { + LANGCHAIN_TRACING_V2: "true", + LANGCHAIN_API_KEY: process.env.NEXT_PUBLIC_LANGCHAIN_API_KEY, + LANGCHAIN_PROJECT: process.env.NEXT_PUBLIC_LANGCHAIN_PROJECT, + }; + } + worker.current?.postMessage(payload); + const onMessageReceived = async (e: any) => { + switch (e.data.type) { + case "log": + console.log(e.data); + break; + case "init_progress": + if (initProgressToastId.current === null) { + initProgressToastId.current = toast( + "Loading model weights... This may take a while", + { + progress: e.data.data.progress || 0.01, + theme: "dark", + }, + ); + } else { + if (e.data.data.progress === 1) { + await new Promise((resolve) => setTimeout(resolve, 2000)); + } + toast.update(initProgressToastId.current, { + progress: e.data.data.progress || 0.01, + }); + } + break; + case "chunk": + controller.enqueue(e.data.data); + break; + case "error": + worker.current?.removeEventListener("message", onMessageReceived); + console.log(e.data.error); + const error = new Error(e.data.error); + controller.error(error); + break; + case "complete": + worker.current?.removeEventListener("message", onMessageReceived); + controller.close(); + break; + } + }; + worker.current?.addEventListener("message", onMessageReceived); + }, + }); + } + + async function sendMessage(e: FormEvent) { + e.preventDefault(); + + if (isLoading || !input) { + return; + } + + const initialInput = input; + const initialMessages = [...messages]; + const newMessages = [ + ...initialMessages, + { role: "human" as const, content: input }, + ]; + + setMessages(newMessages); + setIsLoading(true); + setInput(""); + + try { + const stream = await queryStore(newMessages); + const reader = stream.getReader(); + + let chunk = await reader.read(); + + const aiResponseMessage: ChatWindowMessage = { + content: "", + role: "ai" as const, + }; + + setMessages([...newMessages, aiResponseMessage]); + + while (!chunk.done) { + aiResponseMessage.content = aiResponseMessage.content + chunk.value; + setMessages([...newMessages, aiResponseMessage]); + chunk = await reader.read(); + } + + setIsLoading(false); + } catch (e: any) { + setMessages(initialMessages); + setIsLoading(false); + setInput(initialInput); + toast(`There was an issue with querying your website: ${e.message}`, { + theme: "dark", + }); + } + } + + // We use the `useEffect` hook to set up the worker as soon as the `App` component is mounted. + useEffect(() => { + if (!worker.current) { + // Create the worker if it does not yet exist. + worker.current = new Worker( + new URL("../app/worker.ts", import.meta.url), + { + type: "module", + }, + ); + setIsLoading(false); + } + }, []); + + async function embedWebsite(e: FormEvent) { + console.log(e); + console.log(selectedURL); + console.log(firecrawlApiKey); + e.preventDefault(); + // const reader = new FileReader(); + if (selectedURL === null) { + toast(`You must enter a URL to embed.`, { + theme: "dark", + }); + return; + } + setIsLoading(true); + worker.current?.postMessage({ + url: selectedURL, + firecrawlApiKey: firecrawlApiKey, + }); + const onMessageReceived = (e: any) => { + switch (e.data.type) { + case "log": + console.log(e.data); + break; + case "error": + worker.current?.removeEventListener("message", onMessageReceived); + setIsLoading(false); + console.log(e.data.error); + toast(`There was an issue embedding your website: ${e.data.error}`, { + theme: "dark", + }); + break; + case "complete": + worker.current?.removeEventListener("message", onMessageReceived); + setIsLoading(false); + setReadyToChat(true); + toast( + `Embedding successful! Now try asking a question about your website.`, + { + theme: "dark", + }, + ); + break; + } + }; + worker.current?.addEventListener("message", onMessageReceived); + } + + const chooseDataComponent = ( + <> +
+

+ {emoji} Local Chat With Websites {emoji} +

+
    +
  • + 🏡 + + Welcome to the Local Web Chatbot! +

    +

    + This is a direct fork of{" "} + + Jacob Lee's fully local PDF chatbot + {" "} + replacing the chat with PDF functionality with website support. It + is a simple chatbot that allows you to ask questions about a + website by embedding it and running queries against the vector + store using a local LLM and embeddings. +
    +
  • +
  • + ⚙️ + + The default LLM is Mistral-7B run locally by Ollama. You'll + need to install{" "} + + the Ollama desktop app + {" "} + and run the following commands to give this site access to the + locally running model: +
    +
    +                $ OLLAMA_ORIGINS=https://webml-demo.vercel.app
    +                OLLAMA_HOST=127.0.0.1:11435 ollama serve
    +              
    +
    + Then, in another window: +
    +
    +                $ OLLAMA_HOST=127.0.0.1:11435 ollama pull mistral
    +              
    +
    + Additionally, you will need a Firecrawl API key for website + embedding. Signing up at{" "} + + firecrawl.dev + {" "} + is easy and you get 500 credits free. Enter your API key into the + box below the URL in the embedding form. +
    +
  • + +
  • + 🐙 + + Both this template and Jacob Lee's template are open source - + you can see the source code and deploy your own version{" "} + + from the GitHub repo + + or Jacob's{" "} + + original GitHub repo + + ! + +
  • +
  • + 👇 + + Try embedding a website below, then asking questions! You can even + turn off your WiFi after the website is scraped. + +
  • +
+
+ +
+ setSelectedURL(e.target.value)} + > + setFirecrawlApiKey(e.target.value)} + > + +
+ + ); + + const chatInterfaceComponent = ( + <> +
+ {messages.length > 0 + ? [...messages].reverse().map((m, i) => ( + + setMessages((previousMessages) => { + const displayOrderedMessages = previousMessages.reverse(); + return [ + ...displayOrderedMessages.slice(0, i), + ...displayOrderedMessages.slice(i + 1), + ].reverse(); + }) + } + > + )) + : ""} +
+ +
+
+ setInput(e.target.value)} + /> + +
+
+ + ); + + return ( +
+

+ {emoji} {titleText} +

+ {readyToChat ? chatInterfaceComponent : chooseDataComponent} + +
+ ); +} diff --git a/examples/example_web_apps/local-website-chatbot/components/Navbar.tsx b/examples/example_web_apps/local-website-chatbot/components/Navbar.tsx new file mode 100644 index 00000000..58acbae6 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/components/Navbar.tsx @@ -0,0 +1,16 @@ +"use client"; + +import { usePathname } from 'next/navigation'; + +export function Navbar() { + const pathname = usePathname(); + return ( + + ); +} \ No newline at end of file diff --git a/examples/example_web_apps/local-website-chatbot/next.config.js b/examples/example_web_apps/local-website-chatbot/next.config.js new file mode 100644 index 00000000..98fd4383 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/next.config.js @@ -0,0 +1,39 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + // (Optional) Export as a static site + // See https://nextjs.org/docs/pages/building-your-application/deploying/static-exports#configuration + output: 'export', // Feel free to modify/remove this option + + // Override the default webpack configuration + webpack: (config, { isServer }) => { + // See https://webpack.js.org/configuration/resolve/#resolvealias + config.resolve.alias = { + ...config.resolve.alias, + "sharp$": false, + "onnxruntime-node$": false, + } + config.experiments = { + ...config.experiments, + topLevelAwait: true, + asyncWebAssembly: true, + }; + config.module.rules.push({ + test: /\.md$/i, + use: "raw-loader", + }); + // Fixes npm packages that depend on `fs` module + if (!isServer) { + config.resolve.fallback = { + ...config.resolve.fallback, // if you miss it, all the other options in fallback, specified + // by next.js will be dropped. Doesn't make much sense, but how it is + fs: false, // the solution + "node:fs/promises": false, + module: false, + perf_hooks: false, + }; + } + return config; + }, +} + +module.exports = nextConfig \ No newline at end of file diff --git a/examples/example_web_apps/local-website-chatbot/package.json b/examples/example_web_apps/local-website-chatbot/package.json new file mode 100644 index 00000000..252e6b5f --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/package.json @@ -0,0 +1,47 @@ +{ + "name": "local-website-chatbot", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "format": "prettier --write \"app\"" + }, + "engines": { + "node": ">=18" + }, + "dependencies": { + "@langchain/community": "^0.2.9", + "@langchain/weaviate": "^0.0.4", + "@mendable/firecrawl-js": "^0.0.26", + "@mlc-ai/web-llm": "^0.2.42", + "@types/node": "20.4.5", + "@types/react": "18.2.17", + "@types/react-dom": "18.2.7", + "@xenova/transformers": "^2.16.0", + "autoprefixer": "10.4.14", + "encoding": "^0.1.13", + "eslint": "8.46.0", + "eslint-config-next": "13.4.12", + "jest": "^29.7.0", + "langchain": "^0.2.5", + "next": "13.4.12", + "pdf-parse": "^1.1.1", + "postcss": "8.4.27", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-toastify": "^10.0.5", + "tailwindcss": "3.3.3", + "ts-node": "^10.9.2", + "typescript": "^5.4.5", + "voy-search": "^0.6.3" + }, + "devDependencies": { + "prettier": "3.0.0" + }, + "resolutions": { + "@langchain/core": "0.2.6" + } +} diff --git a/examples/example_web_apps/local-website-chatbot/postcss.config.js b/examples/example_web_apps/local-website-chatbot/postcss.config.js new file mode 100644 index 00000000..33ad091d --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/examples/example_web_apps/local-website-chatbot/public/images/demo_browser_only.gif b/examples/example_web_apps/local-website-chatbot/public/images/demo_browser_only.gif new file mode 100644 index 00000000..20d95775 Binary files /dev/null and b/examples/example_web_apps/local-website-chatbot/public/images/demo_browser_only.gif differ diff --git a/examples/example_web_apps/local-website-chatbot/public/images/favicon.ico b/examples/example_web_apps/local-website-chatbot/public/images/favicon.ico new file mode 100644 index 00000000..4c296111 Binary files /dev/null and b/examples/example_web_apps/local-website-chatbot/public/images/favicon.ico differ diff --git a/examples/example_web_apps/local-website-chatbot/public/images/og_image.png b/examples/example_web_apps/local-website-chatbot/public/images/og_image.png new file mode 100644 index 00000000..2bbff85f Binary files /dev/null and b/examples/example_web_apps/local-website-chatbot/public/images/og_image.png differ diff --git a/examples/example_web_apps/local-website-chatbot/schema/ChatWindowMessage.ts b/examples/example_web_apps/local-website-chatbot/schema/ChatWindowMessage.ts new file mode 100644 index 00000000..92be17a2 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/schema/ChatWindowMessage.ts @@ -0,0 +1,6 @@ +export type ChatWindowMessage = { + content: string; + role: "human" | "ai"; + runId?: string; + traceUrl?: string; +} \ No newline at end of file diff --git a/examples/example_web_apps/local-website-chatbot/tailwind.config.js b/examples/example_web_apps/local-website-chatbot/tailwind.config.js new file mode 100644 index 00000000..8c4d1b21 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/tailwind.config.js @@ -0,0 +1,18 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + './pages/**/*.{js,ts,jsx,tsx,mdx}', + './components/**/*.{js,ts,jsx,tsx,mdx}', + './app/**/*.{js,ts,jsx,tsx,mdx}', + ], + theme: { + extend: { + backgroundImage: { + 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', + 'gradient-conic': + 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', + }, + }, + }, + plugins: [], +} diff --git a/examples/example_web_apps/local-website-chatbot/tsconfig.json b/examples/example_web_apps/local-website-chatbot/tsconfig.json new file mode 100644 index 00000000..23ba4fd5 --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/examples/example_web_apps/local-website-chatbot/yarn.lock b/examples/example_web_apps/local-website-chatbot/yarn.lock new file mode 100644 index 00000000..119399de --- /dev/null +++ b/examples/example_web_apps/local-website-chatbot/yarn.lock @@ -0,0 +1,5596 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + +"@babel/compat-data@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.7.tgz#d23bbea508c3883ba8251fb4164982c36ea577ed" + integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== + +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.7.tgz#b676450141e0b52a3d43bc91da86aa608f950ac4" + integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helpers" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/template" "^7.24.7" + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.24.7", "@babel/generator@^7.7.2": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.7.tgz#1654d01de20ad66b4b4d99c135471bc654c55e6d" + integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== + dependencies: + "@babel/types" "^7.24.7" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz#4eb6c4a80d6ffeac25ab8cd9a21b5dfa48d503a9" + integrity sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg== + dependencies: + "@babel/compat-data" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-environment-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9" + integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-function-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz#75f1e1725742f39ac6584ee0b16d94513da38dd2" + integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA== + dependencies: + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-hoist-variables@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz#b4ede1cde2fd89436397f30dc9376ee06b0f25ee" + integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-transforms@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz#31b6c9a2930679498db65b685b1698bfd6c7daf8" + integrity sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.8.0": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz#98c84fe6fe3d0d3ae7bfc3a5e166a46844feb2a0" + integrity sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg== + +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-split-export-declaration@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" + integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" + integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz#24c3bb77c7a425d1742eec8fb433b5a1b38e62f6" + integrity sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw== + +"@babel/helpers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.7.tgz#aa2ccda29f62185acb5d42fb4a3a1b1082107416" + integrity sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg== + dependencies: + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" + integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.7.2": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" + integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz#58d458271b4d3b6bb27ee6ac9525acbb259bad1c" + integrity sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/runtime@^7.23.2": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12" + integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.24.7", "@babel/template@^7.3.3": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" + integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/traverse@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.7.tgz#de2b900163fa741721ba382163fe46a936c40cf5" + integrity sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-hoist-variables" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.3.3": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2" + integrity sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q== + dependencies: + "@babel/helper-string-parser" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.6.1": + version "4.10.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.1.tgz#361461e5cb3845d874e61731c11cfedd664d83a0" + integrity sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA== + +"@eslint/eslintrc@^2.1.1": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@^8.46.0": + version "8.57.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== + +"@graphql-typed-document-node/core@^3.1.1": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== + +"@huggingface/jinja@^0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@huggingface/jinja/-/jinja-0.2.2.tgz#faeb205a9d6995089bef52655ddd8245d3190627" + integrity sha512-/KPde26khDUIPkTGU82jdtTW9UAuvUTumCAbFs/7giR0SxsvZC4hru51PBvpijH6BVkHcROcvZM/lpy5h1jRRA== + +"@humanwhocodes/config-array@^0.11.10": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== + dependencies: + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + ci-info "^3.2.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== + dependencies: + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== + dependencies: + expect "^29.7.0" + jest-snapshot "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" + +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^6.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + callsites "^3.0.0" + graceful-fs "^4.2.9" + +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== + dependencies: + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== + dependencies: + "@jest/test-result" "^29.7.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + slash "^3.0.0" + +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@langchain/community@^0.2.9": + version "0.2.11" + resolved "https://registry.yarnpkg.com/@langchain/community/-/community-0.2.11.tgz#1046e1341dfb84c1daf9eae2244b3d984d953947" + integrity sha512-QMHvig1L+Qbf50HJSJoumceCBFEyivjt1cDrbMynpVTBdRV0Okp5IXMrfwbZ3WBTdrLMqfLGK3kf6ebPV6AKJQ== + dependencies: + "@langchain/core" "~0.2.6" + "@langchain/openai" "~0.1.0" + binary-extensions "^2.2.0" + expr-eval "^2.0.2" + flat "^5.0.2" + js-yaml "^4.1.0" + langchain "0.2.3" + langsmith "~0.1.30" + uuid "^9.0.0" + zod "^3.22.3" + zod-to-json-schema "^3.22.5" + +"@langchain/core@0.2.6", "@langchain/core@>0.1.56 <0.3.0", "@langchain/core@>0.2.0 <0.3.0", "@langchain/core@>=0.2.5 <0.3.0", "@langchain/core@~0.2.0", "@langchain/core@~0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@langchain/core/-/core-0.2.6.tgz#7b57ff88d4b5ae75bafbe689cd8878e9fbad7de6" + integrity sha512-YB9F0vdi/PcgBLSKtDwQ3gV6w4xVfk4ph0U43Okz2dAapKfBkVVB0rzr/afYUt/WHs864MuaO8uLN64egSDtIA== + dependencies: + ansi-styles "^5.0.0" + camelcase "6" + decamelize "1.2.0" + js-tiktoken "^1.0.12" + langsmith "~0.1.30" + ml-distance "^4.0.0" + mustache "^4.2.0" + p-queue "^6.6.2" + p-retry "4" + uuid "^9.0.0" + zod "^3.22.4" + zod-to-json-schema "^3.22.3" + +"@langchain/openai@~0.0.28": + version "0.0.34" + resolved "https://registry.yarnpkg.com/@langchain/openai/-/openai-0.0.34.tgz#36c9bca0721ab9f7e5d40927e7c0429cacbd5b56" + integrity sha512-M+CW4oXle5fdoz2T2SwdOef8pl3/1XmUx1vjn2mXUVM/128aO0l23FMF0SNBsAbRV6P+p/TuzjodchJbi0Ht/A== + dependencies: + "@langchain/core" ">0.1.56 <0.3.0" + js-tiktoken "^1.0.12" + openai "^4.41.1" + zod "^3.22.4" + zod-to-json-schema "^3.22.3" + +"@langchain/openai@~0.1.0": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@langchain/openai/-/openai-0.1.3.tgz#6eb0994e970d85ffa9aaeafb94449024ccf6ca63" + integrity sha512-riv/JC9x2A8b7GcHu8sx+mlZJ8KAwSSi231IPTlcciYnKozmrQ5H0vrtiD31fxiDbaRsk7tyCpkSBIOQEo7CyQ== + dependencies: + "@langchain/core" ">=0.2.5 <0.3.0" + js-tiktoken "^1.0.12" + openai "^4.49.1" + zod "^3.22.4" + zod-to-json-schema "^3.22.3" + +"@langchain/textsplitters@~0.0.0": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@langchain/textsplitters/-/textsplitters-0.0.3.tgz#1a3cc93dd2ab330edb225400ded190a22fea14e3" + integrity sha512-cXWgKE3sdWLSqAa8ykbCcUsUF1Kyr5J3HOWYGuobhPEycXW4WI++d5DhzdpL238mzoEXTi90VqfSCra37l5YqA== + dependencies: + "@langchain/core" ">0.2.0 <0.3.0" + js-tiktoken "^1.0.12" + +"@langchain/weaviate@^0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@langchain/weaviate/-/weaviate-0.0.4.tgz#fe2bb26ed4ddfde4964bb5f446fc8c3931d1d861" + integrity sha512-nb5/ZcrZb4tVGhsOxWjIZUehPgTjuJ2j3mWcyjeT015vRygGdwzfP6jdr0IgDoIW7x0jim0H6PftNfkGrg1wjQ== + dependencies: + "@langchain/core" ">0.2.0 <0.3.0" + uuid "^9.0.1" + weaviate-ts-client "^2.0.0" + +"@mendable/firecrawl-js@^0.0.26": + version "0.0.26" + resolved "https://registry.yarnpkg.com/@mendable/firecrawl-js/-/firecrawl-js-0.0.26.tgz#51b974ad92d1feb99b56f8e98055837ef700cefd" + integrity sha512-4++t4zKx0QrAavDRCvSKckkw0DPBAkG6+V9wYhhqoHdoKwJQJsPWkyjJO9UvEA50cNF1VRbvXfgaJL5dG9PcUQ== + dependencies: + axios "^1.6.8" + dotenv "^16.4.5" + uuid "^9.0.1" + zod "^3.23.8" + zod-to-json-schema "^3.23.0" + +"@mlc-ai/web-llm@^0.2.42": + version "0.2.46" + resolved "https://registry.yarnpkg.com/@mlc-ai/web-llm/-/web-llm-0.2.46.tgz#bf32dab0710dba4967d49b2810b39184272d8840" + integrity sha512-NGf5ylTvOVwH1iN4Q2N0t/GfmrjDekFPMjWRO/WqEB3BhSC6+B2ZkLY3AZ43c2RbT2NqROp3BovgNq3Mxq3ONQ== + dependencies: + loglevel "^1.9.1" + +"@next/env@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.12.tgz#0b88115ab817f178bf9dc0c5e7b367277595b58d" + integrity sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ== + +"@next/eslint-plugin-next@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.12.tgz#e75c4fedd0324d4f8fa8be2eb446270a462d3092" + integrity sha512-6rhK9CdxEgj/j1qvXIyLTWEaeFv7zOK8yJMulz3Owel0uek0U9MJCGzmKgYxM3aAUBo3gKeywCZKyQnJKto60A== + dependencies: + glob "7.1.7" + +"@next/swc-darwin-arm64@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.12.tgz#326c830b111de8a1a51ac0cbc3bcb157c4c4f92c" + integrity sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg== + +"@next/swc-darwin-x64@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.12.tgz#dd5c49fc092a8ffe4f30b7aa9bf6c5d2e40bbfa1" + integrity sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ== + +"@next/swc-linux-arm64-gnu@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.12.tgz#816cbe9d26ce4670ea99d95b66041e483ed122d6" + integrity sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig== + +"@next/swc-linux-arm64-musl@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.12.tgz#670c8aee221628f65e5b299ee84db746e6c778b0" + integrity sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g== + +"@next/swc-linux-x64-gnu@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.12.tgz#54c64e689f007ae463698dddc1c6637491c99cb4" + integrity sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg== + +"@next/swc-linux-x64-musl@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.12.tgz#9cbddf4e542ef3d32284e0c36ce102facc015f8b" + integrity sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ== + +"@next/swc-win32-arm64-msvc@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.12.tgz#3467a4b25429ccf49fd416388c9d19c80a4f6465" + integrity sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA== + +"@next/swc-win32-ia32-msvc@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.12.tgz#73494cd167191946833c680b28d6a42435d383a8" + integrity sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww== + +"@next/swc-win32-x64-msvc@13.4.12": + version "13.4.12" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.12.tgz#4a497edc4e8c5ee3c3eb27cf0eb39dfadff70874" + integrity sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@rushstack/eslint-patch@^1.1.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz#391d528054f758f81e53210f1a1eebcf1a8b1d20" + integrity sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg== + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sinonjs/commons@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== + dependencies: + "@sinonjs/commons" "^3.0.0" + +"@swc/helpers@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" + integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== + dependencies: + tslib "^2.4.0" + +"@tsconfig/node10@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/babel__core@^7.1.14": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7" + integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg== + dependencies: + "@babel/types" "^7.20.7" + +"@types/graceful-fs@^4.1.3": + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/long@^4.0.1": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/node-fetch@^2.6.4": + version "2.6.11" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.11.tgz#9b39b78665dae0e82a08f02f4967d62c66f95d24" + integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== + dependencies: + "@types/node" "*" + form-data "^4.0.0" + +"@types/node@*", "@types/node@>=13.7.0": + version "20.14.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.5.tgz#fe35e3022ebe58b8f201580eb24e1fcfc0f2487d" + integrity sha512-aoRR+fJkZT2l0aGOJhuA8frnCSoNX6W7U2mpNq63+BxBIj5BQFt8rHy627kijCmm63ijdSdwvGgpUsU6MBsZZA== + dependencies: + undici-types "~5.26.4" + +"@types/node@20.4.5": + version "20.4.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.5.tgz#9dc0a5cb1ccce4f7a731660935ab70b9c00a5d69" + integrity sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg== + +"@types/node@^18.11.18": + version "18.19.36" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.36.tgz#c9861e84727e07ecf79a5ff6d0e14f91bab2b478" + integrity sha512-tX1BNmYSWEvViftB26VLNxT6mEr37M7+ldUtq7rlKnv4/2fKYsJIOmqJAjT6h1DNuwQjIKgw3VJ/Dtw3yiTIQw== + dependencies: + undici-types "~5.26.4" + +"@types/prop-types@*": + version "15.7.12" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/react-dom@18.2.7": + version "18.2.7" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63" + integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "18.3.3" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f" + integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/react@18.2.17": + version "18.2.17" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.17.tgz#baa565b17ddb649c2dac85b5eaf9e9a1fe0f3b4e" + integrity sha512-u+e7OlgPPh+aryjOm5UJMX32OvB2E3QASOAqVMY6Ahs90djagxwv2ya0IctglNbNTexC12qCSMZG47KPfy1hAA== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/scheduler@*": + version "0.23.0" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.23.0.tgz#0a6655b3e2708eaabca00b7372fafd7a792a7b09" + integrity sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw== + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/uuid@^9.0.1": + version "9.0.8" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" + integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/parser@^5.42.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.62.0.tgz#1b63d082d849a2fcae8a569248fbe2ee1b8a56c7" + integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== + dependencies: + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== + +"@typescript-eslint/typescript-estree@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== + dependencies: + "@typescript-eslint/types" "5.62.0" + eslint-visitor-keys "^3.3.0" + +"@xenova/transformers@^2.16.0": + version "2.17.2" + resolved "https://registry.yarnpkg.com/@xenova/transformers/-/transformers-2.17.2.tgz#7448d73b90f67bced66f39fe2dd656adc891fde5" + integrity sha512-lZmHqzrVIkSvZdKZEx7IYY51TK0WDrC8eR0c5IMnBsO8di8are1zzw8BlLhyO2TklZKLN5UffNGs1IJwT6oOqQ== + dependencies: + "@huggingface/jinja" "^0.2.2" + onnxruntime-web "1.14.0" + sharp "^0.32.0" + optionalDependencies: + onnxruntime-node "1.14.0" + +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.1.1: + version "8.3.3" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" + integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== + dependencies: + acorn "^8.11.0" + +acorn@^8.11.0, acorn@^8.4.1, acorn@^8.9.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.0.tgz#1627bfa2e058148036133b8d9b51a700663c294c" + integrity sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw== + +agentkeepalive@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== + dependencies: + humanize-ms "^1.2.1" + +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-includes@^3.1.6, array-includes@^3.1.7, array-includes@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.findlast@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" + integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.findlastindex@^1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.toreversed@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz#b989a6bf35c4c5051e1dc0325151bf8088954eba" + integrity sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.tosorted@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" + integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +autoprefixer@10.4.14: + version "10.4.14" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d" + integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ== + dependencies: + browserslist "^4.21.5" + caniuse-lite "^1.0.30001464" + fraction.js "^4.2.0" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +axe-core@=4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" + integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== + +axios@^1.6.8: + version "1.7.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" + integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +axobject-query@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== + dependencies: + dequal "^2.0.3" + +b4a@^1.6.4: + version "1.6.6" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba" + integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== + +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== + dependencies: + "@jest/transform" "^29.7.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.6.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== + dependencies: + babel-plugin-jest-hoist "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +bare-events@^2.0.0, bare-events@^2.2.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.4.2.tgz#3140cca7a0e11d49b3edc5041ab560659fd8e1f8" + integrity sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q== + +bare-fs@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.3.1.tgz#cdbd63dac7a552dfb2b87d18c822298d1efd213d" + integrity sha512-W/Hfxc/6VehXlsgFtbB5B4xFcsCl+pAh30cYhoFyXErf6oGrwjh8SwiPAdHgpmWonKuYpZgGywN0SXt7dgsADA== + dependencies: + bare-events "^2.0.0" + bare-path "^2.0.0" + bare-stream "^2.0.0" + +bare-os@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.4.0.tgz#5de5e3ba7704f459c9656629edca7cc736e06608" + integrity sha512-v8DTT08AS/G0F9xrhyLtepoo9EJBJ85FRSMbu1pQUlAf6A8T0tEEQGMVObWeqpjhSPXsE0VGlluFBJu2fdoTNg== + +bare-path@^2.0.0, bare-path@^2.1.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.3.tgz#594104c829ef660e43b5589ec8daef7df6cedb3e" + integrity sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA== + dependencies: + bare-os "^2.1.0" + +bare-stream@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-2.1.3.tgz#070b69919963a437cc9e20554ede079ce0a129b2" + integrity sha512-tiDAH9H/kP+tvNO5sczyn9ZAA7utrSMobyDchsnyyXBuUe2FSQWbxhtuHB8jwpHYYevVo2UJpcmvvjrbHboUUQ== + dependencies: + streamx "^2.18.0" + +base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +binary-extensions@^2.0.0, binary-extensions@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +binary-search@^1.3.5: + version "1.3.6" + resolved "https://registry.yarnpkg.com/binary-search/-/binary-search-1.3.6.tgz#e32426016a0c5092f0f3598836a1c7da3560565c" + integrity sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA== + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.21.5, browserslist@^4.22.2: + version "4.23.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.1.tgz#ce4af0534b3d37db5c1a4ca98b9080f985041e96" + integrity sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw== + dependencies: + caniuse-lite "^1.0.30001629" + electron-to-chromium "^1.4.796" + node-releases "^2.0.14" + update-browserslist-db "^1.0.16" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +busboy@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase@6, camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001629: + version "1.0.30001636" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz#b15f52d2bdb95fad32c2f53c0b68032b85188a78" + integrity sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg== + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cjs-module-lexer@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz#c485341ae8fd999ca4ee5af2d7a1c9ae01e0099c" + integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== + +client-only@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clsx@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-fetch@^3.1.5: + version "3.1.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + dependencies: + node-fetch "^2.6.12" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +debug@^3.1.0, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + dependencies: + ms "2.1.2" + +decamelize@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +dedent@^1.0.0: + version "1.5.3" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" + integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +detect-libc@^2.0.0, detect-libc@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dotenv@^16.4.5: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +electron-to-chromium@^1.4.796: + version "1.4.805" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.805.tgz#1d526e384c20944a3c68f618f9774edc384c4733" + integrity sha512-8W4UJwX/w9T0QSzINJckTKG6CYpAUTqsaWcWIsdud3I1FYJcMgW9QqT1/4CBff/pP/TihWh13OmiyY8neto6vw== + +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.12.0: + version "5.17.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz#d037603789dd9555b89aaec7eb78845c49089bc5" + integrity sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-iterator-helpers@^1.0.15, es-iterator-helpers@^1.0.19: + version "1.0.19" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8" + integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + iterator.prototype "^1.1.2" + safe-array-concat "^1.1.2" + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-next@13.4.12: + version "13.4.12" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.4.12.tgz#a42ed2f590855a0481c8bbec49e26db56ad3793f" + integrity sha512-ZF0r5vxKaVazyZH/37Au/XItiG7qUOBw+HaH3PeyXltIMwXorsn6bdrl0Nn9N5v5v9spc+6GM2ryjugbjF6X2g== + dependencies: + "@next/eslint-plugin-next" "13.4.12" + "@rushstack/eslint-patch" "^1.1.3" + "@typescript-eslint/parser" "^5.42.0" + eslint-import-resolver-node "^0.3.6" + eslint-import-resolver-typescript "^3.5.2" + eslint-plugin-import "^2.26.0" + eslint-plugin-jsx-a11y "^6.5.1" + eslint-plugin-react "^7.31.7" + eslint-plugin-react-hooks "5.0.0-canary-7118f5dd7-20230705" + +eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-import-resolver-typescript@^3.5.2: + version "3.6.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" + integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== + dependencies: + debug "^4.3.4" + enhanced-resolve "^5.12.0" + eslint-module-utils "^2.7.4" + fast-glob "^3.3.1" + get-tsconfig "^4.5.0" + is-core-module "^2.11.0" + is-glob "^4.0.3" + +eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" + integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== + dependencies: + debug "^3.2.7" + +eslint-plugin-import@^2.26.0: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" + +eslint-plugin-jsx-a11y@^6.5.1: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz#2fa9c701d44fcd722b7c771ec322432857fcbad2" + integrity sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== + dependencies: + "@babel/runtime" "^7.23.2" + aria-query "^5.3.0" + array-includes "^3.1.7" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "=4.7.0" + axobject-query "^3.2.1" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + es-iterator-helpers "^1.0.15" + hasown "^2.0.0" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" + minimatch "^3.1.2" + object.entries "^1.1.7" + object.fromentries "^2.0.7" + +eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705: + version "5.0.0-canary-7118f5dd7-20230705" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz#4d55c50e186f1a2b0636433d2b0b2f592ddbccfd" + integrity sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw== + +eslint-plugin-react@^7.31.7: + version "7.34.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.34.2.tgz#2780a1a35a51aca379d86d29b9a72adc6bfe6b66" + integrity sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw== + dependencies: + array-includes "^3.1.8" + array.prototype.findlast "^1.2.5" + array.prototype.flatmap "^1.3.2" + array.prototype.toreversed "^1.1.2" + array.prototype.tosorted "^1.1.3" + doctrine "^2.1.0" + es-iterator-helpers "^1.0.19" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.8" + object.fromentries "^2.0.8" + object.hasown "^1.1.4" + object.values "^1.2.0" + prop-types "^15.8.1" + resolve "^2.0.0-next.5" + semver "^6.3.1" + string.prototype.matchall "^4.0.11" + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@8.46.0: + version "8.46.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.46.0.tgz#a06a0ff6974e53e643acc42d1dcf2e7f797b3552" + integrity sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.1" + "@eslint/js" "^8.46.0" + "@humanwhocodes/config-array" "^0.11.10" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.2" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + +eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +expr-eval@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expr-eval/-/expr-eval-2.0.2.tgz#fa6f044a7b0c93fde830954eb9c5b0f7fbc7e201" + integrity sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg== + +extract-files@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" + integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-fifo@^1.2.0, fast-fifo@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + +fast-glob@^3.2.12, fast-glob@^3.2.9, fast-glob@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatbuffers@^1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/flatbuffers/-/flatbuffers-1.12.0.tgz#72e87d1726cb1b216e839ef02658aa87dcef68aa" + integrity sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ== + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +foreground-child@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7" + integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +form-data-encoder@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" + integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A== + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +formdata-node@^4.3.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" + integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== + dependencies: + node-domexception "1.0.0" + web-streams-polyfill "4.0.0-beta.3" + +fraction.js@^4.2.0: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +get-tsconfig@^4.5.0: + version "4.7.5" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.5.tgz#5e012498579e9a6947511ed0cd403272c7acbbaf" + integrity sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw== + dependencies: + resolve-pkg-maps "^1.0.0" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^10.3.10: + version "10.4.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2" + integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + path-scurry "^1.11.1" + +glob@^7.1.3, glob@^7.1.4: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +graphql-request@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-5.2.0.tgz#a05fb54a517d91bb2d7aefa17ade4523dc5ebdca" + integrity sha512-pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + cross-fetch "^3.1.5" + extract-files "^9.0.0" + form-data "^3.0.0" + +guid-typescript@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/guid-typescript/-/guid-typescript-1.0.9.tgz#e35f77003535b0297ea08548f5ace6adb1480ddc" + integrity sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +is-any-array@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-any-array/-/is-any-array-2.0.1.tgz#9233242a9c098220290aa2ec28f82ca7fa79899e" + integrity sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ== + +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" + integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^5.0.4: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-instrument@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz#91655936cf7380e4e473383081e38478b69993b1" + integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw== + dependencies: + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + +jackspeak@^3.1.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.0.tgz#a75763ff36ad778ede6a156d8ee8b124de445b4a" + integrity sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== + dependencies: + execa "^5.0.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^1.0.0" + is-generator-fn "^2.0.0" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + pretty-format "^29.7.0" + pure-rand "^6.0.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== + dependencies: + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + create-jest "^29.7.0" + exit "^0.1.2" + import-local "^3.0.2" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + yargs "^17.3.1" + +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== + dependencies: + detect-newline "^3.0.0" + +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== + dependencies: + "@jest/types" "^29.6.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== + dependencies: + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-util "^29.7.0" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== + +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== + dependencies: + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" + +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-pnp-resolver "^1.2.2" + jest-util "^29.7.0" + jest-validate "^29.7.0" + resolve "^1.20.0" + resolve.exports "^2.0.0" + slash "^3.0.0" + +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== + dependencies: + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.13.1" + graceful-fs "^4.2.9" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^29.7.0" + graceful-fs "^4.2.9" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + natural-compare "^1.4.0" + pretty-format "^29.7.0" + semver "^7.5.3" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== + dependencies: + "@jest/types" "^29.6.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^29.6.3" + leven "^3.1.0" + pretty-format "^29.7.0" + +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== + dependencies: + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.13.1" + jest-util "^29.7.0" + string-length "^4.0.1" + +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== + dependencies: + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" + import-local "^3.0.2" + jest-cli "^29.7.0" + +jiti@^1.18.2: + version "1.21.6" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== + +js-tiktoken@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/js-tiktoken/-/js-tiktoken-1.0.12.tgz#af0f5cf58e5e7318240d050c8413234019424211" + integrity sha512-L7wURW1fH9Qaext0VzaUDpFGVQgjkdE3Dgsy9/+yXyGEpBKnylTd0mU0bfbNkKDlXRb6TEsZkwuflu1B8uQbJQ== + dependencies: + base64-js "^1.5.1" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonpointer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +langchain@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/langchain/-/langchain-0.2.3.tgz#c14bb05cf871b21bd63b84b3ab89580b1d62539f" + integrity sha512-T9xR7zd+Nj0oXy6WoYKmZLy0DlQiDLFPGYWdOXDxy+AvqlujoPdVQgDSpdqiOHvAjezrByAoKxoHCz5XMwTP/Q== + dependencies: + "@langchain/core" "~0.2.0" + "@langchain/openai" "~0.0.28" + "@langchain/textsplitters" "~0.0.0" + binary-extensions "^2.2.0" + js-tiktoken "^1.0.12" + js-yaml "^4.1.0" + jsonpointer "^5.0.1" + langchainhub "~0.0.8" + langsmith "~0.1.7" + ml-distance "^4.0.0" + openapi-types "^12.1.3" + p-retry "4" + uuid "^9.0.0" + yaml "^2.2.1" + zod "^3.22.4" + zod-to-json-schema "^3.22.3" + +langchain@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/langchain/-/langchain-0.2.5.tgz#fc23848c20244a1d0a3dd5dd4663af9a41017ccb" + integrity sha512-H5WL0NanCdQ+tzoeEt7Fyz9YGdR3wbfDvfQrJvxAO95istKo5JraRh24dzyvqxM9439xwRMNaMIpMwsyqtWDtQ== + dependencies: + "@langchain/core" "~0.2.0" + "@langchain/openai" "~0.1.0" + "@langchain/textsplitters" "~0.0.0" + binary-extensions "^2.2.0" + js-tiktoken "^1.0.12" + js-yaml "^4.1.0" + jsonpointer "^5.0.1" + langchainhub "~0.0.8" + langsmith "~0.1.30" + ml-distance "^4.0.0" + openapi-types "^12.1.3" + p-retry "4" + uuid "^9.0.0" + yaml "^2.2.1" + zod "^3.22.4" + zod-to-json-schema "^3.22.3" + +langchainhub@~0.0.8: + version "0.0.11" + resolved "https://registry.yarnpkg.com/langchainhub/-/langchainhub-0.0.11.tgz#2ce22def9c84699dcbd4fd4b78270d34bd2a9ae9" + integrity sha512-WnKI4g9kU2bHQP136orXr2bcRdgz9iiTBpTN0jWt9IlScUKnJBoD0aa2HOzHURQKeQDnt2JwqVmQ6Depf5uDLQ== + +langsmith@~0.1.30, langsmith@~0.1.7: + version "0.1.31" + resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.1.31.tgz#a3518ea340e85191c0252d47a347d7295fd9b511" + integrity sha512-G9zi+84RvUZ7UP/ZC0dx/9SYHk8Bhe9GywUeVBzEyt8M4QeU6FPWT7TEjDSqp/XuPJf5o59Z2QlmNJgMnpUd8Q== + dependencies: + "@types/uuid" "^9.0.1" + commander "^10.0.1" + p-queue "^6.6.2" + p-retry "4" + uuid "^9.0.0" + +language-subtag-registry@^0.3.20: + version "0.3.23" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz#23529e04d9e3b74679d70142df3fd2eb6ec572e7" + integrity sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ== + +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== + dependencies: + language-subtag-registry "^0.3.20" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lilconfig@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" + integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +loglevel@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" + integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^10.2.0: + version "10.2.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^9.0.4: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +ml-array-mean@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/ml-array-mean/-/ml-array-mean-1.1.6.tgz#d951a700dc8e3a17b3e0a583c2c64abd0c619c56" + integrity sha512-MIdf7Zc8HznwIisyiJGRH9tRigg3Yf4FldW8DxKxpCCv/g5CafTw0RRu51nojVEOXuCQC7DRVVu5c7XXO/5joQ== + dependencies: + ml-array-sum "^1.1.6" + +ml-array-sum@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/ml-array-sum/-/ml-array-sum-1.1.6.tgz#d1d89c20793cd29c37b09d40e85681aa4515a955" + integrity sha512-29mAh2GwH7ZmiRnup4UyibQZB9+ZLyMShvt4cH4eTK+cL2oEMIZFnSyB3SS8MlsTh6q/w/yh48KmqLxmovN4Dw== + dependencies: + is-any-array "^2.0.0" + +ml-distance-euclidean@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ml-distance-euclidean/-/ml-distance-euclidean-2.0.0.tgz#3a668d236649d1b8fec96380b9435c6f42c9a817" + integrity sha512-yC9/2o8QF0A3m/0IXqCTXCzz2pNEzvmcE/9HFKOZGnTjatvBbsn4lWYJkxENkA4Ug2fnYl7PXQxnPi21sgMy/Q== + +ml-distance@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/ml-distance/-/ml-distance-4.0.1.tgz#4741d17a1735888c5388823762271dfe604bd019" + integrity sha512-feZ5ziXs01zhyFUUUeZV5hwc0f5JW0Sh0ckU1koZe/wdVkJdGxcP06KNQuF0WBTj8FttQUzcvQcpcrOp/XrlEw== + dependencies: + ml-array-mean "^1.1.6" + ml-distance-euclidean "^2.0.0" + ml-tree-similarity "^1.0.0" + +ml-tree-similarity@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ml-tree-similarity/-/ml-tree-similarity-1.0.0.tgz#24705a107e32829e24d945e87219e892159c53f0" + integrity sha512-XJUyYqjSuUQkNQHMscr6tcjldsOoAekxADTplt40QKfwW6nd++1wHWV9AArl0Zvw/TIHgNaZZNvr8QGvE8wLRg== + dependencies: + binary-search "^1.3.5" + num-sort "^2.0.0" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.0.0, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mustache@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== + +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoid@^3.3.4, nanoid@^3.3.6, nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +next@13.4.12: + version "13.4.12" + resolved "https://registry.yarnpkg.com/next/-/next-13.4.12.tgz#809b21ea0aabbe88ced53252c88c4a5bd5af95df" + integrity sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw== + dependencies: + "@next/env" "13.4.12" + "@swc/helpers" "0.5.1" + busboy "1.6.0" + caniuse-lite "^1.0.30001406" + postcss "8.4.14" + styled-jsx "5.1.1" + watchpack "2.4.0" + zod "3.21.4" + optionalDependencies: + "@next/swc-darwin-arm64" "13.4.12" + "@next/swc-darwin-x64" "13.4.12" + "@next/swc-linux-arm64-gnu" "13.4.12" + "@next/swc-linux-arm64-musl" "13.4.12" + "@next/swc-linux-x64-gnu" "13.4.12" + "@next/swc-linux-x64-musl" "13.4.12" + "@next/swc-win32-arm64-msvc" "13.4.12" + "@next/swc-win32-ia32-msvc" "13.4.12" + "@next/swc-win32-x64-msvc" "13.4.12" + +node-abi@^3.3.0: + version "3.65.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.65.0.tgz#ca92d559388e1e9cab1680a18c1a18757cdac9d3" + integrity sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA== + dependencies: + semver "^7.3.5" + +node-addon-api@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== + +node-domexception@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-ensure@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/node-ensure/-/node-ensure-0.0.0.tgz#ecae764150de99861ec5c810fd5d096b183932a7" + integrity sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw== + +node-fetch@^2.6.12, node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +num-sort@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/num-sort/-/num-sort-2.1.0.tgz#1cbb37aed071329fdf41151258bc011898577a9b" + integrity sha512-1MQz1Ed8z2yckoBeSfkQHHO9K1yDRxxtotKSJ9yvcTUUxSvfvzEq5GwBrjjHEpMlq/k5gvXdmJ1SbYxWtpNoVg== + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4, object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.7, object.entries@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" + integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +object.fromentries@^2.0.7, object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.groupby@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.hasown@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.4.tgz#e270ae377e4c120cdcb7656ce66884a6218283dc" + integrity sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg== + dependencies: + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.values@^1.1.6, object.values@^1.1.7, object.values@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +onnx-proto@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/onnx-proto/-/onnx-proto-4.0.4.tgz#2431a25bee25148e915906dda0687aafe3b9e044" + integrity sha512-aldMOB3HRoo6q/phyB6QRQxSt895HNNw82BNyZ2CMh4bjeKv7g/c+VpAFtJuEMVfYLMbRx61hbuqnKceLeDcDA== + dependencies: + protobufjs "^6.8.8" + +onnxruntime-common@~1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/onnxruntime-common/-/onnxruntime-common-1.14.0.tgz#2bb5dac5261269779aa5fb6536ca379657de8bf6" + integrity sha512-3LJpegM2iMNRX2wUmtYfeX/ytfOzNwAWKSq1HbRrKc9+uqG/FsEA0bbKZl1btQeZaXhC26l44NWpNUeXPII7Ew== + +onnxruntime-node@1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/onnxruntime-node/-/onnxruntime-node-1.14.0.tgz#c4ae6c355cfae7d83abaf36dd39a905c4a010217" + integrity sha512-5ba7TWomIV/9b6NH/1x/8QEeowsb+jBEvFzU6z0T4mNsFwdPqXeFUM7uxC6QeSRkEbWu3qEB0VMjrvzN/0S9+w== + dependencies: + onnxruntime-common "~1.14.0" + +onnxruntime-web@1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/onnxruntime-web/-/onnxruntime-web-1.14.0.tgz#c8cee538781b1d4c1c6b043934f4a3e6ddf1466e" + integrity sha512-Kcqf43UMfW8mCydVGcX9OMXI2VN17c0p6XvR7IPSZzBf/6lteBzXHvcEVWDPmCKuGombl997HgLqj91F11DzXw== + dependencies: + flatbuffers "^1.12.0" + guid-typescript "^1.0.9" + long "^4.0.0" + onnx-proto "^4.0.4" + onnxruntime-common "~1.14.0" + platform "^1.3.6" + +openai@^4.41.1, openai@^4.49.1: + version "4.51.0" + resolved "https://registry.yarnpkg.com/openai/-/openai-4.51.0.tgz#8ab08bba2441375e8e4ce6161f9ac987d2b2c157" + integrity sha512-UKuWc3/qQyklqhHM8CbdXCv0Z0obap6T0ECdcO5oATQxAbKE5Ky3YCXFQY207z+eGG6ez4U9wvAcuMygxhmStg== + dependencies: + "@types/node" "^18.11.18" + "@types/node-fetch" "^2.6.4" + abort-controller "^3.0.0" + agentkeepalive "^4.2.1" + form-data-encoder "1.7.2" + formdata-node "^4.3.2" + node-fetch "^2.6.7" + web-streams-polyfill "^3.2.1" + +openapi-types@^12.1.3: + version "12.1.3" + resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-12.1.3.tgz#471995eb26c4b97b7bd356aacf7b91b73e777dd3" + integrity sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw== + +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-queue@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-retry@4: + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== + dependencies: + "@types/retry" "0.12.0" + retry "^0.13.1" + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pdf-parse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pdf-parse/-/pdf-parse-1.1.1.tgz#745e07408679548b3995ff896fd38e96e19d14a7" + integrity sha512-v6ZJ/efsBpGrGGknjtq9J/oC8tZWq0KWL5vQrk2GlzLEQPUDB1ex+13Rmidl1neNN358Jn9EHZw5y07FFtaC7A== + dependencies: + debug "^3.1.0" + node-ensure "^0.0.0" + +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pirates@^4.0.1, pirates@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +platform@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" + integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-load-config@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + dependencies: + postcss-selector-parser "^6.0.11" + +postcss-selector-parser@^6.0.11: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz#49694cb4e7c649299fea510a29fa6577104bcf53" + integrity sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@8.4.14: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@8.4.27: + version "8.4.27" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" + integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^8.4.23: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + +prebuild-install@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" + integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" + integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== + +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +protobufjs@^6.8.8: + version "6.11.4" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" + integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pure-rand@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2" + integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +queue-tick@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" + integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dom@18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-toastify@^10.0.5: + version "10.0.5" + resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-10.0.5.tgz#6b8f8386060c5c856239f3036d1e76874ce3bd1e" + integrity sha512-mNKt2jBXJg4O7pSdbNUfDdTsK9FIdikfsIE/yUCxbAEXl4HMyJaivrVFcn3Elvt5xvCQYhUZm+hqTIu1UXM3Pw== + dependencies: + clsx "^2.1.0" + +react@18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +reflect.getprototypeof@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859" + integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@^1.1.7, resolve@^1.20.0, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.5: + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@^5.0.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scheduler@^0.23.0: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + +semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: + version "7.6.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1, set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +sharp@^0.32.0: + version "0.32.6" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.6.tgz#6ad30c0b7cd910df65d5f355f774aa4fce45732a" + integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== + dependencies: + color "^4.2.3" + detect-libc "^2.0.2" + node-addon-api "^6.1.0" + prebuild-install "^7.1.1" + semver "^7.5.4" + simple-get "^4.0.1" + tar-fs "^3.0.4" + tunnel-agent "^0.6.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0, simple-get@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +source-map-js@^1.0.2, source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +streamx@^2.15.0, streamx@^2.18.0: + version "2.18.0" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.18.0.tgz#5bc1a51eb412a667ebfdcd4e6cf6a6fc65721ac7" + integrity sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ== + dependencies: + fast-fifo "^1.3.2" + queue-tick "^1.0.1" + text-decoder "^1.1.0" + optionalDependencies: + bare-events "^2.2.0" + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string.prototype.matchall@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" + integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + regexp.prototype.flags "^1.5.2" + set-function-name "^2.0.2" + side-channel "^1.0.6" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== + dependencies: + client-only "0.0.1" + +sucrase@^3.32.0: + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tailwindcss@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.3.tgz#90da807393a2859189e48e9e7000e6880a736daf" + integrity sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.2.12" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.18.2" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + resolve "^1.22.2" + sucrase "^3.32.0" + +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar-fs@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-fs@^3.0.4: + version "3.0.6" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.6.tgz#eaccd3a67d5672f09ca8e8f9c3d2b89fa173f217" + integrity sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w== + dependencies: + pump "^3.0.0" + tar-stream "^3.1.5" + optionalDependencies: + bare-fs "^2.1.1" + bare-path "^2.1.0" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar-stream@^3.1.5: + version "3.1.7" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.7.tgz#24b3fb5eabada19fe7338ed6d26e5f7c482e792b" + integrity sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ== + dependencies: + b4a "^1.6.4" + fast-fifo "^1.2.0" + streamx "^2.15.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-decoder@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/text-decoder/-/text-decoder-1.1.0.tgz#3379e728fcf4d3893ec1aea35e8c2cac215ef190" + integrity sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw== + dependencies: + b4a "^1.6.4" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +ts-node@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.4.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + +typescript@^5.4.5: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +update-browserslist-db@^1.0.16: + version "1.0.16" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" + integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^9.0.0, uuid@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-to-istanbul@^9.0.1: + version "9.2.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" + integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^2.0.0" + +voy-search@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/voy-search/-/voy-search-0.6.3.tgz#5fed7744aac990c99a57b88bf4e7431ee6ba9ddd" + integrity sha512-GRwrXcT3Qmzr/CuwpwX55XWpgqM2hUqLipSwI8bGcfsDTJGa+mFxsOXzWHNMRpcYd+U2RP73f2USLDWQu5yFdQ== + +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +watchpack@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +weaviate-ts-client@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/weaviate-ts-client/-/weaviate-ts-client-2.2.0.tgz#59dc88b6aa33dd1883e1fc23c78da70435678cd5" + integrity sha512-sOvX1Gt8+u9wIVmiYii26N4KSpZ8jM5fM4DMmtRL6yPNO9u8elsvg5g7eJOwmrICsn1Zt2efxhxuSChI0M8FzQ== + dependencies: + graphql-request "^5.2.0" + uuid "^9.0.1" + +web-streams-polyfill@4.0.0-beta.3: + version "4.0.0-beta.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" + integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== + +web-streams-polyfill@^3.2.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" + integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-builtin-type@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" + integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + dependencies: + function.prototype.name "^1.1.5" + has-tostringtag "^1.0.0" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +which-collection@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.9: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yaml@^2.2.1, yaml@^2.3.4: + version "2.4.5" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" + integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.3.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zod-to-json-schema@^3.22.3, zod-to-json-schema@^3.22.5, zod-to-json-schema@^3.23.0: + version "3.23.1" + resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.23.1.tgz#5225925b8ed5fa20096bd99be076c4b29b53d309" + integrity sha512-oT9INvydob1XV0v1d2IadrR74rLtDInLvDFfAa1CG0Pmg/vxATk7I2gSelfj271mbzeM4Da0uuDQE/Nkj3DWNw== + +zod@3.21.4: + version "3.21.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" + integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== + +zod@^3.22.3, zod@^3.22.4, zod@^3.23.8: + version "3.23.8" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== diff --git a/examples/example_web_apps/roastmywebsite-example-app/.eslintrc.json b/examples/example_web_apps/roastmywebsite-example-app/.eslintrc.json new file mode 100644 index 00000000..bffb357a --- /dev/null +++ b/examples/example_web_apps/roastmywebsite-example-app/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/examples/roastmywebsite-example-app/.gitignore b/examples/example_web_apps/roastmywebsite-example-app/.gitignore similarity index 100% rename from examples/roastmywebsite-example-app/.gitignore rename to examples/example_web_apps/roastmywebsite-example-app/.gitignore diff --git a/examples/roastmywebsite-example-app/README.md b/examples/example_web_apps/roastmywebsite-example-app/README.md similarity index 100% rename from examples/roastmywebsite-example-app/README.md rename to examples/example_web_apps/roastmywebsite-example-app/README.md diff --git a/examples/roastmywebsite-example-app/components.json b/examples/example_web_apps/roastmywebsite-example-app/components.json similarity index 100% rename from examples/roastmywebsite-example-app/components.json rename to examples/example_web_apps/roastmywebsite-example-app/components.json diff --git a/examples/roastmywebsite-example-app/next.config.mjs b/examples/example_web_apps/roastmywebsite-example-app/next.config.mjs similarity index 100% rename from examples/roastmywebsite-example-app/next.config.mjs rename to examples/example_web_apps/roastmywebsite-example-app/next.config.mjs diff --git a/examples/roastmywebsite-example-app/package-lock.json b/examples/example_web_apps/roastmywebsite-example-app/package-lock.json similarity index 100% rename from examples/roastmywebsite-example-app/package-lock.json rename to examples/example_web_apps/roastmywebsite-example-app/package-lock.json diff --git a/examples/roastmywebsite-example-app/package.json b/examples/example_web_apps/roastmywebsite-example-app/package.json similarity index 100% rename from examples/roastmywebsite-example-app/package.json rename to examples/example_web_apps/roastmywebsite-example-app/package.json diff --git a/examples/roastmywebsite-example-app/postcss.config.mjs b/examples/example_web_apps/roastmywebsite-example-app/postcss.config.mjs similarity index 100% rename from examples/roastmywebsite-example-app/postcss.config.mjs rename to examples/example_web_apps/roastmywebsite-example-app/postcss.config.mjs diff --git a/examples/roastmywebsite-example-app/public/android-chrome-192x192.png b/examples/example_web_apps/roastmywebsite-example-app/public/android-chrome-192x192.png similarity index 100% rename from examples/roastmywebsite-example-app/public/android-chrome-192x192.png rename to examples/example_web_apps/roastmywebsite-example-app/public/android-chrome-192x192.png diff --git a/examples/roastmywebsite-example-app/public/android-chrome-512x512.png b/examples/example_web_apps/roastmywebsite-example-app/public/android-chrome-512x512.png similarity index 100% rename from examples/roastmywebsite-example-app/public/android-chrome-512x512.png rename to examples/example_web_apps/roastmywebsite-example-app/public/android-chrome-512x512.png diff --git a/examples/roastmywebsite-example-app/public/apple-touch-icon.png b/examples/example_web_apps/roastmywebsite-example-app/public/apple-touch-icon.png similarity index 100% rename from examples/roastmywebsite-example-app/public/apple-touch-icon.png rename to examples/example_web_apps/roastmywebsite-example-app/public/apple-touch-icon.png diff --git a/examples/roastmywebsite-example-app/public/bgd.png b/examples/example_web_apps/roastmywebsite-example-app/public/bgd.png similarity index 100% rename from examples/roastmywebsite-example-app/public/bgd.png rename to examples/example_web_apps/roastmywebsite-example-app/public/bgd.png diff --git a/examples/roastmywebsite-example-app/public/favicon-16x16.png b/examples/example_web_apps/roastmywebsite-example-app/public/favicon-16x16.png similarity index 100% rename from examples/roastmywebsite-example-app/public/favicon-16x16.png rename to examples/example_web_apps/roastmywebsite-example-app/public/favicon-16x16.png diff --git a/examples/roastmywebsite-example-app/public/favicon-32x32.png b/examples/example_web_apps/roastmywebsite-example-app/public/favicon-32x32.png similarity index 100% rename from examples/roastmywebsite-example-app/public/favicon-32x32.png rename to examples/example_web_apps/roastmywebsite-example-app/public/favicon-32x32.png diff --git a/examples/roastmywebsite-example-app/public/favicon.ico b/examples/example_web_apps/roastmywebsite-example-app/public/favicon.ico similarity index 100% rename from examples/roastmywebsite-example-app/public/favicon.ico rename to examples/example_web_apps/roastmywebsite-example-app/public/favicon.ico diff --git a/examples/roastmywebsite-example-app/public/next.svg b/examples/example_web_apps/roastmywebsite-example-app/public/next.svg similarity index 100% rename from examples/roastmywebsite-example-app/public/next.svg rename to examples/example_web_apps/roastmywebsite-example-app/public/next.svg diff --git a/examples/roastmywebsite-example-app/public/og.png b/examples/example_web_apps/roastmywebsite-example-app/public/og.png similarity index 100% rename from examples/roastmywebsite-example-app/public/og.png rename to examples/example_web_apps/roastmywebsite-example-app/public/og.png diff --git a/examples/roastmywebsite-example-app/public/site.webmanifest b/examples/example_web_apps/roastmywebsite-example-app/public/site.webmanifest similarity index 100% rename from examples/roastmywebsite-example-app/public/site.webmanifest rename to examples/example_web_apps/roastmywebsite-example-app/public/site.webmanifest diff --git a/examples/roastmywebsite-example-app/public/vercel.svg b/examples/example_web_apps/roastmywebsite-example-app/public/vercel.svg similarity index 100% rename from examples/roastmywebsite-example-app/public/vercel.svg rename to examples/example_web_apps/roastmywebsite-example-app/public/vercel.svg diff --git a/examples/roastmywebsite-example-app/src/app/favicon.ico b/examples/example_web_apps/roastmywebsite-example-app/src/app/favicon.ico similarity index 100% rename from examples/roastmywebsite-example-app/src/app/favicon.ico rename to examples/example_web_apps/roastmywebsite-example-app/src/app/favicon.ico diff --git a/examples/roastmywebsite-example-app/src/app/globals.css b/examples/example_web_apps/roastmywebsite-example-app/src/app/globals.css similarity index 100% rename from examples/roastmywebsite-example-app/src/app/globals.css rename to examples/example_web_apps/roastmywebsite-example-app/src/app/globals.css diff --git a/examples/roastmywebsite-example-app/src/app/hooks/useGithubStars.ts b/examples/example_web_apps/roastmywebsite-example-app/src/app/hooks/useGithubStars.ts similarity index 100% rename from examples/roastmywebsite-example-app/src/app/hooks/useGithubStars.ts rename to examples/example_web_apps/roastmywebsite-example-app/src/app/hooks/useGithubStars.ts diff --git a/examples/roastmywebsite-example-app/src/app/layout.tsx b/examples/example_web_apps/roastmywebsite-example-app/src/app/layout.tsx similarity index 100% rename from examples/roastmywebsite-example-app/src/app/layout.tsx rename to examples/example_web_apps/roastmywebsite-example-app/src/app/layout.tsx diff --git a/examples/roastmywebsite-example-app/src/app/page.tsx b/examples/example_web_apps/roastmywebsite-example-app/src/app/page.tsx similarity index 100% rename from examples/roastmywebsite-example-app/src/app/page.tsx rename to examples/example_web_apps/roastmywebsite-example-app/src/app/page.tsx diff --git a/examples/roastmywebsite-example-app/src/components/github-button.tsx b/examples/example_web_apps/roastmywebsite-example-app/src/components/github-button.tsx similarity index 100% rename from examples/roastmywebsite-example-app/src/components/github-button.tsx rename to examples/example_web_apps/roastmywebsite-example-app/src/components/github-button.tsx diff --git a/examples/roastmywebsite-example-app/src/components/main.tsx b/examples/example_web_apps/roastmywebsite-example-app/src/components/main.tsx similarity index 100% rename from examples/roastmywebsite-example-app/src/components/main.tsx rename to examples/example_web_apps/roastmywebsite-example-app/src/components/main.tsx diff --git a/examples/roastmywebsite-example-app/src/components/ui/button.tsx b/examples/example_web_apps/roastmywebsite-example-app/src/components/ui/button.tsx similarity index 100% rename from examples/roastmywebsite-example-app/src/components/ui/button.tsx rename to examples/example_web_apps/roastmywebsite-example-app/src/components/ui/button.tsx diff --git a/examples/roastmywebsite-example-app/src/components/ui/dialog.tsx b/examples/example_web_apps/roastmywebsite-example-app/src/components/ui/dialog.tsx similarity index 100% rename from examples/roastmywebsite-example-app/src/components/ui/dialog.tsx rename to examples/example_web_apps/roastmywebsite-example-app/src/components/ui/dialog.tsx diff --git a/examples/roastmywebsite-example-app/src/components/ui/dropdown-menu.tsx b/examples/example_web_apps/roastmywebsite-example-app/src/components/ui/dropdown-menu.tsx similarity index 100% rename from examples/roastmywebsite-example-app/src/components/ui/dropdown-menu.tsx rename to examples/example_web_apps/roastmywebsite-example-app/src/components/ui/dropdown-menu.tsx diff --git a/examples/roastmywebsite-example-app/src/components/ui/input.tsx b/examples/example_web_apps/roastmywebsite-example-app/src/components/ui/input.tsx similarity index 100% rename from examples/roastmywebsite-example-app/src/components/ui/input.tsx rename to examples/example_web_apps/roastmywebsite-example-app/src/components/ui/input.tsx diff --git a/examples/roastmywebsite-example-app/src/components/ui/select.tsx b/examples/example_web_apps/roastmywebsite-example-app/src/components/ui/select.tsx similarity index 100% rename from examples/roastmywebsite-example-app/src/components/ui/select.tsx rename to examples/example_web_apps/roastmywebsite-example-app/src/components/ui/select.tsx diff --git a/examples/roastmywebsite-example-app/src/components/ui/sonner.tsx b/examples/example_web_apps/roastmywebsite-example-app/src/components/ui/sonner.tsx similarity index 100% rename from examples/roastmywebsite-example-app/src/components/ui/sonner.tsx rename to examples/example_web_apps/roastmywebsite-example-app/src/components/ui/sonner.tsx diff --git a/examples/roastmywebsite-example-app/src/components/ui/switch.tsx b/examples/example_web_apps/roastmywebsite-example-app/src/components/ui/switch.tsx similarity index 100% rename from examples/roastmywebsite-example-app/src/components/ui/switch.tsx rename to examples/example_web_apps/roastmywebsite-example-app/src/components/ui/switch.tsx diff --git a/examples/roastmywebsite-example-app/src/components/ui/textarea.tsx b/examples/example_web_apps/roastmywebsite-example-app/src/components/ui/textarea.tsx similarity index 100% rename from examples/roastmywebsite-example-app/src/components/ui/textarea.tsx rename to examples/example_web_apps/roastmywebsite-example-app/src/components/ui/textarea.tsx diff --git a/examples/roastmywebsite-example-app/src/lib/LLM/llm.ts b/examples/example_web_apps/roastmywebsite-example-app/src/lib/LLM/llm.ts similarity index 100% rename from examples/roastmywebsite-example-app/src/lib/LLM/llm.ts rename to examples/example_web_apps/roastmywebsite-example-app/src/lib/LLM/llm.ts diff --git a/examples/roastmywebsite-example-app/src/lib/LLM/testing_constants.ts b/examples/example_web_apps/roastmywebsite-example-app/src/lib/LLM/testing_constants.ts similarity index 100% rename from examples/roastmywebsite-example-app/src/lib/LLM/testing_constants.ts rename to examples/example_web_apps/roastmywebsite-example-app/src/lib/LLM/testing_constants.ts diff --git a/examples/roastmywebsite-example-app/src/lib/utils.ts b/examples/example_web_apps/roastmywebsite-example-app/src/lib/utils.ts similarity index 100% rename from examples/roastmywebsite-example-app/src/lib/utils.ts rename to examples/example_web_apps/roastmywebsite-example-app/src/lib/utils.ts diff --git a/examples/roastmywebsite-example-app/src/pages/api/roastWebsite.ts b/examples/example_web_apps/roastmywebsite-example-app/src/pages/api/roastWebsite.ts similarity index 100% rename from examples/roastmywebsite-example-app/src/pages/api/roastWebsite.ts rename to examples/example_web_apps/roastmywebsite-example-app/src/pages/api/roastWebsite.ts diff --git a/examples/roastmywebsite-example-app/tailwind.config.ts b/examples/example_web_apps/roastmywebsite-example-app/tailwind.config.ts similarity index 100% rename from examples/roastmywebsite-example-app/tailwind.config.ts rename to examples/example_web_apps/roastmywebsite-example-app/tailwind.config.ts diff --git a/examples/roastmywebsite-example-app/tsconfig.json b/examples/example_web_apps/roastmywebsite-example-app/tsconfig.json similarity index 100% rename from examples/roastmywebsite-example-app/tsconfig.json rename to examples/example_web_apps/roastmywebsite-example-app/tsconfig.json diff --git a/examples/kubernetes-cluster-install/README.md b/examples/kubernetes/cluster-install/README.md similarity index 100% rename from examples/kubernetes-cluster-install/README.md rename to examples/kubernetes/cluster-install/README.md diff --git a/examples/kubernetes-cluster-install/api.yaml b/examples/kubernetes/cluster-install/api.yaml similarity index 100% rename from examples/kubernetes-cluster-install/api.yaml rename to examples/kubernetes/cluster-install/api.yaml diff --git a/examples/kubernetes-cluster-install/configmap.yaml b/examples/kubernetes/cluster-install/configmap.yaml similarity index 100% rename from examples/kubernetes-cluster-install/configmap.yaml rename to examples/kubernetes/cluster-install/configmap.yaml diff --git a/examples/kubernetes-cluster-install/playwright-service.yaml b/examples/kubernetes/cluster-install/playwright-service.yaml similarity index 100% rename from examples/kubernetes-cluster-install/playwright-service.yaml rename to examples/kubernetes/cluster-install/playwright-service.yaml diff --git a/examples/kubernetes-cluster-install/redis.yaml b/examples/kubernetes/cluster-install/redis.yaml similarity index 100% rename from examples/kubernetes-cluster-install/redis.yaml rename to examples/kubernetes/cluster-install/redis.yaml diff --git a/examples/kubernetes-cluster-install/secret.yaml b/examples/kubernetes/cluster-install/secret.yaml similarity index 100% rename from examples/kubernetes-cluster-install/secret.yaml rename to examples/kubernetes/cluster-install/secret.yaml diff --git a/examples/kubernetes-cluster-install/worker.yaml b/examples/kubernetes/cluster-install/worker.yaml similarity index 100% rename from examples/kubernetes-cluster-install/worker.yaml rename to examples/kubernetes/cluster-install/worker.yaml diff --git a/examples/scrape_and_analyze_airbnb_data_e2b/.env.template b/examples/scrape_and_analyze_airbnb_data_e2b/.env.template new file mode 100644 index 00000000..68c80c95 --- /dev/null +++ b/examples/scrape_and_analyze_airbnb_data_e2b/.env.template @@ -0,0 +1,11 @@ +# TODO: Get your E2B API key from https://e2b.dev/docs +E2B_API_KEY="" + +# TODO: Get your Firecrawl API key from https://firecrawl.dev +FIRECRAWL_API_KEY="" + +# TODO: Get your Anthropic API key from https://anthropic.com +ANTHROPIC_API_KEY="" + + + diff --git a/examples/scrape_and_analyze_airbnb_data_e2b/.prettierignore b/examples/scrape_and_analyze_airbnb_data_e2b/.prettierignore new file mode 100644 index 00000000..8406c222 --- /dev/null +++ b/examples/scrape_and_analyze_airbnb_data_e2b/.prettierignore @@ -0,0 +1,2 @@ +# Ignore artifacts: +node_modules \ No newline at end of file diff --git a/examples/scrape_and_analyze_airbnb_data_e2b/README.md b/examples/scrape_and_analyze_airbnb_data_e2b/README.md new file mode 100644 index 00000000..f9d07bea --- /dev/null +++ b/examples/scrape_and_analyze_airbnb_data_e2b/README.md @@ -0,0 +1,31 @@ +# Scrape and Analyze Airbnb Data with Firecrawl and E2B + +This example demonstrates how to scrape Airbnb data and analyze it using [Firecrawl](https://www.firecrawl.dev/) and the [Code Interpreter SDK](https://github.com/e2b-dev/code-interpreter) from E2B. + +## Prerequisites + +- Node.js installed on your machine +- An E2B API key +- A Firecrawl API key +- A Anthropic API key + +## Setup & run + +### 1. Install dependencies + +``` +npm install +``` + +### 2. Set up `.env` + +1. Copy `.env.template` to `.env` +2. Get [E2B API key](https://e2b.dev/docs/getting-started/api-key) +3. Get [Firecrawl API key](https://firecrawl.dev) +4. Get [Anthropic API key](https://anthropic.com) + +### 3. Run the example + +``` +npm run start +``` \ No newline at end of file diff --git a/examples/scrape_and_analyze_airbnb_data_e2b/airbnb_listings.json b/examples/scrape_and_analyze_airbnb_data_e2b/airbnb_listings.json new file mode 100644 index 00000000..ccb33d37 --- /dev/null +++ b/examples/scrape_and_analyze_airbnb_data_e2b/airbnb_listings.json @@ -0,0 +1,453 @@ +[ + { + "title": "2br Victorian House with Breathtaking views", + "price_per_night": 356, + "location": "Potrero Hill", + "rating": 4.98, + "reviews": 184 + }, + { + "title": "543c - convenient cozy private bedroom for 1 person", + "price_per_night": 52, + "location": "Inner Richmond", + "rating": 4.72, + "reviews": 68 + }, + { + "title": "Clean Bright Airy Private Apt in the Heart of SF", + "price_per_night": 269, + "location": "Marina District", + "rating": 4.95, + "reviews": 239 + }, + { + "title": "Garden Suite by Golden Gate Park, Private Bathrm", + "price_per_night": 79, + "location": "Outer Richmond", + "rating": 4.82, + "reviews": 1113 + }, + { + "title": "#2 private bathroom next to The Ritz- Carlton", + "price_per_night": 98, + "location": "Union Square", + "rating": 4.96, + "reviews": 494 + }, + { + "title": "Central, cozy one-bedroom condo in San Francisco", + "price_per_night": 262, + "location": "San Francisco", + "rating": 4.98, + "reviews": 46 + }, + { + "title": "Large Light Filled Quiet Artist built 2BR Apt", + "price_per_night": 273, + "location": "Mission District", + "rating": 4.99, + "reviews": 132 + }, + { + "title": "Oceanside Getaway", + "price_per_night": 160, + "location": "Outer Sunset", + "rating": 4.93, + "reviews": 559 + }, + { + "title": "Perfect getaway near Japantown", + "price_per_night": 159, + "location": "Japantown", + "rating": 4.92, + "reviews": 515 + }, + { + "title": "Style & Comfort-Private Suite near UCSF and GGPark", + "price_per_night": 155, + "location": "Inner Sunset", + "rating": 4.98, + "reviews": 439 + }, + { + "title": "Central quiet Victorian Flat", + "price_per_night": 224, + "location": "San Francisco", + "rating": 5, + "reviews": 15 + }, + { + "title": "Palm Trees private room near Ocean Beach Zoo GGPK", + "price_per_night": 76, + "location": "San Francisco", + "rating": 4.95, + "reviews": 200 + }, + { + "title": "Spacious 1BR in the Mission w/ huge living room", + "price_per_night": 195, + "location": "San Francisco", + "rating": 5, + "reviews": 7 + }, + { + "title": "Modern Hilltop Studio - Private Entry and Garden", + "price_per_night": 230, + "location": "San Francisco", + "rating": 4.94, + "reviews": 196 + }, + { + "title": "Bright Modern Private Soma Studio Street Entrance", + "price_per_night": 125, + "location": "San Francisco", + "rating": 4.9, + "reviews": 214 + }, + { + "title": "Castro private room & bath VIEW (no cleaning fee)", + "price_per_night": 112, + "location": "San Francisco", + "rating": 4.94, + "reviews": 440 + }, + { + "title": "Nob Hill Studio", + "price_per_night": 148, + "location": "San Francisco", + "rating": 5, + "reviews": 42 + }, + { + "title": "Spacious and Sunny Noe Valley Gem!", + "price_per_night": 115, + "location": "San Francisco", + "rating": 5, + "reviews": 68 + }, + { + "title": "SF Ocean Beach In-law Suite", + "price_per_night": 162, + "location": "San Francisco", + "rating": 4.91, + "reviews": 646 + }, + { + "title": "Comfortable, cozy, private studio - Bernal Heights", + "price_per_night": 145, + "location": "San Francisco", + "rating": 4.9, + "reviews": 866 + }, + { + "title": "Casa Pinudo Queen Bed Room & City-View Roofdeck", + "price_per_night": 100, + "location": "San Francisco", + "rating": 4.87, + "reviews": 47 + }, + { + "title": "Bright bedroom in Victorian home", + "price_per_night": 114, + "location": "San Francisco", + "rating": 4.95, + "reviews": 183 + }, + { + "title": "#1 SF 24th ave& kirkham st Master king room", + "price_per_night": 104, + "location": "San Francisco", + "rating": 4.95, + "reviews": 59 + }, + { + "title": "Cheerful 1 bedroom", + "price_per_night": 137, + "location": "San Francisco", + "rating": 4.79, + "reviews": 111 + }, + { + "title": "Luxury Studio Near SFO, SFSU ,BART, Walk to shops!", + "price_per_night": 116, + "location": "San Francisco", + "rating": 4.96, + "reviews": 139 + }, + { + "title": "#4 SF Sunset 24th ave&kirkham st Deluxe king room", + "price_per_night": 104, + "location": "San Francisco", + "rating": 4.96, + "reviews": 74 + }, + { + "title": "Modern room & loft, private entrance", + "price_per_night": 78, + "location": "San Bruno", + "rating": 4.88, + "reviews": 868 + }, + { + "title": "1 Queen bedded room w/full bath", + "price_per_night": 117, + "location": "San Francisco", + "rating": 4.93, + "reviews": 120 + }, + { + "title": "Charming Noe Valley Garden Oasis", + "price_per_night": 249, + "location": "San Francisco", + "rating": 4.89, + "reviews": 199 + }, + { + "title": "Beautiful Garden Studio in heart of Nopa", + "price_per_night": 343, + "location": "San Francisco", + "rating": 4.76, + "reviews": 259 + }, + { + "title": "#4 SF Sunset 24th ave&kirkham st Deluxe king room", + "price_per_night": 175, + "location": "San Francisco", + "rating": 4.96, + "reviews": 74 + }, + { + "title": "Noteworthy Large Private Bedroom - Best Location", + "price_per_night": 159, + "location": "San Francisco", + "rating": 4.86, + "reviews": 63 + }, + { + "title": "Primary Suite Golden Gate Bridge view Private Deck", + "price_per_night": 317, + "location": "San Francisco", + "rating": 4.93, + "reviews": 445 + }, + { + "title": "Private Room: Escape to the Mission", + "price_per_night": 186, + "location": "San Francisco", + "rating": 4.72, + "reviews": 501 + }, + { + "title": "#1 SF 24th ave& kirkham st Master king room", + "price_per_night": 176, + "location": "San Francisco", + "rating": 4.95, + "reviews": 59 + }, + { + "title": "Private Suite", + "price_per_night": 154, + "location": "San Francisco", + "rating": 4.91, + "reviews": 77 + }, + { + "title": "501 Post road, San Francisco 94102", + "price_per_night": 267, + "location": "San Francisco" + }, + { + "title": "Most Desired Vacation Spot in San Francisco.", + "price_per_night": 650, + "location": "San Francisco", + "rating": 5, + "reviews": 78 + }, + { + "title": "The House Protects The Dreamer - 2BR/1BA Victorian", + "price_per_night": 376, + "location": "San Francisco", + "rating": 4.92, + "reviews": 179 + }, + { + "title": "Private Junior Room in Artist's Flat", + "price_per_night": 130, + "location": "San Francisco", + "rating": 4.7, + "reviews": 165 + }, + { + "title": "Serenity by the Park , Your Golden Gate Getaway", + "price_per_night": 238, + "location": "San Francisco", + "rating": 4.86, + "reviews": 21 + }, + { + "title": "Golden Getaway • Spacious Private Room 15m to SFO", + "price_per_night": 113, + "location": "San Francisco", + "rating": 4.91, + "reviews": 169 + }, + { + "title": "Modern studio next to beach, G.G Park & transport", + "price_per_night": 300, + "location": "San Francisco", + "rating": 4.87, + "reviews": 318 + }, + { + "title": "Affordable Cozy Private Room near San Francisco", + "price_per_night": 88, + "location": "San Francisco" + }, + { + "title": "Affordable Room w/ Great View in San Francisco", + "price_per_night": 134, + "location": "San Francisco", + "rating": 4.79, + "reviews": 121 + }, + { + "title": "Nob Hill Studio", + "price_per_night": 250, + "location": "San Francisco", + "rating": 5, + "reviews": 42 + }, + { + "title": "Cozy Sunset suite", + "price_per_night": 120, + "location": "San Francisco", + "rating": 4.66, + "reviews": 98 + }, + { + "title": "Stay with Dongmei", + "price_per_night": 48, + "location": "San Francisco", + "rating": 4.76, + "reviews": 343 + }, + { + "title": "Mediterranean style private studio", + "price_per_night": 139, + "location": "San Francisco", + "rating": 4.93, + "reviews": 489 + }, + { + "title": "Cozy Garden Unit with All Amenities", + "price_per_night": 122, + "location": "San Francisco", + "rating": 4.95, + "reviews": 446 + }, + { + "title": "Private Sunset Getaway", + "price_per_night": 88, + "location": "San Francisco", + "rating": 4.85, + "reviews": 26 + }, + { + "title": "Pacifica studio- ocean view from deck", + "price_per_night": 91, + "location": "Pacifica", + "rating": 4.76, + "reviews": 352 + }, + { + "title": "Sweet Suite w/ EV charger & Parking, 5 min to SFSU", + "price_per_night": 167, + "location": "San Francisco", + "rating": 4.96, + "reviews": 141 + }, + { + "title": "Light-Filled Hillside Studio Apartment", + "price_per_night": 128, + "location": "San Francisco", + "rating": 4.79, + "reviews": 148 + }, + { + "title": "Stay with Benoîte", + "price_per_night": 72, + "location": "San Francisco", + "rating": 4.87, + "reviews": 131 + }, + { + "title": "Serene King Suite with Jacuzzi & Fireplace", + "price_per_night": 225, + "location": "San Francisco", + "rating": 4.89, + "reviews": 18 + }, + { + "title": "Stay with Ryan", + "price_per_night": 225, + "location": "San Francisco", + "rating": 4.89, + "reviews": 18 + }, + { + "title": "Perfectly located Castro", + "price_per_night": 99, + "location": "San Francisco", + "rating": 4.93, + "reviews": 488 + }, + { + "title": "Sweet garden suite with free parking", + "price_per_night": 169, + "location": "San Francisco", + "rating": 4.99, + "reviews": 226 + }, + { + "title": "Bright+Modern Brand New Guest House-Great Location", + "price_per_night": 118, + "location": "South San Francisco", + "rating": 5, + "reviews": 37 + }, + { + "title": "Garden studio - Presidio, Baker Beach", + "price_per_night": 194, + "location": "San Francisco", + "rating": 4.91, + "reviews": 68 + }, + { + "title": "Single Small private 1br 1ba no clean fee!", + "price_per_night": 106, + "location": "San Francisco", + "rating": 4.78, + "reviews": 310 + }, + { + "title": "Private Cozy room 3", + "price_per_night": 53, + "location": "San Francisco", + "rating": 4.86, + "reviews": 332 + }, + { + "title": "Central Mission Potrero 1BED-1BATH", + "price_per_night": 164, + "location": "San Francisco", + "rating": 4.81, + "reviews": 324 + }, + { + "title": "Cozy Remodeled Suite in Oceanview With Parking", + "price_per_night": 151, + "location": "San Francisco", + "rating": 4.95, + "reviews": 310 + } +] diff --git a/examples/scrape_and_analyze_airbnb_data_e2b/airbnb_prices_chart.png b/examples/scrape_and_analyze_airbnb_data_e2b/airbnb_prices_chart.png new file mode 100644 index 00000000..66b94458 Binary files /dev/null and b/examples/scrape_and_analyze_airbnb_data_e2b/airbnb_prices_chart.png differ diff --git a/examples/scrape_and_analyze_airbnb_data_e2b/codeInterpreter.ts b/examples/scrape_and_analyze_airbnb_data_e2b/codeInterpreter.ts new file mode 100644 index 00000000..73adff52 --- /dev/null +++ b/examples/scrape_and_analyze_airbnb_data_e2b/codeInterpreter.ts @@ -0,0 +1,26 @@ +import { CodeInterpreter } from '@e2b/code-interpreter' + +export async function codeInterpret( + codeInterpreter: CodeInterpreter, + code: string +) { + console.log( + `\n${'='.repeat(50)}\n> Running following AI-generated code:\n${code}\n${'='.repeat(50)}` + ) + + const exec = await codeInterpreter.notebook.execCell(code, { + // You can stream logs from the code interpreter + // onStderr: (stderr: string) => console.log("\n[Code Interpreter stdout]", stderr), + // onStdout: (stdout: string) => console.log("\n[Code Interpreter stderr]", stdout), + // + // You can also stream additional results like charts, images, etc. + // onResult: ... + }) + + if (exec.error) { + console.log('[Code Interpreter error]', exec.error) // Runtime error + return undefined + } + + return exec +} diff --git a/examples/scrape_and_analyze_airbnb_data_e2b/index.ts b/examples/scrape_and_analyze_airbnb_data_e2b/index.ts new file mode 100644 index 00000000..7ebe7d72 --- /dev/null +++ b/examples/scrape_and_analyze_airbnb_data_e2b/index.ts @@ -0,0 +1,118 @@ +// @ts-ignore +import * as fs from 'fs' + +import 'dotenv/config' +import { CodeInterpreter, Execution } from '@e2b/code-interpreter' +import Anthropic from '@anthropic-ai/sdk' +import { Buffer } from 'buffer' + +import { MODEL_NAME, SYSTEM_PROMPT, tools } from './model' + +import { codeInterpret } from './codeInterpreter' +import { scrapeAirbnb } from './scraping' + +const anthropic = new Anthropic() + +async function chat( + codeInterpreter: CodeInterpreter, + userMessage: string +): Promise { + console.log('Waiting for Claude...') + + const msg = await anthropic.beta.tools.messages.create({ + model: MODEL_NAME, + system: SYSTEM_PROMPT, + max_tokens: 4096, + messages: [{ role: 'user', content: userMessage }], + tools, + }) + + console.log( + `\n${'='.repeat(50)}\nModel response: ${msg.content}\n${'='.repeat(50)}` + ) + console.log(msg) + + if (msg.stop_reason === 'tool_use') { + const toolBlock = msg.content.find((block) => block.type === 'tool_use') + // @ts-ignore + const toolName = toolBlock?.name ?? '' + // @ts-ignore + const toolInput = toolBlock?.input ?? '' + + console.log( + `\n${'='.repeat(50)}\nUsing tool: ${toolName}\n${'='.repeat(50)}` + ) + + if (toolName === 'execute_python') { + const code = toolInput.code + return codeInterpret(codeInterpreter, code) + } + return undefined + } +} + +async function run() { + // Load the Airbnb prices data from the JSON file + let data + const readDataFromFile = () => { + try { + return fs.readFileSync('airbnb_listings.json', 'utf8') + } catch (err) { + if (err.code === 'ENOENT') { + console.log('File not found, scraping data...') + return null + } else { + throw err + } + } + } + + const fetchData = async () => { + data = readDataFromFile() + if (!data || data.trim() === '[]') { + console.log('File is empty or contains an empty list, scraping data...') + data = await scrapeAirbnb() + } + } + + await fetchData() + + // Parse the JSON data + const prices = JSON.parse(data) + + // Convert prices array to a string representation of a Python list + const pricesList = JSON.stringify(prices) + + const userMessage = ` + Load the Airbnb prices data from the airbnb listing below and visualize the distribution of prices with a histogram. Listing data: ${pricesList} +` + + const codeInterpreter = await CodeInterpreter.create() + const codeOutput = await chat(codeInterpreter, userMessage) + if (!codeOutput) { + console.log('No code output') + return + } + + const logs = codeOutput.logs + console.log(logs) + + if (codeOutput.results.length == 0) { + console.log('No results') + return + } + + const firstResult = codeOutput.results[0] + console.log(firstResult.text) + + if (firstResult.png) { + const pngData = Buffer.from(firstResult.png, 'base64') + const filename = 'airbnb_prices_chart.png' + fs.writeFileSync(filename, pngData) + console.log(`✅ Saved chart to ${filename}`) + } + + await codeInterpreter.close() +} + +run() diff --git a/examples/scrape_and_analyze_airbnb_data_e2b/model.ts b/examples/scrape_and_analyze_airbnb_data_e2b/model.ts new file mode 100644 index 00000000..19f6350f --- /dev/null +++ b/examples/scrape_and_analyze_airbnb_data_e2b/model.ts @@ -0,0 +1,33 @@ +import { Tool } from '@anthropic-ai/sdk/src/resources/beta/tools' + +export const MODEL_NAME = 'claude-3-opus-20240229' + +export const SYSTEM_PROMPT = ` +## your job & context +you are a python data scientist. you are given tasks to complete and you run python code to solve them. +- the python code runs in jupyter notebook. +- every time you call \`execute_python\` tool, the python code is executed in a separate cell. it's okay to multiple calls to \`execute_python\`. +- display visualizations using matplotlib or any other visualization library directly in the notebook. don't worry about saving the visualizations to a file. +- you have access to the internet and can make api requests. +- you also have access to the filesystem and can read/write files. +- you can install any pip package (if it exists) if you need to but the usual packages for data analysis are already preinstalled. +- you can run any python code you want, everything is running in a secure sandbox environment. +` + +export const tools: Tool[] = [ + { + name: 'execute_python', + description: + 'Execute python code in a Jupyter notebook cell and returns any result, stdout, stderr, display_data, and error.', + input_schema: { + type: 'object', + properties: { + code: { + type: 'string', + description: 'The python code to execute in a single cell.', + }, + }, + required: ['code'], + }, + }, +] diff --git a/examples/scrape_and_analyze_airbnb_data_e2b/package-lock.json b/examples/scrape_and_analyze_airbnb_data_e2b/package-lock.json new file mode 100644 index 00000000..93f5681c --- /dev/null +++ b/examples/scrape_and_analyze_airbnb_data_e2b/package-lock.json @@ -0,0 +1,1035 @@ +{ + "name": "hello-world", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "hello-world", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@anthropic-ai/sdk": "^0.20.7", + "@e2b/code-interpreter": "^0.0.2", + "@mendable/firecrawl-js": "^0.0.21", + "buffer": "^6.0.3", + "dotenv": "^16.4.5" + }, + "devDependencies": { + "@types/node": "^20.12.12", + "prettier": "3.2.5", + "tsx": "^4.7.3", + "typescript": "^5.4.5" + } + }, + "node_modules/@anthropic-ai/sdk": { + "version": "0.20.9", + "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.20.9.tgz", + "integrity": "sha512-Lq74+DhiEQO6F9/gdVOLmHx57pX45ebK2Q/zH14xYe1157a7QeUVknRqIp0Jz5gQI01o7NKbuv9Dag2uQsLjDg==", + "dependencies": { + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7", + "web-streams-polyfill": "^3.2.1" + } + }, + "node_modules/@anthropic-ai/sdk/node_modules/@types/node": { + "version": "18.19.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.33.tgz", + "integrity": "sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@e2b/code-interpreter": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@e2b/code-interpreter/-/code-interpreter-0.0.2.tgz", + "integrity": "sha512-hEXSV1Sgg04Yr9/HH2Lt41IlvOSoQtzLBQ+x9pv88o0/sHWKHwy+2j0Jw91DEZ/OiNJvKjAnw1n1HWhlUqfPfQ==", + "dependencies": { + "e2b": "^0.13.1", + "isomorphic-ws": "^5.0.0", + "ws": "^8.15.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@mendable/firecrawl-js": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@mendable/firecrawl-js/-/firecrawl-js-0.0.21.tgz", + "integrity": "sha512-0geMb1CilorUowVugcVWZeM2a4PCH/iAxCbqPDpt66tEQ40r9217r7U1g3BRHnF/KDA6NvHM7wNIw/HqtUc6uw==", + "dependencies": { + "axios": "^1.6.8", + "zod": "^3.23.8", + "zod-to-json-schema": "^3.23.0" + } + }, + "node_modules/@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", + "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/bufferutil": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", + "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/e2b": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/e2b/-/e2b-0.13.2.tgz", + "integrity": "sha512-j7odssVvVCmLGWQ4gxP5EeoKyDUSA/AMUHdOJZvUNV2ziNr7LYsdUlVRgV021841PyaeZuBOMzsV3SW5bujH7Q==", + "dependencies": { + "isomorphic-ws": "^5.0.0", + "normalize-path": "^3.0.0", + "openapi-typescript-fetch": "^1.1.3", + "path-browserify": "^1.0.1", + "platform": "^1.3.6", + "ws": "^8.15.1" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "bufferutil": "^4.0.8", + "utf-8-validate": "^6.0.3" + }, + "peerDependencies": { + "openai": "^4.17.4" + } + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data-encoder": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", + "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==" + }, + "node_modules/formdata-node": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", + "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "dependencies": { + "node-domexception": "1.0.0", + "web-streams-polyfill": "4.0.0-beta.3" + }, + "engines": { + "node": ">= 12.20" + } + }, + "node_modules/formdata-node/node_modules/web-streams-polyfill": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", + "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/isomorphic-ws": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/openai": { + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.47.1.tgz", + "integrity": "sha512-WWSxhC/69ZhYWxH/OBsLEirIjUcfpQ5+ihkXKp06hmeYXgBBIUCa9IptMzYx6NdkiOCsSGYCnTIsxaic3AjRCQ==", + "peer": true, + "dependencies": { + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7", + "web-streams-polyfill": "^3.2.1" + }, + "bin": { + "openai": "bin/cli" + } + }, + "node_modules/openai/node_modules/@types/node": { + "version": "18.19.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.33.tgz", + "integrity": "sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==", + "peer": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/openapi-typescript-fetch": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/openapi-typescript-fetch/-/openapi-typescript-fetch-1.1.3.tgz", + "integrity": "sha512-smLZPck4OkKMNExcw8jMgrMOGgVGx2N/s6DbKL2ftNl77g5HfoGpZGFy79RBzU/EkaO0OZpwBnslfdBfh7ZcWg==", + "engines": { + "node": ">= 12.0.0", + "npm": ">= 7.0.0" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tsx": { + "version": "4.10.5", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.10.5.tgz", + "integrity": "sha512-twDSbf7Gtea4I2copqovUiNTEDrT8XNFXsuHpfGbdpW/z9ZW4fTghzzhAG0WfrCuJmJiOEY1nLIjq4u3oujRWQ==", + "dev": true, + "dependencies": { + "esbuild": "~0.20.2", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/utf-8-validate": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-6.0.4.tgz", + "integrity": "sha512-xu9GQDeFp+eZ6LnCywXN/zBancWvOpUMzgjLPSjy4BRHSmTelvn2E0DG0o1sTiw5hkCKBHo8rwSKncfRfv2EEQ==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/ws": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.23.0.tgz", + "integrity": "sha512-az0uJ243PxsRIa2x1WmNE/pnuA05gUq/JB8Lwe1EDCCL/Fz9MgjYQ0fPlyc2Tcv6aF2ZA7WM5TWaRZVEFaAIag==", + "peerDependencies": { + "zod": "^3.23.3" + } + } + } +} diff --git a/examples/scrape_and_analyze_airbnb_data_e2b/package.json b/examples/scrape_and_analyze_airbnb_data_e2b/package.json new file mode 100644 index 00000000..b4098d54 --- /dev/null +++ b/examples/scrape_and_analyze_airbnb_data_e2b/package.json @@ -0,0 +1,26 @@ +{ + "name": "hello-world", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "start": "tsx index.ts", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@types/node": "^20.12.12", + "prettier": "3.2.5", + "tsx": "^4.7.3", + "typescript": "^5.4.5" + }, + "dependencies": { + "@anthropic-ai/sdk": "^0.20.7", + "@e2b/code-interpreter": "^0.0.2", + "@mendable/firecrawl-js": "^0.0.21", + "buffer": "^6.0.3", + "dotenv": "^16.4.5" + } +} diff --git a/examples/scrape_and_analyze_airbnb_data_e2b/prettier.config.mjs b/examples/scrape_and_analyze_airbnb_data_e2b/prettier.config.mjs new file mode 100644 index 00000000..2c27acda --- /dev/null +++ b/examples/scrape_and_analyze_airbnb_data_e2b/prettier.config.mjs @@ -0,0 +1,11 @@ +// prettier.config.js, .prettierrc.js, prettier.config.mjs, or .prettierrc.mjs + +/** @type {import("prettier").Config} */ +const config = { + trailingComma: 'es5', + tabWidth: 2, + semi: false, + singleQuote: true, +} + +export default config diff --git a/examples/scrape_and_analyze_airbnb_data_e2b/scraping.ts b/examples/scrape_and_analyze_airbnb_data_e2b/scraping.ts new file mode 100644 index 00000000..9c1ab6fa --- /dev/null +++ b/examples/scrape_and_analyze_airbnb_data_e2b/scraping.ts @@ -0,0 +1,98 @@ +//@ts-ignore +import * as fs from 'fs' +import FirecrawlApp from '@mendable/firecrawl-js' +import 'dotenv/config' +import { config } from 'dotenv' +import { z } from 'zod' + +config() + +export async function scrapeAirbnb() { + try { + // Initialize the FirecrawlApp with your API key + const app = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY }) + + // Define the URL to crawl + const listingsUrl = + 'https://www.airbnb.com/s/San-Francisco--CA--United-States/homes' + + const baseUrl = 'https://www.airbnb.com' + // Define schema to extract pagination links + const paginationSchema = z.object({ + page_links: z + .array( + z.object({ + link: z.string(), + }) + ) + .describe('Pagination links in the bottom of the page.'), + }) + + const params2 = { + pageOptions: { + onlyMainContent: false, + }, + extractorOptions: { extractionSchema: paginationSchema }, + timeout: 50000, // if needed, sometimes airbnb stalls... + } + + // Start crawling to get pagination links + const linksData = await app.scrapeUrl(listingsUrl, params2) + console.log(linksData.data['llm_extraction']) + + let paginationLinks = linksData.data['llm_extraction'].page_links.map( + (link) => baseUrl + link.link + ) + + // Just in case is not able to get the pagination links + if (paginationLinks.length === 0) { + paginationLinks = [listingsUrl] + } + + // Define schema to extract listings + const schema = z.object({ + listings: z + .array( + z.object({ + title: z.string(), + price_per_night: z.number(), + location: z.string(), + rating: z.number().optional(), + reviews: z.number().optional(), + }) + ) + .describe('Airbnb listings in San Francisco'), + }) + + const params = { + pageOptions: { + onlyMainContent: false, + }, + extractorOptions: { extractionSchema: schema }, + } + + // Function to scrape a single URL + const scrapeListings = async (url) => { + const result = await app.scrapeUrl(url, params) + return result.data['llm_extraction'].listings + } + + // Scrape all pagination links in parallel + const listingsPromises = paginationLinks.map((link) => scrapeListings(link)) + const listingsResults = await Promise.all(listingsPromises) + + // Flatten the results + const allListings = listingsResults.flat() + + // Save the listings to a file + fs.writeFileSync( + 'airbnb_listings.json', + JSON.stringify(allListings, null, 2) + ) + // Read the listings from the file + const listingsData = fs.readFileSync('airbnb_listings.json', 'utf8') + return listingsData + } catch (error) { + console.error('An error occurred:', error.message) + } +} diff --git a/examples/visualize_website_topics_e2b/claude-visualize-website-topics.ipynb b/examples/visualize_website_topics_e2b/claude-visualize-website-topics.ipynb new file mode 100644 index 00000000..a96c4c8c --- /dev/null +++ b/examples/visualize_website_topics_e2b/claude-visualize-website-topics.ipynb @@ -0,0 +1,277 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Visualizing Website Topics (Claude + Firecrawl + E2B)\n", + "\n", + "**Powered by [Claude 3.5 Sonnet](https://www.anthropic.com/news/claude-3-5-sonnet), [Firecrawl](https://www.firecrawl.dev/), and [Code Interpreter SDK](https://github.com/e2b-dev/code-interpreter) by [E2B](https://e2b.dev/docs)**\n", + "\n", + "Scrape a website with Firecrawl and then plot the most common topics using Claude and Code Interpreter\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%pip install e2b_code_interpreter anthropic firecrawl-py " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import datetime\n", + "import time\n", + "from firecrawl import FirecrawlApp\n", + "import json\n", + "\n", + "# TODO: Get your Anthropic API key from https://anthropic.com\n", + "anthropic_api_key = \"your-anthropic-api-key\"\n", + "# TODO: Get your Firecrawl API key from https://www.firecrawl.dev\n", + "firecrawl_api_key = \"your-firecrawl-api-key\"\n", + "# TODO: Get your E2B API key from https://e2b.dev/docs\n", + "e2b_api_key = \"your-e2b-api-key\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[{'content': '[Skip to main content](#__docusaurus_skipToContent_fallback)\\n\\nLangChain 0.2 is out! Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchain/discussions/21716)\\n. You can view the v0.1 docs [here](/v0.1/docs/get_started/introduction/)\\n.\\n\\n[![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark.png)![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark-dark.png)](/v0.2/)\\n[Integrations](/v0.2/docs/integrations/platforms/)\\n[API Reference](https://api.python.langchain.com)\\n\\n[More](#)\\n\\n* [People](/v0.2/docs/people/)\\n \\n* [Contributing](/v0.2/docs/contributing/)\\n \\n* [Templates](/v0.2/docs/templates/)\\n \\n* [Cookbooks](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)\\n \\n* [3rd party tutorials](/v0.2/docs/additional_resources/tutorials/)\\n \\n* [YouTube](/v0.2/docs/additional_resources/youtube/)\\n \\n* [arXiv](/v0.2/docs/additional_resources/arxiv_references/)\\n \\n\\n[v0.2](#)\\n\\n* [v0.2](/v0.2/docs/introduction/)\\n \\n* [v0.1](https://python.langchain.com/v0.1/docs/get_started/introduction)\\n \\n\\n[🦜️🔗](#)\\n\\n* [LangSmith](https://smith.langchain.com)\\n \\n* [LangSmith Docs](https://docs.smith.langchain.com/)\\n \\n* [LangServe GitHub](https://github.com/langchain-ai/langserve)\\n \\n* [Templates GitHub](https://github.com/langchain-ai/langchain/tree/master/templates)\\n \\n* [Templates Hub](https://templates.langchain.com)\\n \\n* [LangChain Hub](https://smith.langchain.com/hub)\\n \\n* [JS/TS Docs](https://js.langchain.com)\\n \\n\\n[💬](https://chat.langchain.com)\\n[](https://github.com/langchain-ai/langchain)\\n\\nSearch\\n\\nOn this page\\n\\narXiv\\n=====\\n\\nLangChain implements the latest research in the field of Natural Language Processing. This page contains `arXiv` papers referenced in the LangChain Documentation, API Reference, Templates, and Cookbooks.\\n\\nFrom the opposite direction, scientists use LangChain in research and reference LangChain in the research papers. Here you find [such papers](https://arxiv.org/search/?query=langchain&searchtype=all&source=header)\\n.\\n\\nSummary[\\u200b](#summary \"Direct link to Summary\")\\n\\n----------------------------------------------\\n\\n| arXiv id / Title | Authors | Published date 🔻 | LangChain Documentation |\\n| --- | --- | --- | --- |\\n| `2402.03620v1` [Self-Discover: Large Language Models Self-Compose Reasoning Structures](http://arxiv.org/abs/2402.03620v1) | Pei Zhou, Jay Pujara, Xiang Ren, et al. | 2024-02-06 | `Cookbook:` [self-discover](https://github.com/langchain-ai/langchain/blob/master/cookbook/self-discover.ipynb) |\\n| `2401.18059v1` [RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval](http://arxiv.org/abs/2401.18059v1) | Parth Sarthi, Salman Abdullah, Aditi Tuli, et al. | 2024-01-31 | `Cookbook:` [RAPTOR](https://github.com/langchain-ai/langchain/blob/master/cookbook/RAPTOR.ipynb) |\\n| `2401.15884v2` [Corrective Retrieval Augmented Generation](http://arxiv.org/abs/2401.15884v2) | Shi-Qi Yan, Jia-Chen Gu, Yun Zhu, et al. | 2024-01-29 | `Cookbook:` [langgraph\\\\_crag](https://github.com/langchain-ai/langchain/blob/master/cookbook/langgraph_crag.ipynb) |\\n| `2401.04088v1` [Mixtral of Experts](http://arxiv.org/abs/2401.04088v1) | Albert Q. Jiang, Alexandre Sablayrolles, Antoine Roux, et al. | 2024-01-08 | `Cookbook:` [together\\\\_ai](https://github.com/langchain-ai/langchain/blob/master/cookbook/together_ai.ipynb) |\\n| `2312.06648v2` [Dense X Retrieval: What Retrieval Granularity Should We Use?](http://arxiv.org/abs/2312.06648v2) | Tong Chen, Hongwei Wang, Sihao Chen, et al. | 2023-12-11 | `Template:` [propositional-retrieval](https://python.langchain.com/docs/templates/propositional-retrieval) |\\n| `2311.09210v1` [Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models](http://arxiv.org/abs/2311.09210v1) | Wenhao Yu, Hongming Zhang, Xiaoman Pan, et al. | 2023-11-15 | `Template:` [chain-of-note-wiki](https://python.langchain.com/docs/templates/chain-of-note-wiki) |\\n| `2310.11511v1` [Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection](http://arxiv.org/abs/2310.11511v1) | Akari Asai, Zeqiu Wu, Yizhong Wang, et al. | 2023-10-17 | `Cookbook:` [langgraph\\\\_self\\\\_rag](https://github.com/langchain-ai/langchain/blob/master/cookbook/langgraph_self_rag.ipynb) |\\n| `2310.06117v2` [Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models](http://arxiv.org/abs/2310.06117v2) | Huaixiu Steven Zheng, Swaroop Mishra, Xinyun Chen, et al. | 2023-10-09 | `Template:` [stepback-qa-prompting](https://python.langchain.com/docs/templates/stepback-qa-prompting)
, `Cookbook:` [stepback-qa](https://github.com/langchain-ai/langchain/blob/master/cookbook/stepback-qa.ipynb) |\\n| `2307.09288v2` [Llama 2: Open Foundation and Fine-Tuned Chat Models](http://arxiv.org/abs/2307.09288v2) | Hugo Touvron, Louis Martin, Kevin Stone, et al. | 2023-07-18 | `Cookbook:` [Semi\\\\_Structured\\\\_RAG](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_Structured_RAG.ipynb) |\\n| `2305.14283v3` [Query Rewriting for Retrieval-Augmented Large Language Models](http://arxiv.org/abs/2305.14283v3) | Xinbei Ma, Yeyun Gong, Pengcheng He, et al. | 2023-05-23 | `Template:` [rewrite-retrieve-read](https://python.langchain.com/docs/templates/rewrite-retrieve-read)
, `Cookbook:` [rewrite](https://github.com/langchain-ai/langchain/blob/master/cookbook/rewrite.ipynb) |\\n| `2305.08291v1` [Large Language Model Guided Tree-of-Thought](http://arxiv.org/abs/2305.08291v1) | Jieyi Long | 2023-05-15 | `API:` [langchain\\\\_experimental.tot](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.tot)
, `Cookbook:` [tree\\\\_of\\\\_thought](https://github.com/langchain-ai/langchain/blob/master/cookbook/tree_of_thought.ipynb) |\\n| `2305.04091v3` [Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models](http://arxiv.org/abs/2305.04091v3) | Lei Wang, Wanyu Xu, Yihuai Lan, et al. | 2023-05-06 | `Cookbook:` [plan\\\\_and\\\\_execute\\\\_agent](https://github.com/langchain-ai/langchain/blob/master/cookbook/plan_and_execute_agent.ipynb) |\\n| `2304.08485v2` [Visual Instruction Tuning](http://arxiv.org/abs/2304.08485v2) | Haotian Liu, Chunyuan Li, Qingyang Wu, et al. | 2023-04-17 | `Cookbook:` [Semi\\\\_structured\\\\_and\\\\_multi\\\\_modal\\\\_RAG](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_and_multi_modal_RAG.ipynb)
, [Semi\\\\_structured\\\\_multi\\\\_modal\\\\_RAG\\\\_LLaMA2](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_multi_modal_RAG_LLaMA2.ipynb) |\\n| `2304.03442v2` [Generative Agents: Interactive Simulacra of Human Behavior](http://arxiv.org/abs/2304.03442v2) | Joon Sung Park, Joseph C. O\\'Brien, Carrie J. Cai, et al. | 2023-04-07 | `Cookbook:` [multiagent\\\\_bidding](https://github.com/langchain-ai/langchain/blob/master/cookbook/multiagent_bidding.ipynb)
, [generative\\\\_agents\\\\_interactive\\\\_simulacra\\\\_of\\\\_human\\\\_behavior](https://github.com/langchain-ai/langchain/blob/master/cookbook/generative_agents_interactive_simulacra_of_human_behavior.ipynb) |\\n| `2303.17760v2` [CAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society](http://arxiv.org/abs/2303.17760v2) | Guohao Li, Hasan Abed Al Kader Hammoud, Hani Itani, et al. | 2023-03-31 | `Cookbook:` [camel\\\\_role\\\\_playing](https://github.com/langchain-ai/langchain/blob/master/cookbook/camel_role_playing.ipynb) |\\n| `2303.17580v4` [HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face](http://arxiv.org/abs/2303.17580v4) | Yongliang Shen, Kaitao Song, Xu Tan, et al. | 2023-03-30 | `API:` [langchain\\\\_experimental.autonomous\\\\_agents](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.autonomous_agents)
, `Cookbook:` [hugginggpt](https://github.com/langchain-ai/langchain/blob/master/cookbook/hugginggpt.ipynb) |\\n| `2303.08774v6` [GPT-4 Technical Report](http://arxiv.org/abs/2303.08774v6) | OpenAI, Josh Achiam, Steven Adler, et al. | 2023-03-15 | `Docs:` [docs/integrations/vectorstores/mongodb\\\\_atlas](https://python.langchain.com/docs/integrations/vectorstores/mongodb_atlas) |\\n| `2301.10226v4` [A Watermark for Large Language Models](http://arxiv.org/abs/2301.10226v4) | John Kirchenbauer, Jonas Geiping, Yuxin Wen, et al. | 2023-01-24 | `API:` [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_community...OCIModelDeploymentTGI](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.oci_data_science_model_deployment_endpoint.OCIModelDeploymentTGI.html#langchain_community.llms.oci_data_science_model_deployment_endpoint.OCIModelDeploymentTGI)
, [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference) |\\n| `2212.10496v1` [Precise Zero-Shot Dense Retrieval without Relevance Labels](http://arxiv.org/abs/2212.10496v1) | Luyu Gao, Xueguang Ma, Jimmy Lin, et al. | 2022-12-20 | `API:` [langchain...HypotheticalDocumentEmbedder](https://api.python.langchain.com/en/latest/chains/langchain.chains.hyde.base.HypotheticalDocumentEmbedder.html#langchain.chains.hyde.base.HypotheticalDocumentEmbedder)
, `Template:` [hyde](https://python.langchain.com/docs/templates/hyde)
, `Cookbook:` [hypothetical\\\\_document\\\\_embeddings](https://github.com/langchain-ai/langchain/blob/master/cookbook/hypothetical_document_embeddings.ipynb) |\\n| `2212.07425v3` [Robust and Explainable Identification of Logical Fallacies in Natural Language Arguments](http://arxiv.org/abs/2212.07425v3) | Zhivar Sourati, Vishnu Priya Prasanna Venkatesh, Darshan Deshpande, et al. | 2022-12-12 | `API:` [langchain\\\\_experimental.fallacy\\\\_removal](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.fallacy_removal) |\\n| `2211.13892v2` [Complementary Explanations for Effective In-Context Learning](http://arxiv.org/abs/2211.13892v2) | Xi Ye, Srinivasan Iyer, Asli Celikyilmaz, et al. | 2022-11-25 | `API:` [langchain\\\\_core...MaxMarginalRelevanceExampleSelector](https://api.python.langchain.com/en/latest/example_selectors/langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector.html#langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector) |\\n| `2211.10435v2` [PAL: Program-aided Language Models](http://arxiv.org/abs/2211.10435v2) | Luyu Gao, Aman Madaan, Shuyan Zhou, et al. | 2022-11-18 | `API:` [langchain\\\\_experimental...PALChain](https://api.python.langchain.com/en/latest/pal_chain/langchain_experimental.pal_chain.base.PALChain.html#langchain_experimental.pal_chain.base.PALChain)
, [langchain\\\\_experimental.pal\\\\_chain](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.pal_chain)
, `Cookbook:` [program\\\\_aided\\\\_language\\\\_model](https://github.com/langchain-ai/langchain/blob/master/cookbook/program_aided_language_model.ipynb) |\\n| `2210.03629v3` [ReAct: Synergizing Reasoning and Acting in Language Models](http://arxiv.org/abs/2210.03629v3) | Shunyu Yao, Jeffrey Zhao, Dian Yu, et al. | 2022-10-06 | `Docs:` [docs/integrations/providers/cohere](https://python.langchain.com/docs/integrations/providers/cohere)
, [docs/integrations/chat/huggingface](https://python.langchain.com/docs/integrations/chat/huggingface)
, [docs/integrations/tools/ionic\\\\_shopping](https://python.langchain.com/docs/integrations/tools/ionic_shopping)
, `API:` [langchain...create\\\\_react\\\\_agent](https://api.python.langchain.com/en/latest/agents/langchain.agents.react.agent.create_react_agent.html#langchain.agents.react.agent.create_react_agent)
, [langchain...TrajectoryEvalChain](https://api.python.langchain.com/en/latest/evaluation/langchain.evaluation.agents.trajectory_eval_chain.TrajectoryEvalChain.html#langchain.evaluation.agents.trajectory_eval_chain.TrajectoryEvalChain) |\\n| `2209.10785v2` [Deep Lake: a Lakehouse for Deep Learning](http://arxiv.org/abs/2209.10785v2) | Sasun Hambardzumyan, Abhinav Tuli, Levon Ghukasyan, et al. | 2022-09-22 | `Docs:` [docs/integrations/providers/activeloop\\\\_deeplake](https://python.langchain.com/docs/integrations/providers/activeloop_deeplake) |\\n| `2205.12654v1` [Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages](http://arxiv.org/abs/2205.12654v1) | Kevin Heffernan, Onur Çelebi, Holger Schwenk | 2022-05-25 | `API:` [langchain\\\\_community...LaserEmbeddings](https://api.python.langchain.com/en/latest/embeddings/langchain_community.embeddings.laser.LaserEmbeddings.html#langchain_community.embeddings.laser.LaserEmbeddings) |\\n| `2204.00498v1` [Evaluating the Text-to-SQL Capabilities of Large Language Models](http://arxiv.org/abs/2204.00498v1) | Nitarshan Rajkumar, Raymond Li, Dzmitry Bahdanau | 2022-03-15 | `API:` [langchain\\\\_community...SparkSQL](https://api.python.langchain.com/en/latest/utilities/langchain_community.utilities.spark_sql.SparkSQL.html#langchain_community.utilities.spark_sql.SparkSQL)
, [langchain\\\\_community...SQLDatabase](https://api.python.langchain.com/en/latest/utilities/langchain_community.utilities.sql_database.SQLDatabase.html#langchain_community.utilities.sql_database.SQLDatabase) |\\n| `2202.00666v5` [Locally Typical Sampling](http://arxiv.org/abs/2202.00666v5) | Clara Meister, Tiago Pimentel, Gian Wiher, et al. | 2022-02-01 | `API:` [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference) |\\n| `2103.00020v1` [Learning Transferable Visual Models From Natural Language Supervision](http://arxiv.org/abs/2103.00020v1) | Alec Radford, Jong Wook Kim, Chris Hallacy, et al. | 2021-02-26 | `API:` [langchain\\\\_experimental.open\\\\_clip](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.open_clip) |\\n| `1909.05858v2` [CTRL: A Conditional Transformer Language Model for Controllable Generation](http://arxiv.org/abs/1909.05858v2) | Nitish Shirish Keskar, Bryan McCann, Lav R. Varshney, et al. | 2019-09-11 | `API:` [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference) |\\n| `1908.10084v1` [Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks](http://arxiv.org/abs/1908.10084v1) | Nils Reimers, Iryna Gurevych | 2019-08-27 | `Docs:` [docs/integrations/text\\\\_embedding/sentence\\\\_transformers](https://python.langchain.com/docs/integrations/text_embedding/sentence_transformers) |\\n\\nSelf-Discover: Large Language Models Self-Compose Reasoning Structures[\\u200b](#self-discover-large-language-models-self-compose-reasoning-structures \"Direct link to Self-Discover: Large Language Models Self-Compose Reasoning Structures\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2402.03620v1\\n \\n* **Title:** Self-Discover: Large Language Models Self-Compose Reasoning Structures\\n \\n* **Authors:** Pei Zhou, Jay Pujara, Xiang Ren, et al.\\n \\n* **Published Date:** 2024-02-06\\n \\n* **URL:** [http://arxiv.org/abs/2402.03620v1](http://arxiv.org/abs/2402.03620v1)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [self-discover](https://github.com/langchain-ai/langchain/blob/master/cookbook/self-discover.ipynb)\\n \\n\\n**Abstract:** We introduce SELF-DISCOVER, a general framework for LLMs to self-discover the task-intrinsic reasoning structures to tackle complex reasoning problems that are challenging for typical prompting methods. Core to the framework is a self-discovery process where LLMs select multiple atomic reasoning modules such as critical thinking and step-by-step thinking, and compose them into an explicit reasoning structure for LLMs to follow during decoding. SELF-DISCOVER substantially improves GPT-4 and PaLM 2\\'s performance on challenging reasoning benchmarks such as BigBench-Hard, grounded agent reasoning, and MATH, by as much as 32% compared to Chain of Thought (CoT). Furthermore, SELF-DISCOVER outperforms inference-intensive methods such as CoT-Self-Consistency by more than 20%, while requiring 10-40x fewer inference compute. Finally, we show that the self-discovered reasoning structures are universally applicable across model families: from PaLM 2-L to GPT-4, and from GPT-4 to Llama2, and share commonalities with human reasoning patterns.\\n\\nRAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval[\\u200b](#raptor-recursive-abstractive-processing-for-tree-organized-retrieval \"Direct link to RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval\")\\n\\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2401.18059v1\\n \\n* **Title:** RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval\\n \\n* **Authors:** Parth Sarthi, Salman Abdullah, Aditi Tuli, et al.\\n \\n* **Published Date:** 2024-01-31\\n \\n* **URL:** [http://arxiv.org/abs/2401.18059v1](http://arxiv.org/abs/2401.18059v1)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [RAPTOR](https://github.com/langchain-ai/langchain/blob/master/cookbook/RAPTOR.ipynb)\\n \\n\\n**Abstract:** Retrieval-augmented language models can better adapt to changes in world state and incorporate long-tail knowledge. However, most existing methods retrieve only short contiguous chunks from a retrieval corpus, limiting holistic understanding of the overall document context. We introduce the novel approach of recursively embedding, clustering, and summarizing chunks of text, constructing a tree with differing levels of summarization from the bottom up. At inference time, our RAPTOR model retrieves from this tree, integrating information across lengthy documents at different levels of abstraction. Controlled experiments show that retrieval with recursive summaries offers significant improvements over traditional retrieval-augmented LMs on several tasks. On question-answering tasks that involve complex, multi-step reasoning, we show state-of-the-art results; for example, by coupling RAPTOR retrieval with the use of GPT-4, we can improve the best performance on the QuALITY benchmark by 20% in absolute accuracy.\\n\\nCorrective Retrieval Augmented Generation[\\u200b](#corrective-retrieval-augmented-generation \"Direct link to Corrective Retrieval Augmented Generation\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2401.15884v2\\n \\n* **Title:** Corrective Retrieval Augmented Generation\\n \\n* **Authors:** Shi-Qi Yan, Jia-Chen Gu, Yun Zhu, et al.\\n \\n* **Published Date:** 2024-01-29\\n \\n* **URL:** [http://arxiv.org/abs/2401.15884v2](http://arxiv.org/abs/2401.15884v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [langgraph\\\\_crag](https://github.com/langchain-ai/langchain/blob/master/cookbook/langgraph_crag.ipynb)\\n \\n\\n**Abstract:** Large language models (LLMs) inevitably exhibit hallucinations since the accuracy of generated texts cannot be secured solely by the parametric knowledge they encapsulate. Although retrieval-augmented generation (RAG) is a practicable complement to LLMs, it relies heavily on the relevance of retrieved documents, raising concerns about how the model behaves if retrieval goes wrong. To this end, we propose the Corrective Retrieval Augmented Generation (CRAG) to improve the robustness of generation. Specifically, a lightweight retrieval evaluator is designed to assess the overall quality of retrieved documents for a query, returning a confidence degree based on which different knowledge retrieval actions can be triggered. Since retrieval from static and limited corpora can only return sub-optimal documents, large-scale web searches are utilized as an extension for augmenting the retrieval results. Besides, a decompose-then-recompose algorithm is designed for retrieved documents to selectively focus on key information and filter out irrelevant information in them. CRAG is plug-and-play and can be seamlessly coupled with various RAG-based approaches. Experiments on four datasets covering short- and long-form generation tasks show that CRAG can significantly improve the performance of RAG-based approaches.\\n\\nMixtral of Experts[\\u200b](#mixtral-of-experts \"Direct link to Mixtral of Experts\")\\n\\n-------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2401.04088v1\\n \\n* **Title:** Mixtral of Experts\\n \\n* **Authors:** Albert Q. Jiang, Alexandre Sablayrolles, Antoine Roux, et al.\\n \\n* **Published Date:** 2024-01-08\\n \\n* **URL:** [http://arxiv.org/abs/2401.04088v1](http://arxiv.org/abs/2401.04088v1)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [together\\\\_ai](https://github.com/langchain-ai/langchain/blob/master/cookbook/together_ai.ipynb)\\n \\n\\n**Abstract:** We introduce Mixtral 8x7B, a Sparse Mixture of Experts (SMoE) language model. Mixtral has the same architecture as Mistral 7B, with the difference that each layer is composed of 8 feedforward blocks (i.e. experts). For every token, at each layer, a router network selects two experts to process the current state and combine their outputs. Even though each token only sees two experts, the selected experts can be different at each timestep. As a result, each token has access to 47B parameters, but only uses 13B active parameters during inference. Mixtral was trained with a context size of 32k tokens and it outperforms or matches Llama 2 70B and GPT-3.5 across all evaluated benchmarks. In particular, Mixtral vastly outperforms Llama 2 70B on mathematics, code generation, and multilingual benchmarks. We also provide a model fine-tuned to follow instructions, Mixtral 8x7B - Instruct, that surpasses GPT-3.5 Turbo, Claude-2.1, Gemini Pro, and Llama 2 70B - chat model on human benchmarks. Both the base and instruct models are released under the Apache 2.0 license.\\n\\nDense X Retrieval: What Retrieval Granularity Should We Use?[\\u200b](#dense-x-retrieval-what-retrieval-granularity-should-we-use \"Direct link to Dense X Retrieval: What Retrieval Granularity Should We Use?\")\\n\\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2312.06648v2\\n \\n* **Title:** Dense X Retrieval: What Retrieval Granularity Should We Use?\\n \\n* **Authors:** Tong Chen, Hongwei Wang, Sihao Chen, et al.\\n \\n* **Published Date:** 2023-12-11\\n \\n* **URL:** [http://arxiv.org/abs/2312.06648v2](http://arxiv.org/abs/2312.06648v2)\\n \\n* **LangChain:**\\n \\n * **Template:** [propositional-retrieval](https://python.langchain.com/docs/templates/propositional-retrieval)\\n \\n\\n**Abstract:** Dense retrieval has become a prominent method to obtain relevant context or world knowledge in open-domain NLP tasks. When we use a learned dense retriever on a retrieval corpus at inference time, an often-overlooked design choice is the retrieval unit in which the corpus is indexed, e.g. document, passage, or sentence. We discover that the retrieval unit choice significantly impacts the performance of both retrieval and downstream tasks. Distinct from the typical approach of using passages or sentences, we introduce a novel retrieval unit, proposition, for dense retrieval. Propositions are defined as atomic expressions within text, each encapsulating a distinct factoid and presented in a concise, self-contained natural language format. We conduct an empirical comparison of different retrieval granularity. Our results reveal that proposition-based retrieval significantly outperforms traditional passage or sentence-based methods in dense retrieval. Moreover, retrieval by proposition also enhances the performance of downstream QA tasks, since the retrieved texts are more condensed with question-relevant information, reducing the need for lengthy input tokens and minimizing the inclusion of extraneous, irrelevant information.\\n\\nChain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models[\\u200b](#chain-of-note-enhancing-robustness-in-retrieval-augmented-language-models \"Direct link to Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2311.09210v1\\n \\n* **Title:** Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models\\n \\n* **Authors:** Wenhao Yu, Hongming Zhang, Xiaoman Pan, et al.\\n \\n* **Published Date:** 2023-11-15\\n \\n* **URL:** [http://arxiv.org/abs/2311.09210v1](http://arxiv.org/abs/2311.09210v1)\\n \\n* **LangChain:**\\n \\n * **Template:** [chain-of-note-wiki](https://python.langchain.com/docs/templates/chain-of-note-wiki)\\n \\n\\n**Abstract:** Retrieval-augmented language models (RALMs) represent a substantial advancement in the capabilities of large language models, notably in reducing factual hallucination by leveraging external knowledge sources. However, the reliability of the retrieved information is not always guaranteed. The retrieval of irrelevant data can lead to misguided responses, and potentially causing the model to overlook its inherent knowledge, even when it possesses adequate information to address the query. Moreover, standard RALMs often struggle to assess whether they possess adequate knowledge, both intrinsic and retrieved, to provide an accurate answer. In situations where knowledge is lacking, these systems should ideally respond with \"unknown\" when the answer is unattainable. In response to these challenges, we introduces Chain-of-Noting (CoN), a novel approach aimed at improving the robustness of RALMs in facing noisy, irrelevant documents and in handling unknown scenarios. The core idea of CoN is to generate sequential reading notes for retrieved documents, enabling a thorough evaluation of their relevance to the given question and integrating this information to formulate the final answer. We employed ChatGPT to create training data for CoN, which was subsequently trained on an LLaMa-2 7B model. Our experiments across four open-domain QA benchmarks show that RALMs equipped with CoN significantly outperform standard RALMs. Notably, CoN achieves an average improvement of +7.9 in EM score given entirely noisy retrieved documents and +10.5 in rejection rates for real-time questions that fall outside the pre-training knowledge scope.\\n\\nSelf-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection[\\u200b](#self-rag-learning-to-retrieve-generate-and-critique-through-self-reflection \"Direct link to Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2310.11511v1\\n \\n* **Title:** Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection\\n \\n* **Authors:** Akari Asai, Zeqiu Wu, Yizhong Wang, et al.\\n \\n* **Published Date:** 2023-10-17\\n \\n* **URL:** [http://arxiv.org/abs/2310.11511v1](http://arxiv.org/abs/2310.11511v1)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [langgraph\\\\_self\\\\_rag](https://github.com/langchain-ai/langchain/blob/master/cookbook/langgraph_self_rag.ipynb)\\n \\n\\n**Abstract:** Despite their remarkable capabilities, large language models (LLMs) often produce responses containing factual inaccuracies due to their sole reliance on the parametric knowledge they encapsulate. Retrieval-Augmented Generation (RAG), an ad hoc approach that augments LMs with retrieval of relevant knowledge, decreases such issues. However, indiscriminately retrieving and incorporating a fixed number of retrieved passages, regardless of whether retrieval is necessary, or passages are relevant, diminishes LM versatility or can lead to unhelpful response generation. We introduce a new framework called Self-Reflective Retrieval-Augmented Generation (Self-RAG) that enhances an LM\\'s quality and factuality through retrieval and self-reflection. Our framework trains a single arbitrary LM that adaptively retrieves passages on-demand, and generates and reflects on retrieved passages and its own generations using special tokens, called reflection tokens. Generating reflection tokens makes the LM controllable during the inference phase, enabling it to tailor its behavior to diverse task requirements. Experiments show that Self-RAG (7B and 13B parameters) significantly outperforms state-of-the-art LLMs and retrieval-augmented models on a diverse set of tasks. Specifically, Self-RAG outperforms ChatGPT and retrieval-augmented Llama2-chat on Open-domain QA, reasoning and fact verification tasks, and it shows significant gains in improving factuality and citation accuracy for long-form generations relative to these models.\\n\\nTake a Step Back: Evoking Reasoning via Abstraction in Large Language Models[\\u200b](#take-a-step-back-evoking-reasoning-via-abstraction-in-large-language-models \"Direct link to Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2310.06117v2\\n \\n* **Title:** Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models\\n \\n* **Authors:** Huaixiu Steven Zheng, Swaroop Mishra, Xinyun Chen, et al.\\n \\n* **Published Date:** 2023-10-09\\n \\n* **URL:** [http://arxiv.org/abs/2310.06117v2](http://arxiv.org/abs/2310.06117v2)\\n \\n* **LangChain:**\\n \\n * **Template:** [stepback-qa-prompting](https://python.langchain.com/docs/templates/stepback-qa-prompting)\\n \\n * **Cookbook:** [stepback-qa](https://github.com/langchain-ai/langchain/blob/master/cookbook/stepback-qa.ipynb)\\n \\n\\n**Abstract:** We present Step-Back Prompting, a simple prompting technique that enables LLMs to do abstractions to derive high-level concepts and first principles from instances containing specific details. Using the concepts and principles to guide reasoning, LLMs significantly improve their abilities in following a correct reasoning path towards the solution. We conduct experiments of Step-Back Prompting with PaLM-2L, GPT-4 and Llama2-70B models, and observe substantial performance gains on various challenging reasoning-intensive tasks including STEM, Knowledge QA, and Multi-Hop Reasoning. For instance, Step-Back Prompting improves PaLM-2L performance on MMLU (Physics and Chemistry) by 7% and 11% respectively, TimeQA by 27%, and MuSiQue by 7%.\\n\\nLlama 2: Open Foundation and Fine-Tuned Chat Models[\\u200b](#llama-2-open-foundation-and-fine-tuned-chat-models \"Direct link to Llama 2: Open Foundation and Fine-Tuned Chat Models\")\\n\\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2307.09288v2\\n \\n* **Title:** Llama 2: Open Foundation and Fine-Tuned Chat Models\\n \\n* **Authors:** Hugo Touvron, Louis Martin, Kevin Stone, et al.\\n \\n* **Published Date:** 2023-07-18\\n \\n* **URL:** [http://arxiv.org/abs/2307.09288v2](http://arxiv.org/abs/2307.09288v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [Semi\\\\_Structured\\\\_RAG](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_Structured_RAG.ipynb)\\n \\n\\n**Abstract:** In this work, we develop and release Llama 2, a collection of pretrained and fine-tuned large language models (LLMs) ranging in scale from 7 billion to 70 billion parameters. Our fine-tuned LLMs, called Llama 2-Chat, are optimized for dialogue use cases. Our models outperform open-source chat models on most benchmarks we tested, and based on our human evaluations for helpfulness and safety, may be a suitable substitute for closed-source models. We provide a detailed description of our approach to fine-tuning and safety improvements of Llama 2-Chat in order to enable the community to build on our work and contribute to the responsible development of LLMs.\\n\\nQuery Rewriting for Retrieval-Augmented Large Language Models[\\u200b](#query-rewriting-for-retrieval-augmented-large-language-models \"Direct link to Query Rewriting for Retrieval-Augmented Large Language Models\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2305.14283v3\\n \\n* **Title:** Query Rewriting for Retrieval-Augmented Large Language Models\\n \\n* **Authors:** Xinbei Ma, Yeyun Gong, Pengcheng He, et al.\\n \\n* **Published Date:** 2023-05-23\\n \\n* **URL:** [http://arxiv.org/abs/2305.14283v3](http://arxiv.org/abs/2305.14283v3)\\n \\n* **LangChain:**\\n \\n * **Template:** [rewrite-retrieve-read](https://python.langchain.com/docs/templates/rewrite-retrieve-read)\\n \\n * **Cookbook:** [rewrite](https://github.com/langchain-ai/langchain/blob/master/cookbook/rewrite.ipynb)\\n \\n\\n**Abstract:** Large Language Models (LLMs) play powerful, black-box readers in the retrieve-then-read pipeline, making remarkable progress in knowledge-intensive tasks. This work introduces a new framework, Rewrite-Retrieve-Read instead of the previous retrieve-then-read for the retrieval-augmented LLMs from the perspective of the query rewriting. Unlike prior studies focusing on adapting either the retriever or the reader, our approach pays attention to the adaptation of the search query itself, for there is inevitably a gap between the input text and the needed knowledge in retrieval. We first prompt an LLM to generate the query, then use a web search engine to retrieve contexts. Furthermore, to better align the query to the frozen modules, we propose a trainable scheme for our pipeline. A small language model is adopted as a trainable rewriter to cater to the black-box LLM reader. The rewriter is trained using the feedback of the LLM reader by reinforcement learning. Evaluation is conducted on downstream tasks, open-domain QA and multiple-choice QA. Experiments results show consistent performance improvement, indicating that our framework is proven effective and scalable, and brings a new framework for retrieval-augmented LLM.\\n\\nLarge Language Model Guided Tree-of-Thought[\\u200b](#large-language-model-guided-tree-of-thought \"Direct link to Large Language Model Guided Tree-of-Thought\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2305.08291v1\\n \\n* **Title:** Large Language Model Guided Tree-of-Thought\\n \\n* **Authors:** Jieyi Long\\n \\n* **Published Date:** 2023-05-15\\n \\n* **URL:** [http://arxiv.org/abs/2305.08291v1](http://arxiv.org/abs/2305.08291v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental.tot](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.tot)\\n \\n * **Cookbook:** [tree\\\\_of\\\\_thought](https://github.com/langchain-ai/langchain/blob/master/cookbook/tree_of_thought.ipynb)\\n \\n\\n**Abstract:** In this paper, we introduce the Tree-of-Thought (ToT) framework, a novel approach aimed at improving the problem-solving capabilities of auto-regressive large language models (LLMs). The ToT technique is inspired by the human mind\\'s approach for solving complex reasoning tasks through trial and error. In this process, the human mind explores the solution space through a tree-like thought process, allowing for backtracking when necessary. To implement ToT as a software system, we augment an LLM with additional modules including a prompter agent, a checker module, a memory module, and a ToT controller. In order to solve a given problem, these modules engage in a multi-round conversation with the LLM. The memory module records the conversation and state history of the problem solving process, which allows the system to backtrack to the previous steps of the thought-process and explore other directions from there. To verify the effectiveness of the proposed technique, we implemented a ToT-based solver for the Sudoku Puzzle. Experimental results show that the ToT framework can significantly increase the success rate of Sudoku puzzle solving. Our implementation of the ToT-based Sudoku solver is available on GitHub: \\\\\\\\url{[https://github.com/jieyilong/tree-of-thought-puzzle-solver}](https://github.com/jieyilong/tree-of-thought-puzzle-solver%7D)\\n.\\n\\nPlan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models[\\u200b](#plan-and-solve-prompting-improving-zero-shot-chain-of-thought-reasoning-by-large-language-models \"Direct link to Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models\")\\n\\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2305.04091v3\\n \\n* **Title:** Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models\\n \\n* **Authors:** Lei Wang, Wanyu Xu, Yihuai Lan, et al.\\n \\n* **Published Date:** 2023-05-06\\n \\n* **URL:** [http://arxiv.org/abs/2305.04091v3](http://arxiv.org/abs/2305.04091v3)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [plan\\\\_and\\\\_execute\\\\_agent](https://github.com/langchain-ai/langchain/blob/master/cookbook/plan_and_execute_agent.ipynb)\\n \\n\\n**Abstract:** Large language models (LLMs) have recently been shown to deliver impressive performance in various NLP tasks. To tackle multi-step reasoning tasks, few-shot chain-of-thought (CoT) prompting includes a few manually crafted step-by-step reasoning demonstrations which enable LLMs to explicitly generate reasoning steps and improve their reasoning task accuracy. To eliminate the manual effort, Zero-shot-CoT concatenates the target problem statement with \"Let\\'s think step by step\" as an input prompt to LLMs. Despite the success of Zero-shot-CoT, it still suffers from three pitfalls: calculation errors, missing-step errors, and semantic misunderstanding errors. To address the missing-step errors, we propose Plan-and-Solve (PS) Prompting. It consists of two components: first, devising a plan to divide the entire task into smaller subtasks, and then carrying out the subtasks according to the plan. To address the calculation errors and improve the quality of generated reasoning steps, we extend PS prompting with more detailed instructions and derive PS+ prompting. We evaluate our proposed prompting strategy on ten datasets across three reasoning problems. The experimental results over GPT-3 show that our proposed zero-shot prompting consistently outperforms Zero-shot-CoT across all datasets by a large margin, is comparable to or exceeds Zero-shot-Program-of-Thought Prompting, and has comparable performance with 8-shot CoT prompting on the math reasoning problem. The code can be found at [https://github.com/AGI-Edgerunners/Plan-and-Solve-Prompting](https://github.com/AGI-Edgerunners/Plan-and-Solve-Prompting)\\n.\\n\\nVisual Instruction Tuning[\\u200b](#visual-instruction-tuning \"Direct link to Visual Instruction Tuning\")\\n\\n----------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2304.08485v2\\n \\n* **Title:** Visual Instruction Tuning\\n \\n* **Authors:** Haotian Liu, Chunyuan Li, Qingyang Wu, et al.\\n \\n* **Published Date:** 2023-04-17\\n \\n* **URL:** [http://arxiv.org/abs/2304.08485v2](http://arxiv.org/abs/2304.08485v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [Semi\\\\_structured\\\\_and\\\\_multi\\\\_modal\\\\_RAG](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_and_multi_modal_RAG.ipynb)\\n , [Semi\\\\_structured\\\\_multi\\\\_modal\\\\_RAG\\\\_LLaMA2](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_multi_modal_RAG_LLaMA2.ipynb)\\n \\n\\n**Abstract:** Instruction tuning large language models (LLMs) using machine-generated instruction-following data has improved zero-shot capabilities on new tasks, but the idea is less explored in the multimodal field. In this paper, we present the first attempt to use language-only GPT-4 to generate multimodal language-image instruction-following data. By instruction tuning on such generated data, we introduce LLaVA: Large Language and Vision Assistant, an end-to-end trained large multimodal model that connects a vision encoder and LLM for general-purpose visual and language understanding.Our early experiments show that LLaVA demonstrates impressive multimodel chat abilities, sometimes exhibiting the behaviors of multimodal GPT-4 on unseen images/instructions, and yields a 85.1% relative score compared with GPT-4 on a synthetic multimodal instruction-following dataset. When fine-tuned on Science QA, the synergy of LLaVA and GPT-4 achieves a new state-of-the-art accuracy of 92.53%. We make GPT-4 generated visual instruction tuning data, our model and code base publicly available.\\n\\nGenerative Agents: Interactive Simulacra of Human Behavior[\\u200b](#generative-agents-interactive-simulacra-of-human-behavior \"Direct link to Generative Agents: Interactive Simulacra of Human Behavior\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2304.03442v2\\n \\n* **Title:** Generative Agents: Interactive Simulacra of Human Behavior\\n \\n* **Authors:** Joon Sung Park, Joseph C. O\\'Brien, Carrie J. Cai, et al.\\n \\n* **Published Date:** 2023-04-07\\n \\n* **URL:** [http://arxiv.org/abs/2304.03442v2](http://arxiv.org/abs/2304.03442v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [multiagent\\\\_bidding](https://github.com/langchain-ai/langchain/blob/master/cookbook/multiagent_bidding.ipynb)\\n , [generative\\\\_agents\\\\_interactive\\\\_simulacra\\\\_of\\\\_human\\\\_behavior](https://github.com/langchain-ai/langchain/blob/master/cookbook/generative_agents_interactive_simulacra_of_human_behavior.ipynb)\\n \\n\\n**Abstract:** Believable proxies of human behavior can empower interactive applications ranging from immersive environments to rehearsal spaces for interpersonal communication to prototyping tools. In this paper, we introduce generative agents--computational software agents that simulate believable human behavior. Generative agents wake up, cook breakfast, and head to work; artists paint, while authors write; they form opinions, notice each other, and initiate conversations; they remember and reflect on days past as they plan the next day. To enable generative agents, we describe an architecture that extends a large language model to store a complete record of the agent\\'s experiences using natural language, synthesize those memories over time into higher-level reflections, and retrieve them dynamically to plan behavior. We instantiate generative agents to populate an interactive sandbox environment inspired by The Sims, where end users can interact with a small town of twenty five agents using natural language. In an evaluation, these generative agents produce believable individual and emergent social behaviors: for example, starting with only a single user-specified notion that one agent wants to throw a Valentine\\'s Day party, the agents autonomously spread invitations to the party over the next two days, make new acquaintances, ask each other out on dates to the party, and coordinate to show up for the party together at the right time. We demonstrate through ablation that the components of our agent architecture--observation, planning, and reflection--each contribute critically to the believability of agent behavior. By fusing large language models with computational, interactive agents, this work introduces architectural and interaction patterns for enabling believable simulations of human behavior.\\n\\nCAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society[\\u200b](#camel-communicative-agents-for-mind-exploration-of-large-language-model-society \"Direct link to CAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2303.17760v2\\n \\n* **Title:** CAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society\\n \\n* **Authors:** Guohao Li, Hasan Abed Al Kader Hammoud, Hani Itani, et al.\\n \\n* **Published Date:** 2023-03-31\\n \\n* **URL:** [http://arxiv.org/abs/2303.17760v2](http://arxiv.org/abs/2303.17760v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [camel\\\\_role\\\\_playing](https://github.com/langchain-ai/langchain/blob/master/cookbook/camel_role_playing.ipynb)\\n \\n\\n**Abstract:** The rapid advancement of chat-based language models has led to remarkable progress in complex task-solving. However, their success heavily relies on human input to guide the conversation, which can be challenging and time-consuming. This paper explores the potential of building scalable techniques to facilitate autonomous cooperation among communicative agents, and provides insight into their \"cognitive\" processes. To address the challenges of achieving autonomous cooperation, we propose a novel communicative agent framework named role-playing. Our approach involves using inception prompting to guide chat agents toward task completion while maintaining consistency with human intentions. We showcase how role-playing can be used to generate conversational data for studying the behaviors and capabilities of a society of agents, providing a valuable resource for investigating conversational language models. In particular, we conduct comprehensive studies on instruction-following cooperation in multi-agent settings. Our contributions include introducing a novel communicative agent framework, offering a scalable approach for studying the cooperative behaviors and capabilities of multi-agent systems, and open-sourcing our library to support research on communicative agents and beyond: [https://github.com/camel-ai/camel](https://github.com/camel-ai/camel)\\n.\\n\\nHuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face[\\u200b](#hugginggpt-solving-ai-tasks-with-chatgpt-and-its-friends-in-hugging-face \"Direct link to HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face\")\\n\\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2303.17580v4\\n \\n* **Title:** HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face\\n \\n* **Authors:** Yongliang Shen, Kaitao Song, Xu Tan, et al.\\n \\n* **Published Date:** 2023-03-30\\n \\n* **URL:** [http://arxiv.org/abs/2303.17580v4](http://arxiv.org/abs/2303.17580v4)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental.autonomous\\\\_agents](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.autonomous_agents)\\n \\n * **Cookbook:** [hugginggpt](https://github.com/langchain-ai/langchain/blob/master/cookbook/hugginggpt.ipynb)\\n \\n\\n**Abstract:** Solving complicated AI tasks with different domains and modalities is a key step toward artificial general intelligence. While there are numerous AI models available for various domains and modalities, they cannot handle complicated AI tasks autonomously. Considering large language models (LLMs) have exhibited exceptional abilities in language understanding, generation, interaction, and reasoning, we advocate that LLMs could act as a controller to manage existing AI models to solve complicated AI tasks, with language serving as a generic interface to empower this. Based on this philosophy, we present HuggingGPT, an LLM-powered agent that leverages LLMs (e.g., ChatGPT) to connect various AI models in machine learning communities (e.g., Hugging Face) to solve AI tasks. Specifically, we use ChatGPT to conduct task planning when receiving a user request, select models according to their function descriptions available in Hugging Face, execute each subtask with the selected AI model, and summarize the response according to the execution results. By leveraging the strong language capability of ChatGPT and abundant AI models in Hugging Face, HuggingGPT can tackle a wide range of sophisticated AI tasks spanning different modalities and domains and achieve impressive results in language, vision, speech, and other challenging tasks, which paves a new way towards the realization of artificial general intelligence.\\n\\nGPT-4 Technical Report[\\u200b](#gpt-4-technical-report \"Direct link to GPT-4 Technical Report\")\\n\\n-------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2303.08774v6\\n \\n* **Title:** GPT-4 Technical Report\\n \\n* **Authors:** OpenAI, Josh Achiam, Steven Adler, et al.\\n \\n* **Published Date:** 2023-03-15\\n \\n* **URL:** [http://arxiv.org/abs/2303.08774v6](http://arxiv.org/abs/2303.08774v6)\\n \\n* **LangChain:**\\n \\n * **Documentation:** [docs/integrations/vectorstores/mongodb\\\\_atlas](https://python.langchain.com/docs/integrations/vectorstores/mongodb_atlas)\\n \\n\\n**Abstract:** We report the development of GPT-4, a large-scale, multimodal model which can accept image and text inputs and produce text outputs. While less capable than humans in many real-world scenarios, GPT-4 exhibits human-level performance on various professional and academic benchmarks, including passing a simulated bar exam with a score around the top 10% of test takers. GPT-4 is a Transformer-based model pre-trained to predict the next token in a document. The post-training alignment process results in improved performance on measures of factuality and adherence to desired behavior. A core component of this project was developing infrastructure and optimization methods that behave predictably across a wide range of scales. This allowed us to accurately predict some aspects of GPT-4\\'s performance based on models trained with no more than 1/1,000th the compute of GPT-4.\\n\\nA Watermark for Large Language Models[\\u200b](#a-watermark-for-large-language-models \"Direct link to A Watermark for Large Language Models\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2301.10226v4\\n \\n* **Title:** A Watermark for Large Language Models\\n \\n* **Authors:** John Kirchenbauer, Jonas Geiping, Yuxin Wen, et al.\\n \\n* **Published Date:** 2023-01-24\\n \\n* **URL:** [http://arxiv.org/abs/2301.10226v4](http://arxiv.org/abs/2301.10226v4)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_community...OCIModelDeploymentTGI](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.oci_data_science_model_deployment_endpoint.OCIModelDeploymentTGI.html#langchain_community.llms.oci_data_science_model_deployment_endpoint.OCIModelDeploymentTGI)\\n , [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference)\\n \\n\\n**Abstract:** Potential harms of large language models can be mitigated by watermarking model output, i.e., embedding signals into generated text that are invisible to humans but algorithmically detectable from a short span of tokens. We propose a watermarking framework for proprietary language models. The watermark can be embedded with negligible impact on text quality, and can be detected using an efficient open-source algorithm without access to the language model API or parameters. The watermark works by selecting a randomized set of \"green\" tokens before a word is generated, and then softly promoting use of green tokens during sampling. We propose a statistical test for detecting the watermark with interpretable p-values, and derive an information-theoretic framework for analyzing the sensitivity of the watermark. We test the watermark using a multi-billion parameter model from the Open Pretrained Transformer (OPT) family, and discuss robustness and security.\\n\\nPrecise Zero-Shot Dense Retrieval without Relevance Labels[\\u200b](#precise-zero-shot-dense-retrieval-without-relevance-labels \"Direct link to Precise Zero-Shot Dense Retrieval without Relevance Labels\")\\n\\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2212.10496v1\\n \\n* **Title:** Precise Zero-Shot Dense Retrieval without Relevance Labels\\n \\n* **Authors:** Luyu Gao, Xueguang Ma, Jimmy Lin, et al.\\n \\n* **Published Date:** 2022-12-20\\n \\n* **URL:** [http://arxiv.org/abs/2212.10496v1](http://arxiv.org/abs/2212.10496v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain...HypotheticalDocumentEmbedder](https://api.python.langchain.com/en/latest/chains/langchain.chains.hyde.base.HypotheticalDocumentEmbedder.html#langchain.chains.hyde.base.HypotheticalDocumentEmbedder)\\n \\n * **Template:** [hyde](https://python.langchain.com/docs/templates/hyde)\\n \\n * **Cookbook:** [hypothetical\\\\_document\\\\_embeddings](https://github.com/langchain-ai/langchain/blob/master/cookbook/hypothetical_document_embeddings.ipynb)\\n \\n\\n**Abstract:** While dense retrieval has been shown effective and efficient across tasks and languages, it remains difficult to create effective fully zero-shot dense retrieval systems when no relevance label is available. In this paper, we recognize the difficulty of zero-shot learning and encoding relevance. Instead, we propose to pivot through Hypothetical Document Embeddings~(HyDE). Given a query, HyDE first zero-shot instructs an instruction-following language model (e.g. InstructGPT) to generate a hypothetical document. The document captures relevance patterns but is unreal and may contain false details. Then, an unsupervised contrastively learned encoder~(e.g. Contriever) encodes the document into an embedding vector. This vector identifies a neighborhood in the corpus embedding space, where similar real documents are retrieved based on vector similarity. This second step ground the generated document to the actual corpus, with the encoder\\'s dense bottleneck filtering out the incorrect details. Our experiments show that HyDE significantly outperforms the state-of-the-art unsupervised dense retriever Contriever and shows strong performance comparable to fine-tuned retrievers, across various tasks (e.g. web search, QA, fact verification) and languages~(e.g. sw, ko, ja).\\n\\nRobust and Explainable Identification of Logical Fallacies in Natural Language Arguments[\\u200b](#robust-and-explainable-identification-of-logical-fallacies-in-natural-language-arguments \"Direct link to Robust and Explainable Identification of Logical Fallacies in Natural Language Arguments\")\\n\\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2212.07425v3\\n \\n* **Title:** Robust and Explainable Identification of Logical Fallacies in Natural Language Arguments\\n \\n* **Authors:** Zhivar Sourati, Vishnu Priya Prasanna Venkatesh, Darshan Deshpande, et al.\\n \\n* **Published Date:** 2022-12-12\\n \\n* **URL:** [http://arxiv.org/abs/2212.07425v3](http://arxiv.org/abs/2212.07425v3)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental.fallacy\\\\_removal](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.fallacy_removal)\\n \\n\\n**Abstract:** The spread of misinformation, propaganda, and flawed argumentation has been amplified in the Internet era. Given the volume of data and the subtlety of identifying violations of argumentation norms, supporting information analytics tasks, like content moderation, with trustworthy methods that can identify logical fallacies is essential. In this paper, we formalize prior theoretical work on logical fallacies into a comprehensive three-stage evaluation framework of detection, coarse-grained, and fine-grained classification. We adapt existing evaluation datasets for each stage of the evaluation. We employ three families of robust and explainable methods based on prototype reasoning, instance-based reasoning, and knowledge injection. The methods combine language models with background knowledge and explainable mechanisms. Moreover, we address data sparsity with strategies for data augmentation and curriculum learning. Our three-stage framework natively consolidates prior datasets and methods from existing tasks, like propaganda detection, serving as an overarching evaluation testbed. We extensively evaluate these methods on our datasets, focusing on their robustness and explainability. Our results provide insight into the strengths and weaknesses of the methods on different components and fallacy classes, indicating that fallacy identification is a challenging task that may require specialized forms of reasoning to capture various classes. We share our open-source code and data on GitHub to support further work on logical fallacy identification.\\n\\nComplementary Explanations for Effective In-Context Learning[\\u200b](#complementary-explanations-for-effective-in-context-learning \"Direct link to Complementary Explanations for Effective In-Context Learning\")\\n\\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2211.13892v2\\n \\n* **Title:** Complementary Explanations for Effective In-Context Learning\\n \\n* **Authors:** Xi Ye, Srinivasan Iyer, Asli Celikyilmaz, et al.\\n \\n* **Published Date:** 2022-11-25\\n \\n* **URL:** [http://arxiv.org/abs/2211.13892v2](http://arxiv.org/abs/2211.13892v2)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_core...MaxMarginalRelevanceExampleSelector](https://api.python.langchain.com/en/latest/example_selectors/langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector.html#langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector)\\n \\n\\n**Abstract:** Large language models (LLMs) have exhibited remarkable capabilities in learning from explanations in prompts, but there has been limited understanding of exactly how these explanations function or why they are effective. This work aims to better understand the mechanisms by which explanations are used for in-context learning. We first study the impact of two different factors on the performance of prompts with explanations: the computation trace (the way the solution is decomposed) and the natural language used to express the prompt. By perturbing explanations on three controlled tasks, we show that both factors contribute to the effectiveness of explanations. We further study how to form maximally effective sets of explanations for solving a given test query. We find that LLMs can benefit from the complementarity of the explanation set: diverse reasoning skills shown by different exemplars can lead to better performance. Therefore, we propose a maximal marginal relevance-based exemplar selection approach for constructing exemplar sets that are both relevant as well as complementary, which successfully improves the in-context learning performance across three real-world tasks on multiple LLMs.\\n\\nPAL: Program-aided Language Models[\\u200b](#pal-program-aided-language-models \"Direct link to PAL: Program-aided Language Models\")\\n\\n------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2211.10435v2\\n \\n* **Title:** PAL: Program-aided Language Models\\n \\n* **Authors:** Luyu Gao, Aman Madaan, Shuyan Zhou, et al.\\n \\n* **Published Date:** 2022-11-18\\n \\n* **URL:** [http://arxiv.org/abs/2211.10435v2](http://arxiv.org/abs/2211.10435v2)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental...PALChain](https://api.python.langchain.com/en/latest/pal_chain/langchain_experimental.pal_chain.base.PALChain.html#langchain_experimental.pal_chain.base.PALChain)\\n , [langchain\\\\_experimental.pal\\\\_chain](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.pal_chain)\\n \\n * **Cookbook:** [program\\\\_aided\\\\_language\\\\_model](https://github.com/langchain-ai/langchain/blob/master/cookbook/program_aided_language_model.ipynb)\\n \\n\\n**Abstract:** Large language models (LLMs) have recently demonstrated an impressive ability to perform arithmetic and symbolic reasoning tasks, when provided with a few examples at test time (\"few-shot prompting\"). Much of this success can be attributed to prompting methods such as \"chain-of-thought\\'\\', which employ LLMs for both understanding the problem description by decomposing it into steps, as well as solving each step of the problem. While LLMs seem to be adept at this sort of step-by-step decomposition, LLMs often make logical and arithmetic mistakes in the solution part, even when the problem is decomposed correctly. In this paper, we present Program-Aided Language models (PAL): a novel approach that uses the LLM to read natural language problems and generate programs as the intermediate reasoning steps, but offloads the solution step to a runtime such as a Python interpreter. With PAL, decomposing the natural language problem into runnable steps remains the only learning task for the LLM, while solving is delegated to the interpreter. We demonstrate this synergy between a neural LLM and a symbolic interpreter across 13 mathematical, symbolic, and algorithmic reasoning tasks from BIG-Bench Hard and other benchmarks. In all these natural language reasoning tasks, generating code using an LLM and reasoning using a Python interpreter leads to more accurate results than much larger models. For example, PAL using Codex achieves state-of-the-art few-shot accuracy on the GSM8K benchmark of math word problems, surpassing PaLM-540B which uses chain-of-thought by absolute 15% top-1. Our code and data are publicly available at [http://reasonwithpal.com/](http://reasonwithpal.com/)\\n .\\n\\nReAct: Synergizing Reasoning and Acting in Language Models[\\u200b](#react-synergizing-reasoning-and-acting-in-language-models \"Direct link to ReAct: Synergizing Reasoning and Acting in Language Models\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2210.03629v3\\n \\n* **Title:** ReAct: Synergizing Reasoning and Acting in Language Models\\n \\n* **Authors:** Shunyu Yao, Jeffrey Zhao, Dian Yu, et al.\\n \\n* **Published Date:** 2022-10-06\\n \\n* **URL:** [http://arxiv.org/abs/2210.03629v3](http://arxiv.org/abs/2210.03629v3)\\n \\n* **LangChain:**\\n \\n * **Documentation:** [docs/integrations/providers/cohere](https://python.langchain.com/docs/integrations/providers/cohere)\\n , [docs/integrations/chat/huggingface](https://python.langchain.com/docs/integrations/chat/huggingface)\\n , [docs/integrations/tools/ionic\\\\_shopping](https://python.langchain.com/docs/integrations/tools/ionic_shopping)\\n \\n * **API Reference:** [langchain...create\\\\_react\\\\_agent](https://api.python.langchain.com/en/latest/agents/langchain.agents.react.agent.create_react_agent.html#langchain.agents.react.agent.create_react_agent)\\n , [langchain...TrajectoryEvalChain](https://api.python.langchain.com/en/latest/evaluation/langchain.evaluation.agents.trajectory_eval_chain.TrajectoryEvalChain.html#langchain.evaluation.agents.trajectory_eval_chain.TrajectoryEvalChain)\\n \\n\\n**Abstract:** While large language models (LLMs) have demonstrated impressive capabilities across tasks in language understanding and interactive decision making, their abilities for reasoning (e.g. chain-of-thought prompting) and acting (e.g. action plan generation) have primarily been studied as separate topics. In this paper, we explore the use of LLMs to generate both reasoning traces and task-specific actions in an interleaved manner, allowing for greater synergy between the two: reasoning traces help the model induce, track, and update action plans as well as handle exceptions, while actions allow it to interface with external sources, such as knowledge bases or environments, to gather additional information. We apply our approach, named ReAct, to a diverse set of language and decision making tasks and demonstrate its effectiveness over state-of-the-art baselines, as well as improved human interpretability and trustworthiness over methods without reasoning or acting components. Concretely, on question answering (HotpotQA) and fact verification (Fever), ReAct overcomes issues of hallucination and error propagation prevalent in chain-of-thought reasoning by interacting with a simple Wikipedia API, and generates human-like task-solving trajectories that are more interpretable than baselines without reasoning traces. On two interactive decision making benchmarks (ALFWorld and WebShop), ReAct outperforms imitation and reinforcement learning methods by an absolute success rate of 34% and 10% respectively, while being prompted with only one or two in-context examples. Project site with code: [https://react-lm.github.io](https://react-lm.github.io)\\n\\nDeep Lake: a Lakehouse for Deep Learning[\\u200b](#deep-lake-a-lakehouse-for-deep-learning \"Direct link to Deep Lake: a Lakehouse for Deep Learning\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2209.10785v2\\n \\n* **Title:** Deep Lake: a Lakehouse for Deep Learning\\n \\n* **Authors:** Sasun Hambardzumyan, Abhinav Tuli, Levon Ghukasyan, et al.\\n \\n* **Published Date:** 2022-09-22\\n \\n* **URL:** [http://arxiv.org/abs/2209.10785v2](http://arxiv.org/abs/2209.10785v2)\\n \\n* **LangChain:**\\n \\n * **Documentation:** [docs/integrations/providers/activeloop\\\\_deeplake](https://python.langchain.com/docs/integrations/providers/activeloop_deeplake)\\n \\n\\n**Abstract:** Traditional data lakes provide critical data infrastructure for analytical workloads by enabling time travel, running SQL queries, ingesting data with ACID transactions, and visualizing petabyte-scale datasets on cloud storage. They allow organizations to break down data silos, unlock data-driven decision-making, improve operational efficiency, and reduce costs. However, as deep learning usage increases, traditional data lakes are not well-designed for applications such as natural language processing (NLP), audio processing, computer vision, and applications involving non-tabular datasets. This paper presents Deep Lake, an open-source lakehouse for deep learning applications developed at Activeloop. Deep Lake maintains the benefits of a vanilla data lake with one key difference: it stores complex data, such as images, videos, annotations, as well as tabular data, in the form of tensors and rapidly streams the data over the network to (a) Tensor Query Language, (b) in-browser visualization engine, or (c) deep learning frameworks without sacrificing GPU utilization. Datasets stored in Deep Lake can be accessed from PyTorch, TensorFlow, JAX, and integrate with numerous MLOps tools.\\n\\nBitext Mining Using Distilled Sentence Representations for Low-Resource Languages[\\u200b](#bitext-mining-using-distilled-sentence-representations-for-low-resource-languages \"Direct link to Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2205.12654v1\\n \\n* **Title:** Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages\\n \\n* **Authors:** Kevin Heffernan, Onur Çelebi, Holger Schwenk\\n \\n* **Published Date:** 2022-05-25\\n \\n* **URL:** [http://arxiv.org/abs/2205.12654v1](http://arxiv.org/abs/2205.12654v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...LaserEmbeddings](https://api.python.langchain.com/en/latest/embeddings/langchain_community.embeddings.laser.LaserEmbeddings.html#langchain_community.embeddings.laser.LaserEmbeddings)\\n \\n\\n**Abstract:** Scaling multilingual representation learning beyond the hundred most frequent languages is challenging, in particular to cover the long tail of low-resource languages. A promising approach has been to train one-for-all multilingual models capable of cross-lingual transfer, but these models often suffer from insufficient capacity and interference between unrelated languages. Instead, we move away from this approach and focus on training multiple language (family) specific representations, but most prominently enable all languages to still be encoded in the same representational space. To achieve this, we focus on teacher-student training, allowing all encoders to be mutually compatible for bitext mining, and enabling fast learning of new languages. We introduce a new teacher-student training scheme which combines supervised and self-supervised training, allowing encoders to take advantage of monolingual training data, which is valuable in the low-resource setting. Our approach significantly outperforms the original LASER encoder. We study very low-resource languages and handle 50 African languages, many of which are not covered by any other model. For these languages, we train sentence encoders, mine bitexts, and validate the bitexts by training NMT systems.\\n\\nEvaluating the Text-to-SQL Capabilities of Large Language Models[\\u200b](#evaluating-the-text-to-sql-capabilities-of-large-language-models \"Direct link to Evaluating the Text-to-SQL Capabilities of Large Language Models\")\\n\\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2204.00498v1\\n \\n* **Title:** Evaluating the Text-to-SQL Capabilities of Large Language Models\\n \\n* **Authors:** Nitarshan Rajkumar, Raymond Li, Dzmitry Bahdanau\\n \\n* **Published Date:** 2022-03-15\\n \\n* **URL:** [http://arxiv.org/abs/2204.00498v1](http://arxiv.org/abs/2204.00498v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...SparkSQL](https://api.python.langchain.com/en/latest/utilities/langchain_community.utilities.spark_sql.SparkSQL.html#langchain_community.utilities.spark_sql.SparkSQL)\\n , [langchain\\\\_community...SQLDatabase](https://api.python.langchain.com/en/latest/utilities/langchain_community.utilities.sql_database.SQLDatabase.html#langchain_community.utilities.sql_database.SQLDatabase)\\n \\n\\n**Abstract:** We perform an empirical evaluation of Text-to-SQL capabilities of the Codex language model. We find that, without any finetuning, Codex is a strong baseline on the Spider benchmark; we also analyze the failure modes of Codex in this setting. Furthermore, we demonstrate on the GeoQuery and Scholar benchmarks that a small number of in-domain examples provided in the prompt enables Codex to perform better than state-of-the-art models finetuned on such few-shot examples.\\n\\nLocally Typical Sampling[\\u200b](#locally-typical-sampling \"Direct link to Locally Typical Sampling\")\\n\\n-------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2202.00666v5\\n \\n* **Title:** Locally Typical Sampling\\n \\n* **Authors:** Clara Meister, Tiago Pimentel, Gian Wiher, et al.\\n \\n* **Published Date:** 2022-02-01\\n \\n* **URL:** [http://arxiv.org/abs/2202.00666v5](http://arxiv.org/abs/2202.00666v5)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference)\\n \\n\\n**Abstract:** Today\\'s probabilistic language generators fall short when it comes to producing coherent and fluent text despite the fact that the underlying models perform well under standard metrics, e.g., perplexity. This discrepancy has puzzled the language generation community for the last few years. In this work, we posit that the abstraction of natural language generation as a discrete stochastic process--which allows for an information-theoretic analysis--can provide new insights into the behavior of probabilistic language generators, e.g., why high-probability texts can be dull or repetitive. Humans use language as a means of communicating information, aiming to do so in a simultaneously efficient and error-minimizing manner; in fact, psycholinguistics research suggests humans choose each word in a string with this subconscious goal in mind. We formally define the set of strings that meet this criterion: those for which each word has an information content close to the expected information content, i.e., the conditional entropy of our model. We then propose a simple and efficient procedure for enforcing this criterion when generating from probabilistic models, which we call locally typical sampling. Automatic and human evaluations show that, in comparison to nucleus and top-k sampling, locally typical sampling offers competitive performance (in both abstractive summarization and story generation) in terms of quality while consistently reducing degenerate repetitions.\\n\\nLearning Transferable Visual Models From Natural Language Supervision[\\u200b](#learning-transferable-visual-models-from-natural-language-supervision \"Direct link to Learning Transferable Visual Models From Natural Language Supervision\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2103.00020v1\\n \\n* **Title:** Learning Transferable Visual Models From Natural Language Supervision\\n \\n* **Authors:** Alec Radford, Jong Wook Kim, Chris Hallacy, et al.\\n \\n* **Published Date:** 2021-02-26\\n \\n* **URL:** [http://arxiv.org/abs/2103.00020v1](http://arxiv.org/abs/2103.00020v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental.open\\\\_clip](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.open_clip)\\n \\n\\n**Abstract:** State-of-the-art computer vision systems are trained to predict a fixed set of predetermined object categories. This restricted form of supervision limits their generality and usability since additional labeled data is needed to specify any other visual concept. Learning directly from raw text about images is a promising alternative which leverages a much broader source of supervision. We demonstrate that the simple pre-training task of predicting which caption goes with which image is an efficient and scalable way to learn SOTA image representations from scratch on a dataset of 400 million (image, text) pairs collected from the internet. After pre-training, natural language is used to reference learned visual concepts (or describe new ones) enabling zero-shot transfer of the model to downstream tasks. We study the performance of this approach by benchmarking on over 30 different existing computer vision datasets, spanning tasks such as OCR, action recognition in videos, geo-localization, and many types of fine-grained object classification. The model transfers non-trivially to most tasks and is often competitive with a fully supervised baseline without the need for any dataset specific training. For instance, we match the accuracy of the original ResNet-50 on ImageNet zero-shot without needing to use any of the 1.28 million training examples it was trained on. We release our code and pre-trained model weights at [https://github.com/OpenAI/CLIP](https://github.com/OpenAI/CLIP)\\n.\\n\\nCTRL: A Conditional Transformer Language Model for Controllable Generation[\\u200b](#ctrl-a-conditional-transformer-language-model-for-controllable-generation \"Direct link to CTRL: A Conditional Transformer Language Model for Controllable Generation\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 1909.05858v2\\n \\n* **Title:** CTRL: A Conditional Transformer Language Model for Controllable Generation\\n \\n* **Authors:** Nitish Shirish Keskar, Bryan McCann, Lav R. Varshney, et al.\\n \\n* **Published Date:** 2019-09-11\\n \\n* **URL:** [http://arxiv.org/abs/1909.05858v2](http://arxiv.org/abs/1909.05858v2)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference)\\n \\n\\n**Abstract:** Large-scale language models show promising text generation capabilities, but users cannot easily control particular aspects of the generated text. We release CTRL, a 1.63 billion-parameter conditional transformer language model, trained to condition on control codes that govern style, content, and task-specific behavior. Control codes were derived from structure that naturally co-occurs with raw text, preserving the advantages of unsupervised learning while providing more explicit control over text generation. These codes also allow CTRL to predict which parts of the training data are most likely given a sequence. This provides a potential method for analyzing large amounts of data via model-based source attribution. We have released multiple full-sized, pretrained versions of CTRL at [https://github.com/salesforce/ctrl](https://github.com/salesforce/ctrl)\\n.\\n\\nSentence-BERT: Sentence Embeddings using Siamese BERT-Networks[\\u200b](#sentence-bert-sentence-embeddings-using-siamese-bert-networks \"Direct link to Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 1908.10084v1\\n \\n* **Title:** Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks\\n \\n* **Authors:** Nils Reimers, Iryna Gurevych\\n \\n* **Published Date:** 2019-08-27\\n \\n* **URL:** [http://arxiv.org/abs/1908.10084v1](http://arxiv.org/abs/1908.10084v1)\\n \\n* **LangChain:**\\n \\n * **Documentation:** [docs/integrations/text\\\\_embedding/sentence\\\\_transformers](https://python.langchain.com/docs/integrations/text_embedding/sentence_transformers)\\n \\n\\n**Abstract:** BERT (Devlin et al., 2018) and RoBERTa (Liu et al., 2019) has set a new state-of-the-art performance on sentence-pair regression tasks like semantic textual similarity (STS). However, it requires that both sentences are fed into the network, which causes a massive computational overhead: Finding the most similar pair in a collection of 10,000 sentences requires about 50 million inference computations (~65 hours) with BERT. The construction of BERT makes it unsuitable for semantic similarity search as well as for unsupervised tasks like clustering. In this publication, we present Sentence-BERT (SBERT), a modification of the pretrained BERT network that use siamese and triplet network structures to derive semantically meaningful sentence embeddings that can be compared using cosine-similarity. This reduces the effort for finding the most similar pair from 65 hours with BERT / RoBERTa to about 5 seconds with SBERT, while maintaining the accuracy from BERT. We evaluate SBERT and SRoBERTa on common STS tasks and transfer learning tasks, where it outperforms other state-of-the-art sentence embeddings methods.\\n\\n[Edit this page](https://github.com/langchain-ai/langchain/edit/master/docs/docs/additional_resources/arxiv_references.mdx)\\n\\n* * *\\n\\n#### Was this page helpful?\\n\\n \\n\\n#### You can also leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchain/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E)\\n.\\n\\n* [Summary](#summary)\\n \\n* [Self-Discover: Large Language Models Self-Compose Reasoning Structures](#self-discover-large-language-models-self-compose-reasoning-structures)\\n \\n* [RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval](#raptor-recursive-abstractive-processing-for-tree-organized-retrieval)\\n \\n* [Corrective Retrieval Augmented Generation](#corrective-retrieval-augmented-generation)\\n \\n* [Mixtral of Experts](#mixtral-of-experts)\\n \\n* [Dense X Retrieval: What Retrieval Granularity Should We Use?](#dense-x-retrieval-what-retrieval-granularity-should-we-use)\\n \\n* [Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models](#chain-of-note-enhancing-robustness-in-retrieval-augmented-language-models)\\n \\n* [Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection](#self-rag-learning-to-retrieve-generate-and-critique-through-self-reflection)\\n \\n* [Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models](#take-a-step-back-evoking-reasoning-via-abstraction-in-large-language-models)\\n \\n* [Llama 2: Open Foundation and Fine-Tuned Chat Models](#llama-2-open-foundation-and-fine-tuned-chat-models)\\n \\n* [Query Rewriting for Retrieval-Augmented Large Language Models](#query-rewriting-for-retrieval-augmented-large-language-models)\\n \\n* [Large Language Model Guided Tree-of-Thought](#large-language-model-guided-tree-of-thought)\\n \\n* [Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models](#plan-and-solve-prompting-improving-zero-shot-chain-of-thought-reasoning-by-large-language-models)\\n \\n* [Visual Instruction Tuning](#visual-instruction-tuning)\\n \\n* [Generative Agents: Interactive Simulacra of Human Behavior](#generative-agents-interactive-simulacra-of-human-behavior)\\n \\n* [CAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society](#camel-communicative-agents-for-mind-exploration-of-large-language-model-society)\\n \\n* [HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face](#hugginggpt-solving-ai-tasks-with-chatgpt-and-its-friends-in-hugging-face)\\n \\n* [GPT-4 Technical Report](#gpt-4-technical-report)\\n \\n* [A Watermark for Large Language Models](#a-watermark-for-large-language-models)\\n \\n* [Precise Zero-Shot Dense Retrieval without Relevance Labels](#precise-zero-shot-dense-retrieval-without-relevance-labels)\\n \\n* [Robust and Explainable Identification of Logical Fallacies in Natural Language Arguments](#robust-and-explainable-identification-of-logical-fallacies-in-natural-language-arguments)\\n \\n* [Complementary Explanations for Effective In-Context Learning](#complementary-explanations-for-effective-in-context-learning)\\n \\n* [PAL: Program-aided Language Models](#pal-program-aided-language-models)\\n \\n* [ReAct: Synergizing Reasoning and Acting in Language Models](#react-synergizing-reasoning-and-acting-in-language-models)\\n \\n* [Deep Lake: a Lakehouse for Deep Learning](#deep-lake-a-lakehouse-for-deep-learning)\\n \\n* [Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages](#bitext-mining-using-distilled-sentence-representations-for-low-resource-languages)\\n \\n* [Evaluating the Text-to-SQL Capabilities of Large Language Models](#evaluating-the-text-to-sql-capabilities-of-large-language-models)\\n \\n* [Locally Typical Sampling](#locally-typical-sampling)\\n \\n* [Learning Transferable Visual Models From Natural Language Supervision](#learning-transferable-visual-models-from-natural-language-supervision)\\n \\n* [CTRL: A Conditional Transformer Language Model for Controllable Generation](#ctrl-a-conditional-transformer-language-model-for-controllable-generation)\\n \\n* [Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks](#sentence-bert-sentence-embeddings-using-siamese-bert-networks)\\n \\n\\nCommunity\\n\\n* [Discord](https://discord.gg/cU2adEyC7w)\\n \\n* [Twitter](https://twitter.com/LangChainAI)\\n \\n\\nGitHub\\n\\n* [Organization](https://github.com/langchain-ai)\\n \\n* [Python](https://github.com/langchain-ai/langchain)\\n \\n* [JS/TS](https://github.com/langchain-ai/langchainjs)\\n \\n\\nMore\\n\\n* [Homepage](https://langchain.com)\\n \\n* [Blog](https://blog.langchain.dev)\\n \\n* [YouTube](https://www.youtube.com/@LangChain)\\n \\n\\nCopyright © 2024 LangChain, Inc.', 'markdown': '[Skip to main content](#__docusaurus_skipToContent_fallback)\\n\\nLangChain 0.2 is out! Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchain/discussions/21716)\\n. You can view the v0.1 docs [here](/v0.1/docs/get_started/introduction/)\\n.\\n\\n[![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark.png)![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark-dark.png)](/v0.2/)\\n[Integrations](/v0.2/docs/integrations/platforms/)\\n[API Reference](https://api.python.langchain.com)\\n\\n[More](#)\\n\\n* [People](/v0.2/docs/people/)\\n \\n* [Contributing](/v0.2/docs/contributing/)\\n \\n* [Templates](/v0.2/docs/templates/)\\n \\n* [Cookbooks](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)\\n \\n* [3rd party tutorials](/v0.2/docs/additional_resources/tutorials/)\\n \\n* [YouTube](/v0.2/docs/additional_resources/youtube/)\\n \\n* [arXiv](/v0.2/docs/additional_resources/arxiv_references/)\\n \\n\\n[v0.2](#)\\n\\n* [v0.2](/v0.2/docs/introduction/)\\n \\n* [v0.1](https://python.langchain.com/v0.1/docs/get_started/introduction)\\n \\n\\n[🦜️🔗](#)\\n\\n* [LangSmith](https://smith.langchain.com)\\n \\n* [LangSmith Docs](https://docs.smith.langchain.com/)\\n \\n* [LangServe GitHub](https://github.com/langchain-ai/langserve)\\n \\n* [Templates GitHub](https://github.com/langchain-ai/langchain/tree/master/templates)\\n \\n* [Templates Hub](https://templates.langchain.com)\\n \\n* [LangChain Hub](https://smith.langchain.com/hub)\\n \\n* [JS/TS Docs](https://js.langchain.com)\\n \\n\\n[💬](https://chat.langchain.com)\\n[](https://github.com/langchain-ai/langchain)\\n\\nSearch\\n\\nOn this page\\n\\narXiv\\n=====\\n\\nLangChain implements the latest research in the field of Natural Language Processing. This page contains `arXiv` papers referenced in the LangChain Documentation, API Reference, Templates, and Cookbooks.\\n\\nFrom the opposite direction, scientists use LangChain in research and reference LangChain in the research papers. Here you find [such papers](https://arxiv.org/search/?query=langchain&searchtype=all&source=header)\\n.\\n\\nSummary[\\u200b](#summary \"Direct link to Summary\")\\n\\n----------------------------------------------\\n\\n| arXiv id / Title | Authors | Published date 🔻 | LangChain Documentation |\\n| --- | --- | --- | --- |\\n| `2402.03620v1` [Self-Discover: Large Language Models Self-Compose Reasoning Structures](http://arxiv.org/abs/2402.03620v1) | Pei Zhou, Jay Pujara, Xiang Ren, et al. | 2024-02-06 | `Cookbook:` [self-discover](https://github.com/langchain-ai/langchain/blob/master/cookbook/self-discover.ipynb) |\\n| `2401.18059v1` [RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval](http://arxiv.org/abs/2401.18059v1) | Parth Sarthi, Salman Abdullah, Aditi Tuli, et al. | 2024-01-31 | `Cookbook:` [RAPTOR](https://github.com/langchain-ai/langchain/blob/master/cookbook/RAPTOR.ipynb) |\\n| `2401.15884v2` [Corrective Retrieval Augmented Generation](http://arxiv.org/abs/2401.15884v2) | Shi-Qi Yan, Jia-Chen Gu, Yun Zhu, et al. | 2024-01-29 | `Cookbook:` [langgraph\\\\_crag](https://github.com/langchain-ai/langchain/blob/master/cookbook/langgraph_crag.ipynb) |\\n| `2401.04088v1` [Mixtral of Experts](http://arxiv.org/abs/2401.04088v1) | Albert Q. Jiang, Alexandre Sablayrolles, Antoine Roux, et al. | 2024-01-08 | `Cookbook:` [together\\\\_ai](https://github.com/langchain-ai/langchain/blob/master/cookbook/together_ai.ipynb) |\\n| `2312.06648v2` [Dense X Retrieval: What Retrieval Granularity Should We Use?](http://arxiv.org/abs/2312.06648v2) | Tong Chen, Hongwei Wang, Sihao Chen, et al. | 2023-12-11 | `Template:` [propositional-retrieval](https://python.langchain.com/docs/templates/propositional-retrieval) |\\n| `2311.09210v1` [Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models](http://arxiv.org/abs/2311.09210v1) | Wenhao Yu, Hongming Zhang, Xiaoman Pan, et al. | 2023-11-15 | `Template:` [chain-of-note-wiki](https://python.langchain.com/docs/templates/chain-of-note-wiki) |\\n| `2310.11511v1` [Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection](http://arxiv.org/abs/2310.11511v1) | Akari Asai, Zeqiu Wu, Yizhong Wang, et al. | 2023-10-17 | `Cookbook:` [langgraph\\\\_self\\\\_rag](https://github.com/langchain-ai/langchain/blob/master/cookbook/langgraph_self_rag.ipynb) |\\n| `2310.06117v2` [Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models](http://arxiv.org/abs/2310.06117v2) | Huaixiu Steven Zheng, Swaroop Mishra, Xinyun Chen, et al. | 2023-10-09 | `Template:` [stepback-qa-prompting](https://python.langchain.com/docs/templates/stepback-qa-prompting)
, `Cookbook:` [stepback-qa](https://github.com/langchain-ai/langchain/blob/master/cookbook/stepback-qa.ipynb) |\\n| `2307.09288v2` [Llama 2: Open Foundation and Fine-Tuned Chat Models](http://arxiv.org/abs/2307.09288v2) | Hugo Touvron, Louis Martin, Kevin Stone, et al. | 2023-07-18 | `Cookbook:` [Semi\\\\_Structured\\\\_RAG](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_Structured_RAG.ipynb) |\\n| `2305.14283v3` [Query Rewriting for Retrieval-Augmented Large Language Models](http://arxiv.org/abs/2305.14283v3) | Xinbei Ma, Yeyun Gong, Pengcheng He, et al. | 2023-05-23 | `Template:` [rewrite-retrieve-read](https://python.langchain.com/docs/templates/rewrite-retrieve-read)
, `Cookbook:` [rewrite](https://github.com/langchain-ai/langchain/blob/master/cookbook/rewrite.ipynb) |\\n| `2305.08291v1` [Large Language Model Guided Tree-of-Thought](http://arxiv.org/abs/2305.08291v1) | Jieyi Long | 2023-05-15 | `API:` [langchain\\\\_experimental.tot](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.tot)
, `Cookbook:` [tree\\\\_of\\\\_thought](https://github.com/langchain-ai/langchain/blob/master/cookbook/tree_of_thought.ipynb) |\\n| `2305.04091v3` [Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models](http://arxiv.org/abs/2305.04091v3) | Lei Wang, Wanyu Xu, Yihuai Lan, et al. | 2023-05-06 | `Cookbook:` [plan\\\\_and\\\\_execute\\\\_agent](https://github.com/langchain-ai/langchain/blob/master/cookbook/plan_and_execute_agent.ipynb) |\\n| `2304.08485v2` [Visual Instruction Tuning](http://arxiv.org/abs/2304.08485v2) | Haotian Liu, Chunyuan Li, Qingyang Wu, et al. | 2023-04-17 | `Cookbook:` [Semi\\\\_structured\\\\_and\\\\_multi\\\\_modal\\\\_RAG](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_and_multi_modal_RAG.ipynb)
, [Semi\\\\_structured\\\\_multi\\\\_modal\\\\_RAG\\\\_LLaMA2](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_multi_modal_RAG_LLaMA2.ipynb) |\\n| `2304.03442v2` [Generative Agents: Interactive Simulacra of Human Behavior](http://arxiv.org/abs/2304.03442v2) | Joon Sung Park, Joseph C. O\\'Brien, Carrie J. Cai, et al. | 2023-04-07 | `Cookbook:` [multiagent\\\\_bidding](https://github.com/langchain-ai/langchain/blob/master/cookbook/multiagent_bidding.ipynb)
, [generative\\\\_agents\\\\_interactive\\\\_simulacra\\\\_of\\\\_human\\\\_behavior](https://github.com/langchain-ai/langchain/blob/master/cookbook/generative_agents_interactive_simulacra_of_human_behavior.ipynb) |\\n| `2303.17760v2` [CAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society](http://arxiv.org/abs/2303.17760v2) | Guohao Li, Hasan Abed Al Kader Hammoud, Hani Itani, et al. | 2023-03-31 | `Cookbook:` [camel\\\\_role\\\\_playing](https://github.com/langchain-ai/langchain/blob/master/cookbook/camel_role_playing.ipynb) |\\n| `2303.17580v4` [HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face](http://arxiv.org/abs/2303.17580v4) | Yongliang Shen, Kaitao Song, Xu Tan, et al. | 2023-03-30 | `API:` [langchain\\\\_experimental.autonomous\\\\_agents](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.autonomous_agents)
, `Cookbook:` [hugginggpt](https://github.com/langchain-ai/langchain/blob/master/cookbook/hugginggpt.ipynb) |\\n| `2303.08774v6` [GPT-4 Technical Report](http://arxiv.org/abs/2303.08774v6) | OpenAI, Josh Achiam, Steven Adler, et al. | 2023-03-15 | `Docs:` [docs/integrations/vectorstores/mongodb\\\\_atlas](https://python.langchain.com/docs/integrations/vectorstores/mongodb_atlas) |\\n| `2301.10226v4` [A Watermark for Large Language Models](http://arxiv.org/abs/2301.10226v4) | John Kirchenbauer, Jonas Geiping, Yuxin Wen, et al. | 2023-01-24 | `API:` [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_community...OCIModelDeploymentTGI](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.oci_data_science_model_deployment_endpoint.OCIModelDeploymentTGI.html#langchain_community.llms.oci_data_science_model_deployment_endpoint.OCIModelDeploymentTGI)
, [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference) |\\n| `2212.10496v1` [Precise Zero-Shot Dense Retrieval without Relevance Labels](http://arxiv.org/abs/2212.10496v1) | Luyu Gao, Xueguang Ma, Jimmy Lin, et al. | 2022-12-20 | `API:` [langchain...HypotheticalDocumentEmbedder](https://api.python.langchain.com/en/latest/chains/langchain.chains.hyde.base.HypotheticalDocumentEmbedder.html#langchain.chains.hyde.base.HypotheticalDocumentEmbedder)
, `Template:` [hyde](https://python.langchain.com/docs/templates/hyde)
, `Cookbook:` [hypothetical\\\\_document\\\\_embeddings](https://github.com/langchain-ai/langchain/blob/master/cookbook/hypothetical_document_embeddings.ipynb) |\\n| `2212.07425v3` [Robust and Explainable Identification of Logical Fallacies in Natural Language Arguments](http://arxiv.org/abs/2212.07425v3) | Zhivar Sourati, Vishnu Priya Prasanna Venkatesh, Darshan Deshpande, et al. | 2022-12-12 | `API:` [langchain\\\\_experimental.fallacy\\\\_removal](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.fallacy_removal) |\\n| `2211.13892v2` [Complementary Explanations for Effective In-Context Learning](http://arxiv.org/abs/2211.13892v2) | Xi Ye, Srinivasan Iyer, Asli Celikyilmaz, et al. | 2022-11-25 | `API:` [langchain\\\\_core...MaxMarginalRelevanceExampleSelector](https://api.python.langchain.com/en/latest/example_selectors/langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector.html#langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector) |\\n| `2211.10435v2` [PAL: Program-aided Language Models](http://arxiv.org/abs/2211.10435v2) | Luyu Gao, Aman Madaan, Shuyan Zhou, et al. | 2022-11-18 | `API:` [langchain\\\\_experimental...PALChain](https://api.python.langchain.com/en/latest/pal_chain/langchain_experimental.pal_chain.base.PALChain.html#langchain_experimental.pal_chain.base.PALChain)
, [langchain\\\\_experimental.pal\\\\_chain](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.pal_chain)
, `Cookbook:` [program\\\\_aided\\\\_language\\\\_model](https://github.com/langchain-ai/langchain/blob/master/cookbook/program_aided_language_model.ipynb) |\\n| `2210.03629v3` [ReAct: Synergizing Reasoning and Acting in Language Models](http://arxiv.org/abs/2210.03629v3) | Shunyu Yao, Jeffrey Zhao, Dian Yu, et al. | 2022-10-06 | `Docs:` [docs/integrations/providers/cohere](https://python.langchain.com/docs/integrations/providers/cohere)
, [docs/integrations/chat/huggingface](https://python.langchain.com/docs/integrations/chat/huggingface)
, [docs/integrations/tools/ionic\\\\_shopping](https://python.langchain.com/docs/integrations/tools/ionic_shopping)
, `API:` [langchain...create\\\\_react\\\\_agent](https://api.python.langchain.com/en/latest/agents/langchain.agents.react.agent.create_react_agent.html#langchain.agents.react.agent.create_react_agent)
, [langchain...TrajectoryEvalChain](https://api.python.langchain.com/en/latest/evaluation/langchain.evaluation.agents.trajectory_eval_chain.TrajectoryEvalChain.html#langchain.evaluation.agents.trajectory_eval_chain.TrajectoryEvalChain) |\\n| `2209.10785v2` [Deep Lake: a Lakehouse for Deep Learning](http://arxiv.org/abs/2209.10785v2) | Sasun Hambardzumyan, Abhinav Tuli, Levon Ghukasyan, et al. | 2022-09-22 | `Docs:` [docs/integrations/providers/activeloop\\\\_deeplake](https://python.langchain.com/docs/integrations/providers/activeloop_deeplake) |\\n| `2205.12654v1` [Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages](http://arxiv.org/abs/2205.12654v1) | Kevin Heffernan, Onur Çelebi, Holger Schwenk | 2022-05-25 | `API:` [langchain\\\\_community...LaserEmbeddings](https://api.python.langchain.com/en/latest/embeddings/langchain_community.embeddings.laser.LaserEmbeddings.html#langchain_community.embeddings.laser.LaserEmbeddings) |\\n| `2204.00498v1` [Evaluating the Text-to-SQL Capabilities of Large Language Models](http://arxiv.org/abs/2204.00498v1) | Nitarshan Rajkumar, Raymond Li, Dzmitry Bahdanau | 2022-03-15 | `API:` [langchain\\\\_community...SparkSQL](https://api.python.langchain.com/en/latest/utilities/langchain_community.utilities.spark_sql.SparkSQL.html#langchain_community.utilities.spark_sql.SparkSQL)
, [langchain\\\\_community...SQLDatabase](https://api.python.langchain.com/en/latest/utilities/langchain_community.utilities.sql_database.SQLDatabase.html#langchain_community.utilities.sql_database.SQLDatabase) |\\n| `2202.00666v5` [Locally Typical Sampling](http://arxiv.org/abs/2202.00666v5) | Clara Meister, Tiago Pimentel, Gian Wiher, et al. | 2022-02-01 | `API:` [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference) |\\n| `2103.00020v1` [Learning Transferable Visual Models From Natural Language Supervision](http://arxiv.org/abs/2103.00020v1) | Alec Radford, Jong Wook Kim, Chris Hallacy, et al. | 2021-02-26 | `API:` [langchain\\\\_experimental.open\\\\_clip](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.open_clip) |\\n| `1909.05858v2` [CTRL: A Conditional Transformer Language Model for Controllable Generation](http://arxiv.org/abs/1909.05858v2) | Nitish Shirish Keskar, Bryan McCann, Lav R. Varshney, et al. | 2019-09-11 | `API:` [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference) |\\n| `1908.10084v1` [Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks](http://arxiv.org/abs/1908.10084v1) | Nils Reimers, Iryna Gurevych | 2019-08-27 | `Docs:` [docs/integrations/text\\\\_embedding/sentence\\\\_transformers](https://python.langchain.com/docs/integrations/text_embedding/sentence_transformers) |\\n\\nSelf-Discover: Large Language Models Self-Compose Reasoning Structures[\\u200b](#self-discover-large-language-models-self-compose-reasoning-structures \"Direct link to Self-Discover: Large Language Models Self-Compose Reasoning Structures\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2402.03620v1\\n \\n* **Title:** Self-Discover: Large Language Models Self-Compose Reasoning Structures\\n \\n* **Authors:** Pei Zhou, Jay Pujara, Xiang Ren, et al.\\n \\n* **Published Date:** 2024-02-06\\n \\n* **URL:** [http://arxiv.org/abs/2402.03620v1](http://arxiv.org/abs/2402.03620v1)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [self-discover](https://github.com/langchain-ai/langchain/blob/master/cookbook/self-discover.ipynb)\\n \\n\\n**Abstract:** We introduce SELF-DISCOVER, a general framework for LLMs to self-discover the task-intrinsic reasoning structures to tackle complex reasoning problems that are challenging for typical prompting methods. Core to the framework is a self-discovery process where LLMs select multiple atomic reasoning modules such as critical thinking and step-by-step thinking, and compose them into an explicit reasoning structure for LLMs to follow during decoding. SELF-DISCOVER substantially improves GPT-4 and PaLM 2\\'s performance on challenging reasoning benchmarks such as BigBench-Hard, grounded agent reasoning, and MATH, by as much as 32% compared to Chain of Thought (CoT). Furthermore, SELF-DISCOVER outperforms inference-intensive methods such as CoT-Self-Consistency by more than 20%, while requiring 10-40x fewer inference compute. Finally, we show that the self-discovered reasoning structures are universally applicable across model families: from PaLM 2-L to GPT-4, and from GPT-4 to Llama2, and share commonalities with human reasoning patterns.\\n\\nRAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval[\\u200b](#raptor-recursive-abstractive-processing-for-tree-organized-retrieval \"Direct link to RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval\")\\n\\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2401.18059v1\\n \\n* **Title:** RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval\\n \\n* **Authors:** Parth Sarthi, Salman Abdullah, Aditi Tuli, et al.\\n \\n* **Published Date:** 2024-01-31\\n \\n* **URL:** [http://arxiv.org/abs/2401.18059v1](http://arxiv.org/abs/2401.18059v1)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [RAPTOR](https://github.com/langchain-ai/langchain/blob/master/cookbook/RAPTOR.ipynb)\\n \\n\\n**Abstract:** Retrieval-augmented language models can better adapt to changes in world state and incorporate long-tail knowledge. However, most existing methods retrieve only short contiguous chunks from a retrieval corpus, limiting holistic understanding of the overall document context. We introduce the novel approach of recursively embedding, clustering, and summarizing chunks of text, constructing a tree with differing levels of summarization from the bottom up. At inference time, our RAPTOR model retrieves from this tree, integrating information across lengthy documents at different levels of abstraction. Controlled experiments show that retrieval with recursive summaries offers significant improvements over traditional retrieval-augmented LMs on several tasks. On question-answering tasks that involve complex, multi-step reasoning, we show state-of-the-art results; for example, by coupling RAPTOR retrieval with the use of GPT-4, we can improve the best performance on the QuALITY benchmark by 20% in absolute accuracy.\\n\\nCorrective Retrieval Augmented Generation[\\u200b](#corrective-retrieval-augmented-generation \"Direct link to Corrective Retrieval Augmented Generation\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2401.15884v2\\n \\n* **Title:** Corrective Retrieval Augmented Generation\\n \\n* **Authors:** Shi-Qi Yan, Jia-Chen Gu, Yun Zhu, et al.\\n \\n* **Published Date:** 2024-01-29\\n \\n* **URL:** [http://arxiv.org/abs/2401.15884v2](http://arxiv.org/abs/2401.15884v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [langgraph\\\\_crag](https://github.com/langchain-ai/langchain/blob/master/cookbook/langgraph_crag.ipynb)\\n \\n\\n**Abstract:** Large language models (LLMs) inevitably exhibit hallucinations since the accuracy of generated texts cannot be secured solely by the parametric knowledge they encapsulate. Although retrieval-augmented generation (RAG) is a practicable complement to LLMs, it relies heavily on the relevance of retrieved documents, raising concerns about how the model behaves if retrieval goes wrong. To this end, we propose the Corrective Retrieval Augmented Generation (CRAG) to improve the robustness of generation. Specifically, a lightweight retrieval evaluator is designed to assess the overall quality of retrieved documents for a query, returning a confidence degree based on which different knowledge retrieval actions can be triggered. Since retrieval from static and limited corpora can only return sub-optimal documents, large-scale web searches are utilized as an extension for augmenting the retrieval results. Besides, a decompose-then-recompose algorithm is designed for retrieved documents to selectively focus on key information and filter out irrelevant information in them. CRAG is plug-and-play and can be seamlessly coupled with various RAG-based approaches. Experiments on four datasets covering short- and long-form generation tasks show that CRAG can significantly improve the performance of RAG-based approaches.\\n\\nMixtral of Experts[\\u200b](#mixtral-of-experts \"Direct link to Mixtral of Experts\")\\n\\n-------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2401.04088v1\\n \\n* **Title:** Mixtral of Experts\\n \\n* **Authors:** Albert Q. Jiang, Alexandre Sablayrolles, Antoine Roux, et al.\\n \\n* **Published Date:** 2024-01-08\\n \\n* **URL:** [http://arxiv.org/abs/2401.04088v1](http://arxiv.org/abs/2401.04088v1)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [together\\\\_ai](https://github.com/langchain-ai/langchain/blob/master/cookbook/together_ai.ipynb)\\n \\n\\n**Abstract:** We introduce Mixtral 8x7B, a Sparse Mixture of Experts (SMoE) language model. Mixtral has the same architecture as Mistral 7B, with the difference that each layer is composed of 8 feedforward blocks (i.e. experts). For every token, at each layer, a router network selects two experts to process the current state and combine their outputs. Even though each token only sees two experts, the selected experts can be different at each timestep. As a result, each token has access to 47B parameters, but only uses 13B active parameters during inference. Mixtral was trained with a context size of 32k tokens and it outperforms or matches Llama 2 70B and GPT-3.5 across all evaluated benchmarks. In particular, Mixtral vastly outperforms Llama 2 70B on mathematics, code generation, and multilingual benchmarks. We also provide a model fine-tuned to follow instructions, Mixtral 8x7B - Instruct, that surpasses GPT-3.5 Turbo, Claude-2.1, Gemini Pro, and Llama 2 70B - chat model on human benchmarks. Both the base and instruct models are released under the Apache 2.0 license.\\n\\nDense X Retrieval: What Retrieval Granularity Should We Use?[\\u200b](#dense-x-retrieval-what-retrieval-granularity-should-we-use \"Direct link to Dense X Retrieval: What Retrieval Granularity Should We Use?\")\\n\\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2312.06648v2\\n \\n* **Title:** Dense X Retrieval: What Retrieval Granularity Should We Use?\\n \\n* **Authors:** Tong Chen, Hongwei Wang, Sihao Chen, et al.\\n \\n* **Published Date:** 2023-12-11\\n \\n* **URL:** [http://arxiv.org/abs/2312.06648v2](http://arxiv.org/abs/2312.06648v2)\\n \\n* **LangChain:**\\n \\n * **Template:** [propositional-retrieval](https://python.langchain.com/docs/templates/propositional-retrieval)\\n \\n\\n**Abstract:** Dense retrieval has become a prominent method to obtain relevant context or world knowledge in open-domain NLP tasks. When we use a learned dense retriever on a retrieval corpus at inference time, an often-overlooked design choice is the retrieval unit in which the corpus is indexed, e.g. document, passage, or sentence. We discover that the retrieval unit choice significantly impacts the performance of both retrieval and downstream tasks. Distinct from the typical approach of using passages or sentences, we introduce a novel retrieval unit, proposition, for dense retrieval. Propositions are defined as atomic expressions within text, each encapsulating a distinct factoid and presented in a concise, self-contained natural language format. We conduct an empirical comparison of different retrieval granularity. Our results reveal that proposition-based retrieval significantly outperforms traditional passage or sentence-based methods in dense retrieval. Moreover, retrieval by proposition also enhances the performance of downstream QA tasks, since the retrieved texts are more condensed with question-relevant information, reducing the need for lengthy input tokens and minimizing the inclusion of extraneous, irrelevant information.\\n\\nChain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models[\\u200b](#chain-of-note-enhancing-robustness-in-retrieval-augmented-language-models \"Direct link to Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2311.09210v1\\n \\n* **Title:** Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models\\n \\n* **Authors:** Wenhao Yu, Hongming Zhang, Xiaoman Pan, et al.\\n \\n* **Published Date:** 2023-11-15\\n \\n* **URL:** [http://arxiv.org/abs/2311.09210v1](http://arxiv.org/abs/2311.09210v1)\\n \\n* **LangChain:**\\n \\n * **Template:** [chain-of-note-wiki](https://python.langchain.com/docs/templates/chain-of-note-wiki)\\n \\n\\n**Abstract:** Retrieval-augmented language models (RALMs) represent a substantial advancement in the capabilities of large language models, notably in reducing factual hallucination by leveraging external knowledge sources. However, the reliability of the retrieved information is not always guaranteed. The retrieval of irrelevant data can lead to misguided responses, and potentially causing the model to overlook its inherent knowledge, even when it possesses adequate information to address the query. Moreover, standard RALMs often struggle to assess whether they possess adequate knowledge, both intrinsic and retrieved, to provide an accurate answer. In situations where knowledge is lacking, these systems should ideally respond with \"unknown\" when the answer is unattainable. In response to these challenges, we introduces Chain-of-Noting (CoN), a novel approach aimed at improving the robustness of RALMs in facing noisy, irrelevant documents and in handling unknown scenarios. The core idea of CoN is to generate sequential reading notes for retrieved documents, enabling a thorough evaluation of their relevance to the given question and integrating this information to formulate the final answer. We employed ChatGPT to create training data for CoN, which was subsequently trained on an LLaMa-2 7B model. Our experiments across four open-domain QA benchmarks show that RALMs equipped with CoN significantly outperform standard RALMs. Notably, CoN achieves an average improvement of +7.9 in EM score given entirely noisy retrieved documents and +10.5 in rejection rates for real-time questions that fall outside the pre-training knowledge scope.\\n\\nSelf-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection[\\u200b](#self-rag-learning-to-retrieve-generate-and-critique-through-self-reflection \"Direct link to Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2310.11511v1\\n \\n* **Title:** Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection\\n \\n* **Authors:** Akari Asai, Zeqiu Wu, Yizhong Wang, et al.\\n \\n* **Published Date:** 2023-10-17\\n \\n* **URL:** [http://arxiv.org/abs/2310.11511v1](http://arxiv.org/abs/2310.11511v1)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [langgraph\\\\_self\\\\_rag](https://github.com/langchain-ai/langchain/blob/master/cookbook/langgraph_self_rag.ipynb)\\n \\n\\n**Abstract:** Despite their remarkable capabilities, large language models (LLMs) often produce responses containing factual inaccuracies due to their sole reliance on the parametric knowledge they encapsulate. Retrieval-Augmented Generation (RAG), an ad hoc approach that augments LMs with retrieval of relevant knowledge, decreases such issues. However, indiscriminately retrieving and incorporating a fixed number of retrieved passages, regardless of whether retrieval is necessary, or passages are relevant, diminishes LM versatility or can lead to unhelpful response generation. We introduce a new framework called Self-Reflective Retrieval-Augmented Generation (Self-RAG) that enhances an LM\\'s quality and factuality through retrieval and self-reflection. Our framework trains a single arbitrary LM that adaptively retrieves passages on-demand, and generates and reflects on retrieved passages and its own generations using special tokens, called reflection tokens. Generating reflection tokens makes the LM controllable during the inference phase, enabling it to tailor its behavior to diverse task requirements. Experiments show that Self-RAG (7B and 13B parameters) significantly outperforms state-of-the-art LLMs and retrieval-augmented models on a diverse set of tasks. Specifically, Self-RAG outperforms ChatGPT and retrieval-augmented Llama2-chat on Open-domain QA, reasoning and fact verification tasks, and it shows significant gains in improving factuality and citation accuracy for long-form generations relative to these models.\\n\\nTake a Step Back: Evoking Reasoning via Abstraction in Large Language Models[\\u200b](#take-a-step-back-evoking-reasoning-via-abstraction-in-large-language-models \"Direct link to Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2310.06117v2\\n \\n* **Title:** Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models\\n \\n* **Authors:** Huaixiu Steven Zheng, Swaroop Mishra, Xinyun Chen, et al.\\n \\n* **Published Date:** 2023-10-09\\n \\n* **URL:** [http://arxiv.org/abs/2310.06117v2](http://arxiv.org/abs/2310.06117v2)\\n \\n* **LangChain:**\\n \\n * **Template:** [stepback-qa-prompting](https://python.langchain.com/docs/templates/stepback-qa-prompting)\\n \\n * **Cookbook:** [stepback-qa](https://github.com/langchain-ai/langchain/blob/master/cookbook/stepback-qa.ipynb)\\n \\n\\n**Abstract:** We present Step-Back Prompting, a simple prompting technique that enables LLMs to do abstractions to derive high-level concepts and first principles from instances containing specific details. Using the concepts and principles to guide reasoning, LLMs significantly improve their abilities in following a correct reasoning path towards the solution. We conduct experiments of Step-Back Prompting with PaLM-2L, GPT-4 and Llama2-70B models, and observe substantial performance gains on various challenging reasoning-intensive tasks including STEM, Knowledge QA, and Multi-Hop Reasoning. For instance, Step-Back Prompting improves PaLM-2L performance on MMLU (Physics and Chemistry) by 7% and 11% respectively, TimeQA by 27%, and MuSiQue by 7%.\\n\\nLlama 2: Open Foundation and Fine-Tuned Chat Models[\\u200b](#llama-2-open-foundation-and-fine-tuned-chat-models \"Direct link to Llama 2: Open Foundation and Fine-Tuned Chat Models\")\\n\\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2307.09288v2\\n \\n* **Title:** Llama 2: Open Foundation and Fine-Tuned Chat Models\\n \\n* **Authors:** Hugo Touvron, Louis Martin, Kevin Stone, et al.\\n \\n* **Published Date:** 2023-07-18\\n \\n* **URL:** [http://arxiv.org/abs/2307.09288v2](http://arxiv.org/abs/2307.09288v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [Semi\\\\_Structured\\\\_RAG](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_Structured_RAG.ipynb)\\n \\n\\n**Abstract:** In this work, we develop and release Llama 2, a collection of pretrained and fine-tuned large language models (LLMs) ranging in scale from 7 billion to 70 billion parameters. Our fine-tuned LLMs, called Llama 2-Chat, are optimized for dialogue use cases. Our models outperform open-source chat models on most benchmarks we tested, and based on our human evaluations for helpfulness and safety, may be a suitable substitute for closed-source models. We provide a detailed description of our approach to fine-tuning and safety improvements of Llama 2-Chat in order to enable the community to build on our work and contribute to the responsible development of LLMs.\\n\\nQuery Rewriting for Retrieval-Augmented Large Language Models[\\u200b](#query-rewriting-for-retrieval-augmented-large-language-models \"Direct link to Query Rewriting for Retrieval-Augmented Large Language Models\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2305.14283v3\\n \\n* **Title:** Query Rewriting for Retrieval-Augmented Large Language Models\\n \\n* **Authors:** Xinbei Ma, Yeyun Gong, Pengcheng He, et al.\\n \\n* **Published Date:** 2023-05-23\\n \\n* **URL:** [http://arxiv.org/abs/2305.14283v3](http://arxiv.org/abs/2305.14283v3)\\n \\n* **LangChain:**\\n \\n * **Template:** [rewrite-retrieve-read](https://python.langchain.com/docs/templates/rewrite-retrieve-read)\\n \\n * **Cookbook:** [rewrite](https://github.com/langchain-ai/langchain/blob/master/cookbook/rewrite.ipynb)\\n \\n\\n**Abstract:** Large Language Models (LLMs) play powerful, black-box readers in the retrieve-then-read pipeline, making remarkable progress in knowledge-intensive tasks. This work introduces a new framework, Rewrite-Retrieve-Read instead of the previous retrieve-then-read for the retrieval-augmented LLMs from the perspective of the query rewriting. Unlike prior studies focusing on adapting either the retriever or the reader, our approach pays attention to the adaptation of the search query itself, for there is inevitably a gap between the input text and the needed knowledge in retrieval. We first prompt an LLM to generate the query, then use a web search engine to retrieve contexts. Furthermore, to better align the query to the frozen modules, we propose a trainable scheme for our pipeline. A small language model is adopted as a trainable rewriter to cater to the black-box LLM reader. The rewriter is trained using the feedback of the LLM reader by reinforcement learning. Evaluation is conducted on downstream tasks, open-domain QA and multiple-choice QA. Experiments results show consistent performance improvement, indicating that our framework is proven effective and scalable, and brings a new framework for retrieval-augmented LLM.\\n\\nLarge Language Model Guided Tree-of-Thought[\\u200b](#large-language-model-guided-tree-of-thought \"Direct link to Large Language Model Guided Tree-of-Thought\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2305.08291v1\\n \\n* **Title:** Large Language Model Guided Tree-of-Thought\\n \\n* **Authors:** Jieyi Long\\n \\n* **Published Date:** 2023-05-15\\n \\n* **URL:** [http://arxiv.org/abs/2305.08291v1](http://arxiv.org/abs/2305.08291v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental.tot](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.tot)\\n \\n * **Cookbook:** [tree\\\\_of\\\\_thought](https://github.com/langchain-ai/langchain/blob/master/cookbook/tree_of_thought.ipynb)\\n \\n\\n**Abstract:** In this paper, we introduce the Tree-of-Thought (ToT) framework, a novel approach aimed at improving the problem-solving capabilities of auto-regressive large language models (LLMs). The ToT technique is inspired by the human mind\\'s approach for solving complex reasoning tasks through trial and error. In this process, the human mind explores the solution space through a tree-like thought process, allowing for backtracking when necessary. To implement ToT as a software system, we augment an LLM with additional modules including a prompter agent, a checker module, a memory module, and a ToT controller. In order to solve a given problem, these modules engage in a multi-round conversation with the LLM. The memory module records the conversation and state history of the problem solving process, which allows the system to backtrack to the previous steps of the thought-process and explore other directions from there. To verify the effectiveness of the proposed technique, we implemented a ToT-based solver for the Sudoku Puzzle. Experimental results show that the ToT framework can significantly increase the success rate of Sudoku puzzle solving. Our implementation of the ToT-based Sudoku solver is available on GitHub: \\\\\\\\url{[https://github.com/jieyilong/tree-of-thought-puzzle-solver}](https://github.com/jieyilong/tree-of-thought-puzzle-solver%7D)\\n.\\n\\nPlan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models[\\u200b](#plan-and-solve-prompting-improving-zero-shot-chain-of-thought-reasoning-by-large-language-models \"Direct link to Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models\")\\n\\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2305.04091v3\\n \\n* **Title:** Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models\\n \\n* **Authors:** Lei Wang, Wanyu Xu, Yihuai Lan, et al.\\n \\n* **Published Date:** 2023-05-06\\n \\n* **URL:** [http://arxiv.org/abs/2305.04091v3](http://arxiv.org/abs/2305.04091v3)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [plan\\\\_and\\\\_execute\\\\_agent](https://github.com/langchain-ai/langchain/blob/master/cookbook/plan_and_execute_agent.ipynb)\\n \\n\\n**Abstract:** Large language models (LLMs) have recently been shown to deliver impressive performance in various NLP tasks. To tackle multi-step reasoning tasks, few-shot chain-of-thought (CoT) prompting includes a few manually crafted step-by-step reasoning demonstrations which enable LLMs to explicitly generate reasoning steps and improve their reasoning task accuracy. To eliminate the manual effort, Zero-shot-CoT concatenates the target problem statement with \"Let\\'s think step by step\" as an input prompt to LLMs. Despite the success of Zero-shot-CoT, it still suffers from three pitfalls: calculation errors, missing-step errors, and semantic misunderstanding errors. To address the missing-step errors, we propose Plan-and-Solve (PS) Prompting. It consists of two components: first, devising a plan to divide the entire task into smaller subtasks, and then carrying out the subtasks according to the plan. To address the calculation errors and improve the quality of generated reasoning steps, we extend PS prompting with more detailed instructions and derive PS+ prompting. We evaluate our proposed prompting strategy on ten datasets across three reasoning problems. The experimental results over GPT-3 show that our proposed zero-shot prompting consistently outperforms Zero-shot-CoT across all datasets by a large margin, is comparable to or exceeds Zero-shot-Program-of-Thought Prompting, and has comparable performance with 8-shot CoT prompting on the math reasoning problem. The code can be found at [https://github.com/AGI-Edgerunners/Plan-and-Solve-Prompting](https://github.com/AGI-Edgerunners/Plan-and-Solve-Prompting)\\n.\\n\\nVisual Instruction Tuning[\\u200b](#visual-instruction-tuning \"Direct link to Visual Instruction Tuning\")\\n\\n----------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2304.08485v2\\n \\n* **Title:** Visual Instruction Tuning\\n \\n* **Authors:** Haotian Liu, Chunyuan Li, Qingyang Wu, et al.\\n \\n* **Published Date:** 2023-04-17\\n \\n* **URL:** [http://arxiv.org/abs/2304.08485v2](http://arxiv.org/abs/2304.08485v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [Semi\\\\_structured\\\\_and\\\\_multi\\\\_modal\\\\_RAG](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_and_multi_modal_RAG.ipynb)\\n , [Semi\\\\_structured\\\\_multi\\\\_modal\\\\_RAG\\\\_LLaMA2](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_multi_modal_RAG_LLaMA2.ipynb)\\n \\n\\n**Abstract:** Instruction tuning large language models (LLMs) using machine-generated instruction-following data has improved zero-shot capabilities on new tasks, but the idea is less explored in the multimodal field. In this paper, we present the first attempt to use language-only GPT-4 to generate multimodal language-image instruction-following data. By instruction tuning on such generated data, we introduce LLaVA: Large Language and Vision Assistant, an end-to-end trained large multimodal model that connects a vision encoder and LLM for general-purpose visual and language understanding.Our early experiments show that LLaVA demonstrates impressive multimodel chat abilities, sometimes exhibiting the behaviors of multimodal GPT-4 on unseen images/instructions, and yields a 85.1% relative score compared with GPT-4 on a synthetic multimodal instruction-following dataset. When fine-tuned on Science QA, the synergy of LLaVA and GPT-4 achieves a new state-of-the-art accuracy of 92.53%. We make GPT-4 generated visual instruction tuning data, our model and code base publicly available.\\n\\nGenerative Agents: Interactive Simulacra of Human Behavior[\\u200b](#generative-agents-interactive-simulacra-of-human-behavior \"Direct link to Generative Agents: Interactive Simulacra of Human Behavior\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2304.03442v2\\n \\n* **Title:** Generative Agents: Interactive Simulacra of Human Behavior\\n \\n* **Authors:** Joon Sung Park, Joseph C. O\\'Brien, Carrie J. Cai, et al.\\n \\n* **Published Date:** 2023-04-07\\n \\n* **URL:** [http://arxiv.org/abs/2304.03442v2](http://arxiv.org/abs/2304.03442v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [multiagent\\\\_bidding](https://github.com/langchain-ai/langchain/blob/master/cookbook/multiagent_bidding.ipynb)\\n , [generative\\\\_agents\\\\_interactive\\\\_simulacra\\\\_of\\\\_human\\\\_behavior](https://github.com/langchain-ai/langchain/blob/master/cookbook/generative_agents_interactive_simulacra_of_human_behavior.ipynb)\\n \\n\\n**Abstract:** Believable proxies of human behavior can empower interactive applications ranging from immersive environments to rehearsal spaces for interpersonal communication to prototyping tools. In this paper, we introduce generative agents--computational software agents that simulate believable human behavior. Generative agents wake up, cook breakfast, and head to work; artists paint, while authors write; they form opinions, notice each other, and initiate conversations; they remember and reflect on days past as they plan the next day. To enable generative agents, we describe an architecture that extends a large language model to store a complete record of the agent\\'s experiences using natural language, synthesize those memories over time into higher-level reflections, and retrieve them dynamically to plan behavior. We instantiate generative agents to populate an interactive sandbox environment inspired by The Sims, where end users can interact with a small town of twenty five agents using natural language. In an evaluation, these generative agents produce believable individual and emergent social behaviors: for example, starting with only a single user-specified notion that one agent wants to throw a Valentine\\'s Day party, the agents autonomously spread invitations to the party over the next two days, make new acquaintances, ask each other out on dates to the party, and coordinate to show up for the party together at the right time. We demonstrate through ablation that the components of our agent architecture--observation, planning, and reflection--each contribute critically to the believability of agent behavior. By fusing large language models with computational, interactive agents, this work introduces architectural and interaction patterns for enabling believable simulations of human behavior.\\n\\nCAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society[\\u200b](#camel-communicative-agents-for-mind-exploration-of-large-language-model-society \"Direct link to CAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2303.17760v2\\n \\n* **Title:** CAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society\\n \\n* **Authors:** Guohao Li, Hasan Abed Al Kader Hammoud, Hani Itani, et al.\\n \\n* **Published Date:** 2023-03-31\\n \\n* **URL:** [http://arxiv.org/abs/2303.17760v2](http://arxiv.org/abs/2303.17760v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [camel\\\\_role\\\\_playing](https://github.com/langchain-ai/langchain/blob/master/cookbook/camel_role_playing.ipynb)\\n \\n\\n**Abstract:** The rapid advancement of chat-based language models has led to remarkable progress in complex task-solving. However, their success heavily relies on human input to guide the conversation, which can be challenging and time-consuming. This paper explores the potential of building scalable techniques to facilitate autonomous cooperation among communicative agents, and provides insight into their \"cognitive\" processes. To address the challenges of achieving autonomous cooperation, we propose a novel communicative agent framework named role-playing. Our approach involves using inception prompting to guide chat agents toward task completion while maintaining consistency with human intentions. We showcase how role-playing can be used to generate conversational data for studying the behaviors and capabilities of a society of agents, providing a valuable resource for investigating conversational language models. In particular, we conduct comprehensive studies on instruction-following cooperation in multi-agent settings. Our contributions include introducing a novel communicative agent framework, offering a scalable approach for studying the cooperative behaviors and capabilities of multi-agent systems, and open-sourcing our library to support research on communicative agents and beyond: [https://github.com/camel-ai/camel](https://github.com/camel-ai/camel)\\n.\\n\\nHuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face[\\u200b](#hugginggpt-solving-ai-tasks-with-chatgpt-and-its-friends-in-hugging-face \"Direct link to HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face\")\\n\\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2303.17580v4\\n \\n* **Title:** HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face\\n \\n* **Authors:** Yongliang Shen, Kaitao Song, Xu Tan, et al.\\n \\n* **Published Date:** 2023-03-30\\n \\n* **URL:** [http://arxiv.org/abs/2303.17580v4](http://arxiv.org/abs/2303.17580v4)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental.autonomous\\\\_agents](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.autonomous_agents)\\n \\n * **Cookbook:** [hugginggpt](https://github.com/langchain-ai/langchain/blob/master/cookbook/hugginggpt.ipynb)\\n \\n\\n**Abstract:** Solving complicated AI tasks with different domains and modalities is a key step toward artificial general intelligence. While there are numerous AI models available for various domains and modalities, they cannot handle complicated AI tasks autonomously. Considering large language models (LLMs) have exhibited exceptional abilities in language understanding, generation, interaction, and reasoning, we advocate that LLMs could act as a controller to manage existing AI models to solve complicated AI tasks, with language serving as a generic interface to empower this. Based on this philosophy, we present HuggingGPT, an LLM-powered agent that leverages LLMs (e.g., ChatGPT) to connect various AI models in machine learning communities (e.g., Hugging Face) to solve AI tasks. Specifically, we use ChatGPT to conduct task planning when receiving a user request, select models according to their function descriptions available in Hugging Face, execute each subtask with the selected AI model, and summarize the response according to the execution results. By leveraging the strong language capability of ChatGPT and abundant AI models in Hugging Face, HuggingGPT can tackle a wide range of sophisticated AI tasks spanning different modalities and domains and achieve impressive results in language, vision, speech, and other challenging tasks, which paves a new way towards the realization of artificial general intelligence.\\n\\nGPT-4 Technical Report[\\u200b](#gpt-4-technical-report \"Direct link to GPT-4 Technical Report\")\\n\\n-------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2303.08774v6\\n \\n* **Title:** GPT-4 Technical Report\\n \\n* **Authors:** OpenAI, Josh Achiam, Steven Adler, et al.\\n \\n* **Published Date:** 2023-03-15\\n \\n* **URL:** [http://arxiv.org/abs/2303.08774v6](http://arxiv.org/abs/2303.08774v6)\\n \\n* **LangChain:**\\n \\n * **Documentation:** [docs/integrations/vectorstores/mongodb\\\\_atlas](https://python.langchain.com/docs/integrations/vectorstores/mongodb_atlas)\\n \\n\\n**Abstract:** We report the development of GPT-4, a large-scale, multimodal model which can accept image and text inputs and produce text outputs. While less capable than humans in many real-world scenarios, GPT-4 exhibits human-level performance on various professional and academic benchmarks, including passing a simulated bar exam with a score around the top 10% of test takers. GPT-4 is a Transformer-based model pre-trained to predict the next token in a document. The post-training alignment process results in improved performance on measures of factuality and adherence to desired behavior. A core component of this project was developing infrastructure and optimization methods that behave predictably across a wide range of scales. This allowed us to accurately predict some aspects of GPT-4\\'s performance based on models trained with no more than 1/1,000th the compute of GPT-4.\\n\\nA Watermark for Large Language Models[\\u200b](#a-watermark-for-large-language-models \"Direct link to A Watermark for Large Language Models\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2301.10226v4\\n \\n* **Title:** A Watermark for Large Language Models\\n \\n* **Authors:** John Kirchenbauer, Jonas Geiping, Yuxin Wen, et al.\\n \\n* **Published Date:** 2023-01-24\\n \\n* **URL:** [http://arxiv.org/abs/2301.10226v4](http://arxiv.org/abs/2301.10226v4)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_community...OCIModelDeploymentTGI](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.oci_data_science_model_deployment_endpoint.OCIModelDeploymentTGI.html#langchain_community.llms.oci_data_science_model_deployment_endpoint.OCIModelDeploymentTGI)\\n , [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference)\\n \\n\\n**Abstract:** Potential harms of large language models can be mitigated by watermarking model output, i.e., embedding signals into generated text that are invisible to humans but algorithmically detectable from a short span of tokens. We propose a watermarking framework for proprietary language models. The watermark can be embedded with negligible impact on text quality, and can be detected using an efficient open-source algorithm without access to the language model API or parameters. The watermark works by selecting a randomized set of \"green\" tokens before a word is generated, and then softly promoting use of green tokens during sampling. We propose a statistical test for detecting the watermark with interpretable p-values, and derive an information-theoretic framework for analyzing the sensitivity of the watermark. We test the watermark using a multi-billion parameter model from the Open Pretrained Transformer (OPT) family, and discuss robustness and security.\\n\\nPrecise Zero-Shot Dense Retrieval without Relevance Labels[\\u200b](#precise-zero-shot-dense-retrieval-without-relevance-labels \"Direct link to Precise Zero-Shot Dense Retrieval without Relevance Labels\")\\n\\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2212.10496v1\\n \\n* **Title:** Precise Zero-Shot Dense Retrieval without Relevance Labels\\n \\n* **Authors:** Luyu Gao, Xueguang Ma, Jimmy Lin, et al.\\n \\n* **Published Date:** 2022-12-20\\n \\n* **URL:** [http://arxiv.org/abs/2212.10496v1](http://arxiv.org/abs/2212.10496v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain...HypotheticalDocumentEmbedder](https://api.python.langchain.com/en/latest/chains/langchain.chains.hyde.base.HypotheticalDocumentEmbedder.html#langchain.chains.hyde.base.HypotheticalDocumentEmbedder)\\n \\n * **Template:** [hyde](https://python.langchain.com/docs/templates/hyde)\\n \\n * **Cookbook:** [hypothetical\\\\_document\\\\_embeddings](https://github.com/langchain-ai/langchain/blob/master/cookbook/hypothetical_document_embeddings.ipynb)\\n \\n\\n**Abstract:** While dense retrieval has been shown effective and efficient across tasks and languages, it remains difficult to create effective fully zero-shot dense retrieval systems when no relevance label is available. In this paper, we recognize the difficulty of zero-shot learning and encoding relevance. Instead, we propose to pivot through Hypothetical Document Embeddings~(HyDE). Given a query, HyDE first zero-shot instructs an instruction-following language model (e.g. InstructGPT) to generate a hypothetical document. The document captures relevance patterns but is unreal and may contain false details. Then, an unsupervised contrastively learned encoder~(e.g. Contriever) encodes the document into an embedding vector. This vector identifies a neighborhood in the corpus embedding space, where similar real documents are retrieved based on vector similarity. This second step ground the generated document to the actual corpus, with the encoder\\'s dense bottleneck filtering out the incorrect details. Our experiments show that HyDE significantly outperforms the state-of-the-art unsupervised dense retriever Contriever and shows strong performance comparable to fine-tuned retrievers, across various tasks (e.g. web search, QA, fact verification) and languages~(e.g. sw, ko, ja).\\n\\nRobust and Explainable Identification of Logical Fallacies in Natural Language Arguments[\\u200b](#robust-and-explainable-identification-of-logical-fallacies-in-natural-language-arguments \"Direct link to Robust and Explainable Identification of Logical Fallacies in Natural Language Arguments\")\\n\\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2212.07425v3\\n \\n* **Title:** Robust and Explainable Identification of Logical Fallacies in Natural Language Arguments\\n \\n* **Authors:** Zhivar Sourati, Vishnu Priya Prasanna Venkatesh, Darshan Deshpande, et al.\\n \\n* **Published Date:** 2022-12-12\\n \\n* **URL:** [http://arxiv.org/abs/2212.07425v3](http://arxiv.org/abs/2212.07425v3)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental.fallacy\\\\_removal](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.fallacy_removal)\\n \\n\\n**Abstract:** The spread of misinformation, propaganda, and flawed argumentation has been amplified in the Internet era. Given the volume of data and the subtlety of identifying violations of argumentation norms, supporting information analytics tasks, like content moderation, with trustworthy methods that can identify logical fallacies is essential. In this paper, we formalize prior theoretical work on logical fallacies into a comprehensive three-stage evaluation framework of detection, coarse-grained, and fine-grained classification. We adapt existing evaluation datasets for each stage of the evaluation. We employ three families of robust and explainable methods based on prototype reasoning, instance-based reasoning, and knowledge injection. The methods combine language models with background knowledge and explainable mechanisms. Moreover, we address data sparsity with strategies for data augmentation and curriculum learning. Our three-stage framework natively consolidates prior datasets and methods from existing tasks, like propaganda detection, serving as an overarching evaluation testbed. We extensively evaluate these methods on our datasets, focusing on their robustness and explainability. Our results provide insight into the strengths and weaknesses of the methods on different components and fallacy classes, indicating that fallacy identification is a challenging task that may require specialized forms of reasoning to capture various classes. We share our open-source code and data on GitHub to support further work on logical fallacy identification.\\n\\nComplementary Explanations for Effective In-Context Learning[\\u200b](#complementary-explanations-for-effective-in-context-learning \"Direct link to Complementary Explanations for Effective In-Context Learning\")\\n\\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2211.13892v2\\n \\n* **Title:** Complementary Explanations for Effective In-Context Learning\\n \\n* **Authors:** Xi Ye, Srinivasan Iyer, Asli Celikyilmaz, et al.\\n \\n* **Published Date:** 2022-11-25\\n \\n* **URL:** [http://arxiv.org/abs/2211.13892v2](http://arxiv.org/abs/2211.13892v2)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_core...MaxMarginalRelevanceExampleSelector](https://api.python.langchain.com/en/latest/example_selectors/langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector.html#langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector)\\n \\n\\n**Abstract:** Large language models (LLMs) have exhibited remarkable capabilities in learning from explanations in prompts, but there has been limited understanding of exactly how these explanations function or why they are effective. This work aims to better understand the mechanisms by which explanations are used for in-context learning. We first study the impact of two different factors on the performance of prompts with explanations: the computation trace (the way the solution is decomposed) and the natural language used to express the prompt. By perturbing explanations on three controlled tasks, we show that both factors contribute to the effectiveness of explanations. We further study how to form maximally effective sets of explanations for solving a given test query. We find that LLMs can benefit from the complementarity of the explanation set: diverse reasoning skills shown by different exemplars can lead to better performance. Therefore, we propose a maximal marginal relevance-based exemplar selection approach for constructing exemplar sets that are both relevant as well as complementary, which successfully improves the in-context learning performance across three real-world tasks on multiple LLMs.\\n\\nPAL: Program-aided Language Models[\\u200b](#pal-program-aided-language-models \"Direct link to PAL: Program-aided Language Models\")\\n\\n------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2211.10435v2\\n \\n* **Title:** PAL: Program-aided Language Models\\n \\n* **Authors:** Luyu Gao, Aman Madaan, Shuyan Zhou, et al.\\n \\n* **Published Date:** 2022-11-18\\n \\n* **URL:** [http://arxiv.org/abs/2211.10435v2](http://arxiv.org/abs/2211.10435v2)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental...PALChain](https://api.python.langchain.com/en/latest/pal_chain/langchain_experimental.pal_chain.base.PALChain.html#langchain_experimental.pal_chain.base.PALChain)\\n , [langchain\\\\_experimental.pal\\\\_chain](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.pal_chain)\\n \\n * **Cookbook:** [program\\\\_aided\\\\_language\\\\_model](https://github.com/langchain-ai/langchain/blob/master/cookbook/program_aided_language_model.ipynb)\\n \\n\\n**Abstract:** Large language models (LLMs) have recently demonstrated an impressive ability to perform arithmetic and symbolic reasoning tasks, when provided with a few examples at test time (\"few-shot prompting\"). Much of this success can be attributed to prompting methods such as \"chain-of-thought\\'\\', which employ LLMs for both understanding the problem description by decomposing it into steps, as well as solving each step of the problem. While LLMs seem to be adept at this sort of step-by-step decomposition, LLMs often make logical and arithmetic mistakes in the solution part, even when the problem is decomposed correctly. In this paper, we present Program-Aided Language models (PAL): a novel approach that uses the LLM to read natural language problems and generate programs as the intermediate reasoning steps, but offloads the solution step to a runtime such as a Python interpreter. With PAL, decomposing the natural language problem into runnable steps remains the only learning task for the LLM, while solving is delegated to the interpreter. We demonstrate this synergy between a neural LLM and a symbolic interpreter across 13 mathematical, symbolic, and algorithmic reasoning tasks from BIG-Bench Hard and other benchmarks. In all these natural language reasoning tasks, generating code using an LLM and reasoning using a Python interpreter leads to more accurate results than much larger models. For example, PAL using Codex achieves state-of-the-art few-shot accuracy on the GSM8K benchmark of math word problems, surpassing PaLM-540B which uses chain-of-thought by absolute 15% top-1. Our code and data are publicly available at [http://reasonwithpal.com/](http://reasonwithpal.com/)\\n .\\n\\nReAct: Synergizing Reasoning and Acting in Language Models[\\u200b](#react-synergizing-reasoning-and-acting-in-language-models \"Direct link to ReAct: Synergizing Reasoning and Acting in Language Models\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2210.03629v3\\n \\n* **Title:** ReAct: Synergizing Reasoning and Acting in Language Models\\n \\n* **Authors:** Shunyu Yao, Jeffrey Zhao, Dian Yu, et al.\\n \\n* **Published Date:** 2022-10-06\\n \\n* **URL:** [http://arxiv.org/abs/2210.03629v3](http://arxiv.org/abs/2210.03629v3)\\n \\n* **LangChain:**\\n \\n * **Documentation:** [docs/integrations/providers/cohere](https://python.langchain.com/docs/integrations/providers/cohere)\\n , [docs/integrations/chat/huggingface](https://python.langchain.com/docs/integrations/chat/huggingface)\\n , [docs/integrations/tools/ionic\\\\_shopping](https://python.langchain.com/docs/integrations/tools/ionic_shopping)\\n \\n * **API Reference:** [langchain...create\\\\_react\\\\_agent](https://api.python.langchain.com/en/latest/agents/langchain.agents.react.agent.create_react_agent.html#langchain.agents.react.agent.create_react_agent)\\n , [langchain...TrajectoryEvalChain](https://api.python.langchain.com/en/latest/evaluation/langchain.evaluation.agents.trajectory_eval_chain.TrajectoryEvalChain.html#langchain.evaluation.agents.trajectory_eval_chain.TrajectoryEvalChain)\\n \\n\\n**Abstract:** While large language models (LLMs) have demonstrated impressive capabilities across tasks in language understanding and interactive decision making, their abilities for reasoning (e.g. chain-of-thought prompting) and acting (e.g. action plan generation) have primarily been studied as separate topics. In this paper, we explore the use of LLMs to generate both reasoning traces and task-specific actions in an interleaved manner, allowing for greater synergy between the two: reasoning traces help the model induce, track, and update action plans as well as handle exceptions, while actions allow it to interface with external sources, such as knowledge bases or environments, to gather additional information. We apply our approach, named ReAct, to a diverse set of language and decision making tasks and demonstrate its effectiveness over state-of-the-art baselines, as well as improved human interpretability and trustworthiness over methods without reasoning or acting components. Concretely, on question answering (HotpotQA) and fact verification (Fever), ReAct overcomes issues of hallucination and error propagation prevalent in chain-of-thought reasoning by interacting with a simple Wikipedia API, and generates human-like task-solving trajectories that are more interpretable than baselines without reasoning traces. On two interactive decision making benchmarks (ALFWorld and WebShop), ReAct outperforms imitation and reinforcement learning methods by an absolute success rate of 34% and 10% respectively, while being prompted with only one or two in-context examples. Project site with code: [https://react-lm.github.io](https://react-lm.github.io)\\n\\nDeep Lake: a Lakehouse for Deep Learning[\\u200b](#deep-lake-a-lakehouse-for-deep-learning \"Direct link to Deep Lake: a Lakehouse for Deep Learning\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2209.10785v2\\n \\n* **Title:** Deep Lake: a Lakehouse for Deep Learning\\n \\n* **Authors:** Sasun Hambardzumyan, Abhinav Tuli, Levon Ghukasyan, et al.\\n \\n* **Published Date:** 2022-09-22\\n \\n* **URL:** [http://arxiv.org/abs/2209.10785v2](http://arxiv.org/abs/2209.10785v2)\\n \\n* **LangChain:**\\n \\n * **Documentation:** [docs/integrations/providers/activeloop\\\\_deeplake](https://python.langchain.com/docs/integrations/providers/activeloop_deeplake)\\n \\n\\n**Abstract:** Traditional data lakes provide critical data infrastructure for analytical workloads by enabling time travel, running SQL queries, ingesting data with ACID transactions, and visualizing petabyte-scale datasets on cloud storage. They allow organizations to break down data silos, unlock data-driven decision-making, improve operational efficiency, and reduce costs. However, as deep learning usage increases, traditional data lakes are not well-designed for applications such as natural language processing (NLP), audio processing, computer vision, and applications involving non-tabular datasets. This paper presents Deep Lake, an open-source lakehouse for deep learning applications developed at Activeloop. Deep Lake maintains the benefits of a vanilla data lake with one key difference: it stores complex data, such as images, videos, annotations, as well as tabular data, in the form of tensors and rapidly streams the data over the network to (a) Tensor Query Language, (b) in-browser visualization engine, or (c) deep learning frameworks without sacrificing GPU utilization. Datasets stored in Deep Lake can be accessed from PyTorch, TensorFlow, JAX, and integrate with numerous MLOps tools.\\n\\nBitext Mining Using Distilled Sentence Representations for Low-Resource Languages[\\u200b](#bitext-mining-using-distilled-sentence-representations-for-low-resource-languages \"Direct link to Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2205.12654v1\\n \\n* **Title:** Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages\\n \\n* **Authors:** Kevin Heffernan, Onur Çelebi, Holger Schwenk\\n \\n* **Published Date:** 2022-05-25\\n \\n* **URL:** [http://arxiv.org/abs/2205.12654v1](http://arxiv.org/abs/2205.12654v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...LaserEmbeddings](https://api.python.langchain.com/en/latest/embeddings/langchain_community.embeddings.laser.LaserEmbeddings.html#langchain_community.embeddings.laser.LaserEmbeddings)\\n \\n\\n**Abstract:** Scaling multilingual representation learning beyond the hundred most frequent languages is challenging, in particular to cover the long tail of low-resource languages. A promising approach has been to train one-for-all multilingual models capable of cross-lingual transfer, but these models often suffer from insufficient capacity and interference between unrelated languages. Instead, we move away from this approach and focus on training multiple language (family) specific representations, but most prominently enable all languages to still be encoded in the same representational space. To achieve this, we focus on teacher-student training, allowing all encoders to be mutually compatible for bitext mining, and enabling fast learning of new languages. We introduce a new teacher-student training scheme which combines supervised and self-supervised training, allowing encoders to take advantage of monolingual training data, which is valuable in the low-resource setting. Our approach significantly outperforms the original LASER encoder. We study very low-resource languages and handle 50 African languages, many of which are not covered by any other model. For these languages, we train sentence encoders, mine bitexts, and validate the bitexts by training NMT systems.\\n\\nEvaluating the Text-to-SQL Capabilities of Large Language Models[\\u200b](#evaluating-the-text-to-sql-capabilities-of-large-language-models \"Direct link to Evaluating the Text-to-SQL Capabilities of Large Language Models\")\\n\\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2204.00498v1\\n \\n* **Title:** Evaluating the Text-to-SQL Capabilities of Large Language Models\\n \\n* **Authors:** Nitarshan Rajkumar, Raymond Li, Dzmitry Bahdanau\\n \\n* **Published Date:** 2022-03-15\\n \\n* **URL:** [http://arxiv.org/abs/2204.00498v1](http://arxiv.org/abs/2204.00498v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...SparkSQL](https://api.python.langchain.com/en/latest/utilities/langchain_community.utilities.spark_sql.SparkSQL.html#langchain_community.utilities.spark_sql.SparkSQL)\\n , [langchain\\\\_community...SQLDatabase](https://api.python.langchain.com/en/latest/utilities/langchain_community.utilities.sql_database.SQLDatabase.html#langchain_community.utilities.sql_database.SQLDatabase)\\n \\n\\n**Abstract:** We perform an empirical evaluation of Text-to-SQL capabilities of the Codex language model. We find that, without any finetuning, Codex is a strong baseline on the Spider benchmark; we also analyze the failure modes of Codex in this setting. Furthermore, we demonstrate on the GeoQuery and Scholar benchmarks that a small number of in-domain examples provided in the prompt enables Codex to perform better than state-of-the-art models finetuned on such few-shot examples.\\n\\nLocally Typical Sampling[\\u200b](#locally-typical-sampling \"Direct link to Locally Typical Sampling\")\\n\\n-------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2202.00666v5\\n \\n* **Title:** Locally Typical Sampling\\n \\n* **Authors:** Clara Meister, Tiago Pimentel, Gian Wiher, et al.\\n \\n* **Published Date:** 2022-02-01\\n \\n* **URL:** [http://arxiv.org/abs/2202.00666v5](http://arxiv.org/abs/2202.00666v5)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference)\\n \\n\\n**Abstract:** Today\\'s probabilistic language generators fall short when it comes to producing coherent and fluent text despite the fact that the underlying models perform well under standard metrics, e.g., perplexity. This discrepancy has puzzled the language generation community for the last few years. In this work, we posit that the abstraction of natural language generation as a discrete stochastic process--which allows for an information-theoretic analysis--can provide new insights into the behavior of probabilistic language generators, e.g., why high-probability texts can be dull or repetitive. Humans use language as a means of communicating information, aiming to do so in a simultaneously efficient and error-minimizing manner; in fact, psycholinguistics research suggests humans choose each word in a string with this subconscious goal in mind. We formally define the set of strings that meet this criterion: those for which each word has an information content close to the expected information content, i.e., the conditional entropy of our model. We then propose a simple and efficient procedure for enforcing this criterion when generating from probabilistic models, which we call locally typical sampling. Automatic and human evaluations show that, in comparison to nucleus and top-k sampling, locally typical sampling offers competitive performance (in both abstractive summarization and story generation) in terms of quality while consistently reducing degenerate repetitions.\\n\\nLearning Transferable Visual Models From Natural Language Supervision[\\u200b](#learning-transferable-visual-models-from-natural-language-supervision \"Direct link to Learning Transferable Visual Models From Natural Language Supervision\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2103.00020v1\\n \\n* **Title:** Learning Transferable Visual Models From Natural Language Supervision\\n \\n* **Authors:** Alec Radford, Jong Wook Kim, Chris Hallacy, et al.\\n \\n* **Published Date:** 2021-02-26\\n \\n* **URL:** [http://arxiv.org/abs/2103.00020v1](http://arxiv.org/abs/2103.00020v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental.open\\\\_clip](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.open_clip)\\n \\n\\n**Abstract:** State-of-the-art computer vision systems are trained to predict a fixed set of predetermined object categories. This restricted form of supervision limits their generality and usability since additional labeled data is needed to specify any other visual concept. Learning directly from raw text about images is a promising alternative which leverages a much broader source of supervision. We demonstrate that the simple pre-training task of predicting which caption goes with which image is an efficient and scalable way to learn SOTA image representations from scratch on a dataset of 400 million (image, text) pairs collected from the internet. After pre-training, natural language is used to reference learned visual concepts (or describe new ones) enabling zero-shot transfer of the model to downstream tasks. We study the performance of this approach by benchmarking on over 30 different existing computer vision datasets, spanning tasks such as OCR, action recognition in videos, geo-localization, and many types of fine-grained object classification. The model transfers non-trivially to most tasks and is often competitive with a fully supervised baseline without the need for any dataset specific training. For instance, we match the accuracy of the original ResNet-50 on ImageNet zero-shot without needing to use any of the 1.28 million training examples it was trained on. We release our code and pre-trained model weights at [https://github.com/OpenAI/CLIP](https://github.com/OpenAI/CLIP)\\n.\\n\\nCTRL: A Conditional Transformer Language Model for Controllable Generation[\\u200b](#ctrl-a-conditional-transformer-language-model-for-controllable-generation \"Direct link to CTRL: A Conditional Transformer Language Model for Controllable Generation\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 1909.05858v2\\n \\n* **Title:** CTRL: A Conditional Transformer Language Model for Controllable Generation\\n \\n* **Authors:** Nitish Shirish Keskar, Bryan McCann, Lav R. Varshney, et al.\\n \\n* **Published Date:** 2019-09-11\\n \\n* **URL:** [http://arxiv.org/abs/1909.05858v2](http://arxiv.org/abs/1909.05858v2)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference)\\n \\n\\n**Abstract:** Large-scale language models show promising text generation capabilities, but users cannot easily control particular aspects of the generated text. We release CTRL, a 1.63 billion-parameter conditional transformer language model, trained to condition on control codes that govern style, content, and task-specific behavior. Control codes were derived from structure that naturally co-occurs with raw text, preserving the advantages of unsupervised learning while providing more explicit control over text generation. These codes also allow CTRL to predict which parts of the training data are most likely given a sequence. This provides a potential method for analyzing large amounts of data via model-based source attribution. We have released multiple full-sized, pretrained versions of CTRL at [https://github.com/salesforce/ctrl](https://github.com/salesforce/ctrl)\\n.\\n\\nSentence-BERT: Sentence Embeddings using Siamese BERT-Networks[\\u200b](#sentence-bert-sentence-embeddings-using-siamese-bert-networks \"Direct link to Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 1908.10084v1\\n \\n* **Title:** Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks\\n \\n* **Authors:** Nils Reimers, Iryna Gurevych\\n \\n* **Published Date:** 2019-08-27\\n \\n* **URL:** [http://arxiv.org/abs/1908.10084v1](http://arxiv.org/abs/1908.10084v1)\\n \\n* **LangChain:**\\n \\n * **Documentation:** [docs/integrations/text\\\\_embedding/sentence\\\\_transformers](https://python.langchain.com/docs/integrations/text_embedding/sentence_transformers)\\n \\n\\n**Abstract:** BERT (Devlin et al., 2018) and RoBERTa (Liu et al., 2019) has set a new state-of-the-art performance on sentence-pair regression tasks like semantic textual similarity (STS). However, it requires that both sentences are fed into the network, which causes a massive computational overhead: Finding the most similar pair in a collection of 10,000 sentences requires about 50 million inference computations (~65 hours) with BERT. The construction of BERT makes it unsuitable for semantic similarity search as well as for unsupervised tasks like clustering. In this publication, we present Sentence-BERT (SBERT), a modification of the pretrained BERT network that use siamese and triplet network structures to derive semantically meaningful sentence embeddings that can be compared using cosine-similarity. This reduces the effort for finding the most similar pair from 65 hours with BERT / RoBERTa to about 5 seconds with SBERT, while maintaining the accuracy from BERT. We evaluate SBERT and SRoBERTa on common STS tasks and transfer learning tasks, where it outperforms other state-of-the-art sentence embeddings methods.\\n\\n[Edit this page](https://github.com/langchain-ai/langchain/edit/master/docs/docs/additional_resources/arxiv_references.mdx)\\n\\n* * *\\n\\n#### Was this page helpful?\\n\\n \\n\\n#### You can also leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchain/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E)\\n.\\n\\n* [Summary](#summary)\\n \\n* [Self-Discover: Large Language Models Self-Compose Reasoning Structures](#self-discover-large-language-models-self-compose-reasoning-structures)\\n \\n* [RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval](#raptor-recursive-abstractive-processing-for-tree-organized-retrieval)\\n \\n* [Corrective Retrieval Augmented Generation](#corrective-retrieval-augmented-generation)\\n \\n* [Mixtral of Experts](#mixtral-of-experts)\\n \\n* [Dense X Retrieval: What Retrieval Granularity Should We Use?](#dense-x-retrieval-what-retrieval-granularity-should-we-use)\\n \\n* [Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models](#chain-of-note-enhancing-robustness-in-retrieval-augmented-language-models)\\n \\n* [Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection](#self-rag-learning-to-retrieve-generate-and-critique-through-self-reflection)\\n \\n* [Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models](#take-a-step-back-evoking-reasoning-via-abstraction-in-large-language-models)\\n \\n* [Llama 2: Open Foundation and Fine-Tuned Chat Models](#llama-2-open-foundation-and-fine-tuned-chat-models)\\n \\n* [Query Rewriting for Retrieval-Augmented Large Language Models](#query-rewriting-for-retrieval-augmented-large-language-models)\\n \\n* [Large Language Model Guided Tree-of-Thought](#large-language-model-guided-tree-of-thought)\\n \\n* [Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models](#plan-and-solve-prompting-improving-zero-shot-chain-of-thought-reasoning-by-large-language-models)\\n \\n* [Visual Instruction Tuning](#visual-instruction-tuning)\\n \\n* [Generative Agents: Interactive Simulacra of Human Behavior](#generative-agents-interactive-simulacra-of-human-behavior)\\n \\n* [CAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society](#camel-communicative-agents-for-mind-exploration-of-large-language-model-society)\\n \\n* [HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face](#hugginggpt-solving-ai-tasks-with-chatgpt-and-its-friends-in-hugging-face)\\n \\n* [GPT-4 Technical Report](#gpt-4-technical-report)\\n \\n* [A Watermark for Large Language Models](#a-watermark-for-large-language-models)\\n \\n* [Precise Zero-Shot Dense Retrieval without Relevance Labels](#precise-zero-shot-dense-retrieval-without-relevance-labels)\\n \\n* [Robust and Explainable Identification of Logical Fallacies in Natural Language Arguments](#robust-and-explainable-identification-of-logical-fallacies-in-natural-language-arguments)\\n \\n* [Complementary Explanations for Effective In-Context Learning](#complementary-explanations-for-effective-in-context-learning)\\n \\n* [PAL: Program-aided Language Models](#pal-program-aided-language-models)\\n \\n* [ReAct: Synergizing Reasoning and Acting in Language Models](#react-synergizing-reasoning-and-acting-in-language-models)\\n \\n* [Deep Lake: a Lakehouse for Deep Learning](#deep-lake-a-lakehouse-for-deep-learning)\\n \\n* [Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages](#bitext-mining-using-distilled-sentence-representations-for-low-resource-languages)\\n \\n* [Evaluating the Text-to-SQL Capabilities of Large Language Models](#evaluating-the-text-to-sql-capabilities-of-large-language-models)\\n \\n* [Locally Typical Sampling](#locally-typical-sampling)\\n \\n* [Learning Transferable Visual Models From Natural Language Supervision](#learning-transferable-visual-models-from-natural-language-supervision)\\n \\n* [CTRL: A Conditional Transformer Language Model for Controllable Generation](#ctrl-a-conditional-transformer-language-model-for-controllable-generation)\\n \\n* [Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks](#sentence-bert-sentence-embeddings-using-siamese-bert-networks)\\n \\n\\nCommunity\\n\\n* [Discord](https://discord.gg/cU2adEyC7w)\\n \\n* [Twitter](https://twitter.com/LangChainAI)\\n \\n\\nGitHub\\n\\n* [Organization](https://github.com/langchain-ai)\\n \\n* [Python](https://github.com/langchain-ai/langchain)\\n \\n* [JS/TS](https://github.com/langchain-ai/langchainjs)\\n \\n\\nMore\\n\\n* [Homepage](https://langchain.com)\\n \\n* [Blog](https://blog.langchain.dev)\\n \\n* [YouTube](https://www.youtube.com/@LangChain)\\n \\n\\nCopyright © 2024 LangChain, Inc.', 'metadata': {'ogLocaleAlternate': [], 'sourceURL': 'https://python.langchain.com/v0.2/docs/additional_resources/arxiv_references/', 'pageStatusCode': 200}}, {'content': '[Skip to main content](#__docusaurus_skipToContent_fallback)\\n\\nLangChain 0.2 is out! Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchain/discussions/21716)\\n. You can view the v0.1 docs [here](/v0.1/docs/get_started/introduction/)\\n.\\n\\n[![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark.png)![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark-dark.png)](/v0.2/)\\n[Integrations](/v0.2/docs/integrations/platforms/)\\n[API Reference](https://api.python.langchain.com)\\n\\n[More](#)\\n\\n* [People](/v0.2/docs/people/)\\n \\n* [Contributing](/v0.2/docs/contributing/)\\n \\n* [Templates](/v0.2/docs/templates/)\\n \\n* [Cookbooks](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)\\n \\n* [3rd party tutorials](/v0.2/docs/additional_resources/tutorials/)\\n \\n* [YouTube](/v0.2/docs/additional_resources/youtube/)\\n \\n* [arXiv](/v0.2/docs/additional_resources/arxiv_references/)\\n \\n\\n[v0.2](#)\\n\\n* [v0.2](/v0.2/docs/introduction/)\\n \\n* [v0.1](https://python.langchain.com/v0.1/docs/get_started/introduction)\\n \\n\\n[🦜️🔗](#)\\n\\n* [LangSmith](https://smith.langchain.com)\\n \\n* [LangSmith Docs](https://docs.smith.langchain.com/)\\n \\n* [LangServe GitHub](https://github.com/langchain-ai/langserve)\\n \\n* [Templates GitHub](https://github.com/langchain-ai/langchain/tree/master/templates)\\n \\n* [Templates Hub](https://templates.langchain.com)\\n \\n* [LangChain Hub](https://smith.langchain.com/hub)\\n \\n* [JS/TS Docs](https://js.langchain.com)\\n \\n\\n[💬](https://chat.langchain.com)\\n[](https://github.com/langchain-ai/langchain)\\n\\nSearch\\n\\nDependents\\n==========\\n\\nDependents stats for `langchain-ai/langchain`\\n\\n[![](https://img.shields.io/static/v1?label=Used%20by&message=41717&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents)\\n [![](https://img.shields.io/static/v1?label=Used%20by%20(public)](https://github.com/langchain-ai/langchain/network/dependents)\\n [![](https://img.shields.io/static/v1?label=Used%20by%20(private)](https://github.com/langchain-ai/langchain/network/dependents)\\n\\n\\\\[update: `2023-12-08`; only dependent repositories with Stars > 100\\\\]\\n\\n| Repository | Stars |\\n| --- | --- |\\n| [AntonOsika/gpt-engineer](https://github.com/AntonOsika/gpt-engineer) | 46514 |\\n| [imartinez/privateGPT](https://github.com/imartinez/privateGPT) | 44439 |\\n| [LAION-AI/Open-Assistant](https://github.com/LAION-AI/Open-Assistant) | 35906 |\\n| [hpcaitech/ColossalAI](https://github.com/hpcaitech/ColossalAI) | 35528 |\\n| [moymix/TaskMatrix](https://github.com/moymix/TaskMatrix) | 34342 |\\n| [geekan/MetaGPT](https://github.com/geekan/MetaGPT) | 31126 |\\n| [streamlit/streamlit](https://github.com/streamlit/streamlit) | 28911 |\\n| [reworkd/AgentGPT](https://github.com/reworkd/AgentGPT) | 27833 |\\n| [StanGirard/quivr](https://github.com/StanGirard/quivr) | 26032 |\\n| [OpenBB-finance/OpenBBTerminal](https://github.com/OpenBB-finance/OpenBBTerminal) | 24946 |\\n| [run-llama/llama\\\\_index](https://github.com/run-llama/llama_index) | 24859 |\\n| [jmorganca/ollama](https://github.com/jmorganca/ollama) | 20849 |\\n| [openai/chatgpt-retrieval-plugin](https://github.com/openai/chatgpt-retrieval-plugin) | 20249 |\\n| [chatchat-space/Langchain-Chatchat](https://github.com/chatchat-space/Langchain-Chatchat) | 19305 |\\n| [mindsdb/mindsdb](https://github.com/mindsdb/mindsdb) | 19172 |\\n| [PromtEngineer/localGPT](https://github.com/PromtEngineer/localGPT) | 17528 |\\n| [cube-js/cube](https://github.com/cube-js/cube) | 16575 |\\n| [mlflow/mlflow](https://github.com/mlflow/mlflow) | 16000 |\\n| [mudler/LocalAI](https://github.com/mudler/LocalAI) | 14067 |\\n| [logspace-ai/langflow](https://github.com/logspace-ai/langflow) | 13679 |\\n| [GaiZhenbiao/ChuanhuChatGPT](https://github.com/GaiZhenbiao/ChuanhuChatGPT) | 13648 |\\n| [arc53/DocsGPT](https://github.com/arc53/DocsGPT) | 13423 |\\n| [openai/evals](https://github.com/openai/evals) | 12649 |\\n| [airbytehq/airbyte](https://github.com/airbytehq/airbyte) | 12460 |\\n| [langgenius/dify](https://github.com/langgenius/dify) | 11859 |\\n| [databrickslabs/dolly](https://github.com/databrickslabs/dolly) | 10672 |\\n| [AIGC-Audio/AudioGPT](https://github.com/AIGC-Audio/AudioGPT) | 9437 |\\n| [langchain-ai/langchainjs](https://github.com/langchain-ai/langchainjs) | 9227 |\\n| [gventuri/pandas-ai](https://github.com/gventuri/pandas-ai) | 9203 |\\n| [aws/amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) | 9079 |\\n| [h2oai/h2ogpt](https://github.com/h2oai/h2ogpt) | 8945 |\\n| [PipedreamHQ/pipedream](https://github.com/PipedreamHQ/pipedream) | 7550 |\\n| [bentoml/OpenLLM](https://github.com/bentoml/OpenLLM) | 6957 |\\n| [THUDM/ChatGLM3](https://github.com/THUDM/ChatGLM3) | 6801 |\\n| [microsoft/promptflow](https://github.com/microsoft/promptflow) | 6776 |\\n| [cpacker/MemGPT](https://github.com/cpacker/MemGPT) | 6642 |\\n| [joshpxyne/gpt-migrate](https://github.com/joshpxyne/gpt-migrate) | 6482 |\\n| [zauberzeug/nicegui](https://github.com/zauberzeug/nicegui) | 6037 |\\n| [embedchain/embedchain](https://github.com/embedchain/embedchain) | 6023 |\\n| [mage-ai/mage-ai](https://github.com/mage-ai/mage-ai) | 6019 |\\n| [assafelovic/gpt-researcher](https://github.com/assafelovic/gpt-researcher) | 5936 |\\n| [sweepai/sweep](https://github.com/sweepai/sweep) | 5855 |\\n| [wenda-LLM/wenda](https://github.com/wenda-LLM/wenda) | 5766 |\\n| [zilliztech/GPTCache](https://github.com/zilliztech/GPTCache) | 5710 |\\n| [pdm-project/pdm](https://github.com/pdm-project/pdm) | 5665 |\\n| [GreyDGL/PentestGPT](https://github.com/GreyDGL/PentestGPT) | 5568 |\\n| [gkamradt/langchain-tutorials](https://github.com/gkamradt/langchain-tutorials) | 5507 |\\n| [Shaunwei/RealChar](https://github.com/Shaunwei/RealChar) | 5501 |\\n| [facebookresearch/llama-recipes](https://github.com/facebookresearch/llama-recipes) | 5477 |\\n| [serge-chat/serge](https://github.com/serge-chat/serge) | 5221 |\\n| [run-llama/rags](https://github.com/run-llama/rags) | 4916 |\\n| [openchatai/OpenChat](https://github.com/openchatai/OpenChat) | 4870 |\\n| [danswer-ai/danswer](https://github.com/danswer-ai/danswer) | 4774 |\\n| [langchain-ai/opengpts](https://github.com/langchain-ai/opengpts) | 4709 |\\n| [postgresml/postgresml](https://github.com/postgresml/postgresml) | 4639 |\\n| [MineDojo/Voyager](https://github.com/MineDojo/Voyager) | 4582 |\\n| [intel-analytics/BigDL](https://github.com/intel-analytics/BigDL) | 4581 |\\n| [yihong0618/xiaogpt](https://github.com/yihong0618/xiaogpt) | 4359 |\\n| [RayVentura/ShortGPT](https://github.com/RayVentura/ShortGPT) | 4357 |\\n| [Azure-Samples/azure-search-openai-demo](https://github.com/Azure-Samples/azure-search-openai-demo) | 4317 |\\n| [madawei2699/myGPTReader](https://github.com/madawei2699/myGPTReader) | 4289 |\\n| [apache/nifi](https://github.com/apache/nifi) | 4098 |\\n| [langchain-ai/chat-langchain](https://github.com/langchain-ai/chat-langchain) | 4091 |\\n| [aiwaves-cn/agents](https://github.com/aiwaves-cn/agents) | 4073 |\\n| [krishnaik06/The-Grand-Complete-Data-Science-Materials](https://github.com/krishnaik06/The-Grand-Complete-Data-Science-Materials) | 4065 |\\n| [khoj-ai/khoj](https://github.com/khoj-ai/khoj) | 4016 |\\n| [Azure/azure-sdk-for-python](https://github.com/Azure/azure-sdk-for-python) | 3941 |\\n| [PrefectHQ/marvin](https://github.com/PrefectHQ/marvin) | 3915 |\\n| [OpenBMB/ToolBench](https://github.com/OpenBMB/ToolBench) | 3799 |\\n| [marqo-ai/marqo](https://github.com/marqo-ai/marqo) | 3771 |\\n| [kyegomez/tree-of-thoughts](https://github.com/kyegomez/tree-of-thoughts) | 3688 |\\n| [Unstructured-IO/unstructured](https://github.com/Unstructured-IO/unstructured) | 3543 |\\n| [llm-workflow-engine/llm-workflow-engine](https://github.com/llm-workflow-engine/llm-workflow-engine) | 3515 |\\n| [shroominic/codeinterpreter-api](https://github.com/shroominic/codeinterpreter-api) | 3425 |\\n| [openchatai/OpenCopilot](https://github.com/openchatai/OpenCopilot) | 3418 |\\n| [josStorer/RWKV-Runner](https://github.com/josStorer/RWKV-Runner) | 3297 |\\n| [whitead/paper-qa](https://github.com/whitead/paper-qa) | 3280 |\\n| [homanp/superagent](https://github.com/homanp/superagent) | 3258 |\\n| [ParisNeo/lollms-webui](https://github.com/ParisNeo/lollms-webui) | 3199 |\\n| [OpenBMB/AgentVerse](https://github.com/OpenBMB/AgentVerse) | 3099 |\\n| [project-baize/baize-chatbot](https://github.com/project-baize/baize-chatbot) | 3090 |\\n| [OpenGVLab/InternGPT](https://github.com/OpenGVLab/InternGPT) | 2989 |\\n| [xlang-ai/OpenAgents](https://github.com/xlang-ai/OpenAgents) | 2825 |\\n| [dataelement/bisheng](https://github.com/dataelement/bisheng) | 2797 |\\n| [Mintplex-Labs/anything-llm](https://github.com/Mintplex-Labs/anything-llm) | 2784 |\\n| [OpenBMB/BMTools](https://github.com/OpenBMB/BMTools) | 2734 |\\n| [run-llama/llama-hub](https://github.com/run-llama/llama-hub) | 2721 |\\n| [SamurAIGPT/EmbedAI](https://github.com/SamurAIGPT/EmbedAI) | 2647 |\\n| [NVIDIA/NeMo-Guardrails](https://github.com/NVIDIA/NeMo-Guardrails) | 2637 |\\n| [X-D-Lab/LangChain-ChatGLM-Webui](https://github.com/X-D-Lab/LangChain-ChatGLM-Webui) | 2532 |\\n| [GerevAI/gerev](https://github.com/GerevAI/gerev) | 2517 |\\n| [keephq/keep](https://github.com/keephq/keep) | 2448 |\\n| [yanqiangmiffy/Chinese-LangChain](https://github.com/yanqiangmiffy/Chinese-LangChain) | 2397 |\\n| [OpenGVLab/Ask-Anything](https://github.com/OpenGVLab/Ask-Anything) | 2324 |\\n| [IntelligenzaArtificiale/Free-Auto-GPT](https://github.com/IntelligenzaArtificiale/Free-Auto-GPT) | 2241 |\\n| [YiVal/YiVal](https://github.com/YiVal/YiVal) | 2232 |\\n| [jupyterlab/jupyter-ai](https://github.com/jupyterlab/jupyter-ai) | 2189 |\\n| [Farama-Foundation/PettingZoo](https://github.com/Farama-Foundation/PettingZoo) | 2136 |\\n| [microsoft/TaskWeaver](https://github.com/microsoft/TaskWeaver) | 2126 |\\n| [hwchase17/notion-qa](https://github.com/hwchase17/notion-qa) | 2083 |\\n| [FlagOpen/FlagEmbedding](https://github.com/FlagOpen/FlagEmbedding) | 2053 |\\n| [paulpierre/RasaGPT](https://github.com/paulpierre/RasaGPT) | 1999 |\\n| [hegelai/prompttools](https://github.com/hegelai/prompttools) | 1984 |\\n| [mckinsey/vizro](https://github.com/mckinsey/vizro) | 1951 |\\n| [vocodedev/vocode-python](https://github.com/vocodedev/vocode-python) | 1868 |\\n| [dot-agent/openAMS](https://github.com/dot-agent/openAMS) | 1796 |\\n| [explodinggradients/ragas](https://github.com/explodinggradients/ragas) | 1766 |\\n| [AI-Citizen/SolidGPT](https://github.com/AI-Citizen/SolidGPT) | 1761 |\\n| [Kav-K/GPTDiscord](https://github.com/Kav-K/GPTDiscord) | 1696 |\\n| [run-llama/sec-insights](https://github.com/run-llama/sec-insights) | 1654 |\\n| [avinashkranjan/Amazing-Python-Scripts](https://github.com/avinashkranjan/Amazing-Python-Scripts) | 1635 |\\n| [microsoft/WhatTheHack](https://github.com/microsoft/WhatTheHack) | 1629 |\\n| [noahshinn/reflexion](https://github.com/noahshinn/reflexion) | 1625 |\\n| [psychic-api/psychic](https://github.com/psychic-api/psychic) | 1618 |\\n| [Forethought-Technologies/AutoChain](https://github.com/Forethought-Technologies/AutoChain) | 1611 |\\n| [pinterest/querybook](https://github.com/pinterest/querybook) | 1586 |\\n| [refuel-ai/autolabel](https://github.com/refuel-ai/autolabel) | 1553 |\\n| [jina-ai/langchain-serve](https://github.com/jina-ai/langchain-serve) | 1537 |\\n| [jina-ai/dev-gpt](https://github.com/jina-ai/dev-gpt) | 1522 |\\n| [agiresearch/OpenAGI](https://github.com/agiresearch/OpenAGI) | 1493 |\\n| [ttengwang/Caption-Anything](https://github.com/ttengwang/Caption-Anything) | 1484 |\\n| [greshake/llm-security](https://github.com/greshake/llm-security) | 1483 |\\n| [promptfoo/promptfoo](https://github.com/promptfoo/promptfoo) | 1480 |\\n| [milvus-io/bootcamp](https://github.com/milvus-io/bootcamp) | 1477 |\\n| [richardyc/Chrome-GPT](https://github.com/richardyc/Chrome-GPT) | 1475 |\\n| [melih-unsal/DemoGPT](https://github.com/melih-unsal/DemoGPT) | 1428 |\\n| [YORG-AI/Open-Assistant](https://github.com/YORG-AI/Open-Assistant) | 1419 |\\n| [101dotxyz/GPTeam](https://github.com/101dotxyz/GPTeam) | 1416 |\\n| [jina-ai/thinkgpt](https://github.com/jina-ai/thinkgpt) | 1408 |\\n| [mmz-001/knowledge\\\\_gpt](https://github.com/mmz-001/knowledge_gpt) | 1398 |\\n| [intel/intel-extension-for-transformers](https://github.com/intel/intel-extension-for-transformers) | 1387 |\\n| [Azure/azureml-examples](https://github.com/Azure/azureml-examples) | 1385 |\\n| [lunasec-io/lunasec](https://github.com/lunasec-io/lunasec) | 1367 |\\n| [eyurtsev/kor](https://github.com/eyurtsev/kor) | 1355 |\\n| [xusenlinzy/api-for-open-llm](https://github.com/xusenlinzy/api-for-open-llm) | 1325 |\\n| [griptape-ai/griptape](https://github.com/griptape-ai/griptape) | 1323 |\\n| [SuperDuperDB/superduperdb](https://github.com/SuperDuperDB/superduperdb) | 1290 |\\n| [cofactoryai/textbase](https://github.com/cofactoryai/textbase) | 1284 |\\n| [psychic-api/rag-stack](https://github.com/psychic-api/rag-stack) | 1260 |\\n| [filip-michalsky/SalesGPT](https://github.com/filip-michalsky/SalesGPT) | 1250 |\\n| [nod-ai/SHARK](https://github.com/nod-ai/SHARK) | 1237 |\\n| [pluralsh/plural](https://github.com/pluralsh/plural) | 1234 |\\n| [cheshire-cat-ai/core](https://github.com/cheshire-cat-ai/core) | 1194 |\\n| [LC1332/Chat-Haruhi-Suzumiya](https://github.com/LC1332/Chat-Haruhi-Suzumiya) | 1184 |\\n| [poe-platform/server-bot-quick-start](https://github.com/poe-platform/server-bot-quick-start) | 1182 |\\n| [microsoft/X-Decoder](https://github.com/microsoft/X-Decoder) | 1180 |\\n| [juncongmoo/chatllama](https://github.com/juncongmoo/chatllama) | 1171 |\\n| [visual-openllm/visual-openllm](https://github.com/visual-openllm/visual-openllm) | 1156 |\\n| [alejandro-ao/ask-multiple-pdfs](https://github.com/alejandro-ao/ask-multiple-pdfs) | 1153 |\\n| [ThousandBirdsInc/chidori](https://github.com/ThousandBirdsInc/chidori) | 1152 |\\n| [irgolic/AutoPR](https://github.com/irgolic/AutoPR) | 1137 |\\n| [SamurAIGPT/Camel-AutoGPT](https://github.com/SamurAIGPT/Camel-AutoGPT) | 1083 |\\n| [ray-project/llm-applications](https://github.com/ray-project/llm-applications) | 1080 |\\n| [run-llama/llama-lab](https://github.com/run-llama/llama-lab) | 1072 |\\n| [jiran214/GPT-vup](https://github.com/jiran214/GPT-vup) | 1041 |\\n| [MetaGLM/FinGLM](https://github.com/MetaGLM/FinGLM) | 1035 |\\n| [peterw/Chat-with-Github-Repo](https://github.com/peterw/Chat-with-Github-Repo) | 1020 |\\n| [Anil-matcha/ChatPDF](https://github.com/Anil-matcha/ChatPDF) | 991 |\\n| [langchain-ai/langserve](https://github.com/langchain-ai/langserve) | 983 |\\n| [THUDM/AgentTuning](https://github.com/THUDM/AgentTuning) | 976 |\\n| [rlancemartin/auto-evaluator](https://github.com/rlancemartin/auto-evaluator) | 975 |\\n| [codeacme17/examor](https://github.com/codeacme17/examor) | 964 |\\n| [all-in-aigc/gpts-works](https://github.com/all-in-aigc/gpts-works) | 946 |\\n| [Ikaros-521/AI-Vtuber](https://github.com/Ikaros-521/AI-Vtuber) | 946 |\\n| [microsoft/Llama-2-Onnx](https://github.com/microsoft/Llama-2-Onnx) | 898 |\\n| [cirediatpl/FigmaChain](https://github.com/cirediatpl/FigmaChain) | 895 |\\n| [ricklamers/shell-ai](https://github.com/ricklamers/shell-ai) | 893 |\\n| [modelscope/modelscope-agent](https://github.com/modelscope/modelscope-agent) | 893 |\\n| [seanpixel/Teenage-AGI](https://github.com/seanpixel/Teenage-AGI) | 886 |\\n| [ajndkr/lanarky](https://github.com/ajndkr/lanarky) | 880 |\\n| [kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference](https://github.com/kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference) | 872 |\\n| [corca-ai/EVAL](https://github.com/corca-ai/EVAL) | 846 |\\n| [hwchase17/chat-your-data](https://github.com/hwchase17/chat-your-data) | 841 |\\n| [kreneskyp/ix](https://github.com/kreneskyp/ix) | 821 |\\n| [Link-AGI/AutoAgents](https://github.com/Link-AGI/AutoAgents) | 820 |\\n| [truera/trulens](https://github.com/truera/trulens) | 794 |\\n| [Dataherald/dataherald](https://github.com/Dataherald/dataherald) | 788 |\\n| [sunlabuiuc/PyHealth](https://github.com/sunlabuiuc/PyHealth) | 783 |\\n| [jondurbin/airoboros](https://github.com/jondurbin/airoboros) | 783 |\\n| [pyspark-ai/pyspark-ai](https://github.com/pyspark-ai/pyspark-ai) | 782 |\\n| [confident-ai/deepeval](https://github.com/confident-ai/deepeval) | 780 |\\n| [billxbf/ReWOO](https://github.com/billxbf/ReWOO) | 777 |\\n| [langchain-ai/streamlit-agent](https://github.com/langchain-ai/streamlit-agent) | 776 |\\n| [akshata29/entaoai](https://github.com/akshata29/entaoai) | 771 |\\n| [LambdaLabsML/examples](https://github.com/LambdaLabsML/examples) | 770 |\\n| [getmetal/motorhead](https://github.com/getmetal/motorhead) | 768 |\\n| [Dicklesworthstone/swiss\\\\_army\\\\_llama](https://github.com/Dicklesworthstone/swiss_army_llama) | 757 |\\n| [ruoccofabrizio/azure-open-ai-embeddings-qna](https://github.com/ruoccofabrizio/azure-open-ai-embeddings-qna) | 757 |\\n| [msoedov/langcorn](https://github.com/msoedov/langcorn) | 754 |\\n| [e-johnstonn/BriefGPT](https://github.com/e-johnstonn/BriefGPT) | 753 |\\n| [microsoft/sample-app-aoai-chatGPT](https://github.com/microsoft/sample-app-aoai-chatGPT) | 749 |\\n| [explosion/spacy-llm](https://github.com/explosion/spacy-llm) | 731 |\\n| [MiuLab/Taiwan-LLM](https://github.com/MiuLab/Taiwan-LLM) | 716 |\\n| [whyiyhw/chatgpt-wechat](https://github.com/whyiyhw/chatgpt-wechat) | 702 |\\n| [Azure-Samples/openai](https://github.com/Azure-Samples/openai) | 692 |\\n| [iusztinpaul/hands-on-llms](https://github.com/iusztinpaul/hands-on-llms) | 687 |\\n| [safevideo/autollm](https://github.com/safevideo/autollm) | 682 |\\n| [OpenGenerativeAI/GenossGPT](https://github.com/OpenGenerativeAI/GenossGPT) | 669 |\\n| [NoDataFound/hackGPT](https://github.com/NoDataFound/hackGPT) | 663 |\\n| [AILab-CVC/GPT4Tools](https://github.com/AILab-CVC/GPT4Tools) | 662 |\\n| [langchain-ai/auto-evaluator](https://github.com/langchain-ai/auto-evaluator) | 657 |\\n| [yvann-ba/Robby-chatbot](https://github.com/yvann-ba/Robby-chatbot) | 639 |\\n| [alexanderatallah/window.ai](https://github.com/alexanderatallah/window.ai) | 635 |\\n| [amosjyng/langchain-visualizer](https://github.com/amosjyng/langchain-visualizer) | 630 |\\n| [microsoft/PodcastCopilot](https://github.com/microsoft/PodcastCopilot) | 621 |\\n| [aws-samples/aws-genai-llm-chatbot](https://github.com/aws-samples/aws-genai-llm-chatbot) | 616 |\\n| [NeumTry/NeumAI](https://github.com/NeumTry/NeumAI) | 605 |\\n| [namuan/dr-doc-search](https://github.com/namuan/dr-doc-search) | 599 |\\n| [plastic-labs/tutor-gpt](https://github.com/plastic-labs/tutor-gpt) | 595 |\\n| [marimo-team/marimo](https://github.com/marimo-team/marimo) | 591 |\\n| [yakami129/VirtualWife](https://github.com/yakami129/VirtualWife) | 586 |\\n| [xuwenhao/geektime-ai-course](https://github.com/xuwenhao/geektime-ai-course) | 584 |\\n| [jonra1993/fastapi-alembic-sqlmodel-async](https://github.com/jonra1993/fastapi-alembic-sqlmodel-async) | 573 |\\n| [dgarnitz/vectorflow](https://github.com/dgarnitz/vectorflow) | 568 |\\n| [yeagerai/yeagerai-agent](https://github.com/yeagerai/yeagerai-agent) | 564 |\\n| [daveebbelaar/langchain-experiments](https://github.com/daveebbelaar/langchain-experiments) | 563 |\\n| [traceloop/openllmetry](https://github.com/traceloop/openllmetry) | 559 |\\n| [Agenta-AI/agenta](https://github.com/Agenta-AI/agenta) | 546 |\\n| [michaelthwan/searchGPT](https://github.com/michaelthwan/searchGPT) | 545 |\\n| [jina-ai/agentchain](https://github.com/jina-ai/agentchain) | 544 |\\n| [mckaywrigley/repo-chat](https://github.com/mckaywrigley/repo-chat) | 533 |\\n| [marella/chatdocs](https://github.com/marella/chatdocs) | 532 |\\n| [opentensor/bittensor](https://github.com/opentensor/bittensor) | 532 |\\n| [DjangoPeng/openai-quickstart](https://github.com/DjangoPeng/openai-quickstart) | 527 |\\n| [freddyaboulton/gradio-tools](https://github.com/freddyaboulton/gradio-tools) | 517 |\\n| [sidhq/Multi-GPT](https://github.com/sidhq/Multi-GPT) | 515 |\\n| [alejandro-ao/langchain-ask-pdf](https://github.com/alejandro-ao/langchain-ask-pdf) | 514 |\\n| [sajjadium/ctf-archives](https://github.com/sajjadium/ctf-archives) | 507 |\\n| [continuum-llms/chatgpt-memory](https://github.com/continuum-llms/chatgpt-memory) | 502 |\\n| [steamship-core/steamship-langchain](https://github.com/steamship-core/steamship-langchain) | 494 |\\n| [mpaepper/content-chatbot](https://github.com/mpaepper/content-chatbot) | 493 |\\n| [langchain-ai/langchain-aiplugin](https://github.com/langchain-ai/langchain-aiplugin) | 492 |\\n| [logan-markewich/llama\\\\_index\\\\_starter\\\\_pack](https://github.com/logan-markewich/llama_index_starter_pack) | 483 |\\n| [datawhalechina/llm-universe](https://github.com/datawhalechina/llm-universe) | 475 |\\n| [leondz/garak](https://github.com/leondz/garak) | 464 |\\n| [RedisVentures/ArXivChatGuru](https://github.com/RedisVentures/ArXivChatGuru) | 461 |\\n| [Anil-matcha/Chatbase](https://github.com/Anil-matcha/Chatbase) | 455 |\\n| [Aiyu-awa/luna-ai](https://github.com/Aiyu-awa/luna-ai) | 450 |\\n| [DataDog/dd-trace-py](https://github.com/DataDog/dd-trace-py) | 450 |\\n| [Azure-Samples/miyagi](https://github.com/Azure-Samples/miyagi) | 449 |\\n| [poe-platform/poe-protocol](https://github.com/poe-platform/poe-protocol) | 447 |\\n| [onlyphantom/llm-python](https://github.com/onlyphantom/llm-python) | 446 |\\n| [junruxiong/IncarnaMind](https://github.com/junruxiong/IncarnaMind) | 441 |\\n| [CarperAI/OpenELM](https://github.com/CarperAI/OpenELM) | 441 |\\n| [daodao97/chatdoc](https://github.com/daodao97/chatdoc) | 437 |\\n| [showlab/VLog](https://github.com/showlab/VLog) | 436 |\\n| [wandb/weave](https://github.com/wandb/weave) | 420 |\\n| [QwenLM/Qwen-Agent](https://github.com/QwenLM/Qwen-Agent) | 419 |\\n| [huchenxucs/ChatDB](https://github.com/huchenxucs/ChatDB) | 416 |\\n| [jerlendds/osintbuddy](https://github.com/jerlendds/osintbuddy) | 411 |\\n| [monarch-initiative/ontogpt](https://github.com/monarch-initiative/ontogpt) | 408 |\\n| [mallorbc/Finetune\\\\_LLMs](https://github.com/mallorbc/Finetune_LLMs) | 406 |\\n| [JayZeeDesign/researcher-gpt](https://github.com/JayZeeDesign/researcher-gpt) | 405 |\\n| [rsaryev/talk-codebase](https://github.com/rsaryev/talk-codebase) | 401 |\\n| [langchain-ai/langsmith-cookbook](https://github.com/langchain-ai/langsmith-cookbook) | 398 |\\n| [mtenenholtz/chat-twitter](https://github.com/mtenenholtz/chat-twitter) | 398 |\\n| [morpheuslord/GPT\\\\_Vuln-analyzer](https://github.com/morpheuslord/GPT_Vuln-analyzer) | 391 |\\n| [MagnivOrg/prompt-layer-library](https://github.com/MagnivOrg/prompt-layer-library) | 387 |\\n| [JohnSnowLabs/langtest](https://github.com/JohnSnowLabs/langtest) | 384 |\\n| [mrwadams/attackgen](https://github.com/mrwadams/attackgen) | 381 |\\n| [codefuse-ai/Test-Agent](https://github.com/codefuse-ai/Test-Agent) | 380 |\\n| [personoids/personoids-lite](https://github.com/personoids/personoids-lite) | 379 |\\n| [mosaicml/examples](https://github.com/mosaicml/examples) | 378 |\\n| [steamship-packages/langchain-production-starter](https://github.com/steamship-packages/langchain-production-starter) | 370 |\\n| [FlagAI-Open/Aquila2](https://github.com/FlagAI-Open/Aquila2) | 365 |\\n| [Mintplex-Labs/vector-admin](https://github.com/Mintplex-Labs/vector-admin) | 365 |\\n| [NimbleBoxAI/ChainFury](https://github.com/NimbleBoxAI/ChainFury) | 357 |\\n| [BlackHC/llm-strategy](https://github.com/BlackHC/llm-strategy) | 354 |\\n| [lilacai/lilac](https://github.com/lilacai/lilac) | 352 |\\n| [preset-io/promptimize](https://github.com/preset-io/promptimize) | 351 |\\n| [yuanjie-ai/ChatLLM](https://github.com/yuanjie-ai/ChatLLM) | 347 |\\n| [andylokandy/gpt-4-search](https://github.com/andylokandy/gpt-4-search) | 346 |\\n| [zhoudaquan/ChatAnything](https://github.com/zhoudaquan/ChatAnything) | 343 |\\n| [rgomezcasas/dotfiles](https://github.com/rgomezcasas/dotfiles) | 343 |\\n| [tigerlab-ai/tiger](https://github.com/tigerlab-ai/tiger) | 342 |\\n| [HumanSignal/label-studio-ml-backend](https://github.com/HumanSignal/label-studio-ml-backend) | 334 |\\n| [nasa-petal/bidara](https://github.com/nasa-petal/bidara) | 334 |\\n| [momegas/megabots](https://github.com/momegas/megabots) | 334 |\\n| [Cheems-Seminar/grounded-segment-any-parts](https://github.com/Cheems-Seminar/grounded-segment-any-parts) | 330 |\\n| [CambioML/pykoi](https://github.com/CambioML/pykoi) | 326 |\\n| [Nuggt-dev/Nuggt](https://github.com/Nuggt-dev/Nuggt) | 326 |\\n| [wandb/edu](https://github.com/wandb/edu) | 326 |\\n| [Haste171/langchain-chatbot](https://github.com/Haste171/langchain-chatbot) | 324 |\\n| [sugarforever/LangChain-Tutorials](https://github.com/sugarforever/LangChain-Tutorials) | 322 |\\n| [liangwq/Chatglm\\\\_lora\\\\_multi-gpu](https://github.com/liangwq/Chatglm_lora_multi-gpu) | 321 |\\n| [ur-whitelab/chemcrow-public](https://github.com/ur-whitelab/chemcrow-public) | 320 |\\n| [itamargol/openai](https://github.com/itamargol/openai) | 318 |\\n| [gia-guar/JARVIS-ChatGPT](https://github.com/gia-guar/JARVIS-ChatGPT) | 304 |\\n| [SpecterOps/Nemesis](https://github.com/SpecterOps/Nemesis) | 302 |\\n| [facebookresearch/personal-timeline](https://github.com/facebookresearch/personal-timeline) | 302 |\\n| [hnawaz007/pythondataanalysis](https://github.com/hnawaz007/pythondataanalysis) | 301 |\\n| [Chainlit/cookbook](https://github.com/Chainlit/cookbook) | 300 |\\n| [airobotlab/KoChatGPT](https://github.com/airobotlab/KoChatGPT) | 300 |\\n| [GPT-Fathom/GPT-Fathom](https://github.com/GPT-Fathom/GPT-Fathom) | 299 |\\n| [kaarthik108/snowChat](https://github.com/kaarthik108/snowChat) | 299 |\\n| [kyegomez/swarms](https://github.com/kyegomez/swarms) | 296 |\\n| [LangStream/langstream](https://github.com/LangStream/langstream) | 295 |\\n| [genia-dev/GeniA](https://github.com/genia-dev/GeniA) | 294 |\\n| [shamspias/customizable-gpt-chatbot](https://github.com/shamspias/customizable-gpt-chatbot) | 291 |\\n| [TsinghuaDatabaseGroup/DB-GPT](https://github.com/TsinghuaDatabaseGroup/DB-GPT) | 290 |\\n| [conceptofmind/toolformer](https://github.com/conceptofmind/toolformer) | 283 |\\n| [sullivan-sean/chat-langchainjs](https://github.com/sullivan-sean/chat-langchainjs) | 283 |\\n| [AutoPackAI/beebot](https://github.com/AutoPackAI/beebot) | 282 |\\n| [pablomarin/GPT-Azure-Search-Engine](https://github.com/pablomarin/GPT-Azure-Search-Engine) | 282 |\\n| [gkamradt/LLMTest\\\\_NeedleInAHaystack](https://github.com/gkamradt/LLMTest_NeedleInAHaystack) | 280 |\\n| [gustavz/DataChad](https://github.com/gustavz/DataChad) | 280 |\\n| [Safiullah-Rahu/CSV-AI](https://github.com/Safiullah-Rahu/CSV-AI) | 278 |\\n| [hwchase17/chroma-langchain](https://github.com/hwchase17/chroma-langchain) | 275 |\\n| [AkshitIreddy/Interactive-LLM-Powered-NPCs](https://github.com/AkshitIreddy/Interactive-LLM-Powered-NPCs) | 268 |\\n| [ennucore/clippinator](https://github.com/ennucore/clippinator) | 267 |\\n| [artitw/text2text](https://github.com/artitw/text2text) | 264 |\\n| [anarchy-ai/LLM-VM](https://github.com/anarchy-ai/LLM-VM) | 263 |\\n| [wpydcr/LLM-Kit](https://github.com/wpydcr/LLM-Kit) | 262 |\\n| [streamlit/llm-examples](https://github.com/streamlit/llm-examples) | 262 |\\n| [paolorechia/learn-langchain](https://github.com/paolorechia/learn-langchain) | 262 |\\n| [yym68686/ChatGPT-Telegram-Bot](https://github.com/yym68686/ChatGPT-Telegram-Bot) | 261 |\\n| [PradipNichite/Youtube-Tutorials](https://github.com/PradipNichite/Youtube-Tutorials) | 259 |\\n| [radi-cho/datasetGPT](https://github.com/radi-cho/datasetGPT) | 259 |\\n| [ur-whitelab/exmol](https://github.com/ur-whitelab/exmol) | 259 |\\n| [ml6team/fondant](https://github.com/ml6team/fondant) | 254 |\\n| [bborn/howdoi.ai](https://github.com/bborn/howdoi.ai) | 254 |\\n| [rahulnyk/knowledge\\\\_graph](https://github.com/rahulnyk/knowledge_graph) | 253 |\\n| [recalign/RecAlign](https://github.com/recalign/RecAlign) | 248 |\\n| [hwchase17/langchain-streamlit-template](https://github.com/hwchase17/langchain-streamlit-template) | 248 |\\n| [fetchai/uAgents](https://github.com/fetchai/uAgents) | 247 |\\n| [arthur-ai/bench](https://github.com/arthur-ai/bench) | 247 |\\n| [miaoshouai/miaoshouai-assistant](https://github.com/miaoshouai/miaoshouai-assistant) | 246 |\\n| [RoboCoachTechnologies/GPT-Synthesizer](https://github.com/RoboCoachTechnologies/GPT-Synthesizer) | 244 |\\n| [langchain-ai/web-explorer](https://github.com/langchain-ai/web-explorer) | 242 |\\n| [kaleido-lab/dolphin](https://github.com/kaleido-lab/dolphin) | 242 |\\n| [PJLab-ADG/DriveLikeAHuman](https://github.com/PJLab-ADG/DriveLikeAHuman) | 241 |\\n| [stepanogil/autonomous-hr-chatbot](https://github.com/stepanogil/autonomous-hr-chatbot) | 238 |\\n| [WongSaang/chatgpt-ui-server](https://github.com/WongSaang/chatgpt-ui-server) | 236 |\\n| [nexus-stc/stc](https://github.com/nexus-stc/stc) | 235 |\\n| [yeagerai/genworlds](https://github.com/yeagerai/genworlds) | 235 |\\n| [Gentopia-AI/Gentopia](https://github.com/Gentopia-AI/Gentopia) | 235 |\\n| [alphasecio/langchain-examples](https://github.com/alphasecio/langchain-examples) | 235 |\\n| [grumpyp/aixplora](https://github.com/grumpyp/aixplora) | 232 |\\n| [shaman-ai/agent-actors](https://github.com/shaman-ai/agent-actors) | 232 |\\n| [darrenburns/elia](https://github.com/darrenburns/elia) | 231 |\\n| [orgexyz/BlockAGI](https://github.com/orgexyz/BlockAGI) | 231 |\\n| [handrew/browserpilot](https://github.com/handrew/browserpilot) | 226 |\\n| [su77ungr/CASALIOY](https://github.com/su77ungr/CASALIOY) | 225 |\\n| [nicknochnack/LangchainDocuments](https://github.com/nicknochnack/LangchainDocuments) | 225 |\\n| [dbpunk-labs/octogen](https://github.com/dbpunk-labs/octogen) | 224 |\\n| [langchain-ai/weblangchain](https://github.com/langchain-ai/weblangchain) | 222 |\\n| [CL-lau/SQL-GPT](https://github.com/CL-lau/SQL-GPT) | 222 |\\n| [alvarosevilla95/autolang](https://github.com/alvarosevilla95/autolang) | 221 |\\n| [showlab/UniVTG](https://github.com/showlab/UniVTG) | 220 |\\n| [edreisMD/plugnplai](https://github.com/edreisMD/plugnplai) | 219 |\\n| [hardbyte/qabot](https://github.com/hardbyte/qabot) | 216 |\\n| [microsoft/azure-openai-in-a-day-workshop](https://github.com/microsoft/azure-openai-in-a-day-workshop) | 215 |\\n| [Azure-Samples/chat-with-your-data-solution-accelerator](https://github.com/Azure-Samples/chat-with-your-data-solution-accelerator) | 214 |\\n| [amadad/agentcy](https://github.com/amadad/agentcy) | 213 |\\n| [snexus/llm-search](https://github.com/snexus/llm-search) | 212 |\\n| [afaqueumer/DocQA](https://github.com/afaqueumer/DocQA) | 206 |\\n| [plchld/InsightFlow](https://github.com/plchld/InsightFlow) | 205 |\\n| [yasyf/compress-gpt](https://github.com/yasyf/compress-gpt) | 205 |\\n| [benthecoder/ClassGPT](https://github.com/benthecoder/ClassGPT) | 205 |\\n| [voxel51/voxelgpt](https://github.com/voxel51/voxelgpt) | 204 |\\n| [jbrukh/gpt-jargon](https://github.com/jbrukh/gpt-jargon) | 204 |\\n| [emarco177/ice\\\\_breaker](https://github.com/emarco177/ice_breaker) | 204 |\\n| [tencentmusic/supersonic](https://github.com/tencentmusic/supersonic) | 202 |\\n| [Azure-Samples/azure-search-power-skills](https://github.com/Azure-Samples/azure-search-power-skills) | 202 |\\n| [blob42/Instrukt](https://github.com/blob42/Instrukt) | 201 |\\n| [langchain-ai/langsmith-sdk](https://github.com/langchain-ai/langsmith-sdk) | 200 |\\n| [SamPink/dev-gpt](https://github.com/SamPink/dev-gpt) | 200 |\\n| [ju-bezdek/langchain-decorators](https://github.com/ju-bezdek/langchain-decorators) | 198 |\\n| [KMnO4-zx/huanhuan-chat](https://github.com/KMnO4-zx/huanhuan-chat) | 196 |\\n| [Azure-Samples/jp-azureopenai-samples](https://github.com/Azure-Samples/jp-azureopenai-samples) | 192 |\\n| [hongbo-miao/hongbomiao.com](https://github.com/hongbo-miao/hongbomiao.com) | 190 |\\n| [CakeCrusher/openplugin](https://github.com/CakeCrusher/openplugin) | 190 |\\n| [PaddlePaddle/ERNIE-Bot-SDK](https://github.com/PaddlePaddle/ERNIE-Bot-SDK) | 189 |\\n| [retr0reg/Ret2GPT](https://github.com/retr0reg/Ret2GPT) | 189 |\\n| [AmineDiro/cria](https://github.com/AmineDiro/cria) | 187 |\\n| [lancedb/vectordb-recipes](https://github.com/lancedb/vectordb-recipes) | 186 |\\n| [vaibkumr/prompt-optimizer](https://github.com/vaibkumr/prompt-optimizer) | 185 |\\n| [aws-ia/ecs-blueprints](https://github.com/aws-ia/ecs-blueprints) | 184 |\\n| [ethanyanjiali/minChatGPT](https://github.com/ethanyanjiali/minChatGPT) | 183 |\\n| [MuhammadMoinFaisal/LargeLanguageModelsProjects](https://github.com/MuhammadMoinFaisal/LargeLanguageModelsProjects) | 182 |\\n| [shauryr/S2QA](https://github.com/shauryr/S2QA) | 181 |\\n| [summarizepaper/summarizepaper](https://github.com/summarizepaper/summarizepaper) | 180 |\\n| [NomaDamas/RAGchain](https://github.com/NomaDamas/RAGchain) | 179 |\\n| [pnkvalavala/repochat](https://github.com/pnkvalavala/repochat) | 179 |\\n| [ibiscp/LLM-IMDB](https://github.com/ibiscp/LLM-IMDB) | 177 |\\n| [fengyuli-dev/multimedia-gpt](https://github.com/fengyuli-dev/multimedia-gpt) | 177 |\\n| [langchain-ai/text-split-explorer](https://github.com/langchain-ai/text-split-explorer) | 175 |\\n| [iMagist486/ElasticSearch-Langchain-Chatglm2](https://github.com/iMagist486/ElasticSearch-Langchain-Chatglm2) | 175 |\\n| [limaoyi1/Auto-PPT](https://github.com/limaoyi1/Auto-PPT) | 175 |\\n| [Open-Swarm-Net/GPT-Swarm](https://github.com/Open-Swarm-Net/GPT-Swarm) | 175 |\\n| [morpheuslord/HackBot](https://github.com/morpheuslord/HackBot) | 174 |\\n| [v7labs/benchllm](https://github.com/v7labs/benchllm) | 174 |\\n| [Coding-Crashkurse/Langchain-Full-Course](https://github.com/Coding-Crashkurse/Langchain-Full-Course) | 174 |\\n| [dongyh20/Octopus](https://github.com/dongyh20/Octopus) | 173 |\\n| [kimtth/azure-openai-llm-vector-langchain](https://github.com/kimtth/azure-openai-llm-vector-langchain) | 173 |\\n| [mayooear/private-chatbot-mpt30b-langchain](https://github.com/mayooear/private-chatbot-mpt30b-langchain) | 173 |\\n| [zilliztech/akcio](https://github.com/zilliztech/akcio) | 172 |\\n| [jmpaz/promptlib](https://github.com/jmpaz/promptlib) | 172 |\\n| [ccurme/yolopandas](https://github.com/ccurme/yolopandas) | 172 |\\n| [joaomdmoura/CrewAI](https://github.com/joaomdmoura/CrewAI) | 170 |\\n| [katanaml/llm-mistral-invoice-cpu](https://github.com/katanaml/llm-mistral-invoice-cpu) | 170 |\\n| [chakkaradeep/pyCodeAGI](https://github.com/chakkaradeep/pyCodeAGI) | 170 |\\n| [mudler/LocalAGI](https://github.com/mudler/LocalAGI) | 167 |\\n| [dssjon/biblos](https://github.com/dssjon/biblos) | 165 |\\n| [kjappelbaum/gptchem](https://github.com/kjappelbaum/gptchem) | 165 |\\n| [xxw1995/chatglm3-finetune](https://github.com/xxw1995/chatglm3-finetune) | 164 |\\n| [ArjanCodes/examples](https://github.com/ArjanCodes/examples) | 163 |\\n| [AIAnytime/Llama2-Medical-Chatbot](https://github.com/AIAnytime/Llama2-Medical-Chatbot) | 163 |\\n| [RCGAI/SimplyRetrieve](https://github.com/RCGAI/SimplyRetrieve) | 162 |\\n| [langchain-ai/langchain-teacher](https://github.com/langchain-ai/langchain-teacher) | 162 |\\n| [menloparklab/falcon-langchain](https://github.com/menloparklab/falcon-langchain) | 162 |\\n| [flurb18/AgentOoba](https://github.com/flurb18/AgentOoba) | 162 |\\n| [homanp/vercel-langchain](https://github.com/homanp/vercel-langchain) | 161 |\\n| [jiran214/langup-ai](https://github.com/jiran214/langup-ai) | 160 |\\n| [JorisdeJong123/7-Days-of-LangChain](https://github.com/JorisdeJong123/7-Days-of-LangChain) | 160 |\\n| [GoogleCloudPlatform/data-analytics-golden-demo](https://github.com/GoogleCloudPlatform/data-analytics-golden-demo) | 159 |\\n| [positive666/Prompt-Can-Anything](https://github.com/positive666/Prompt-Can-Anything) | 159 |\\n| [luisroque/large\\\\_laguage\\\\_models](https://github.com/luisroque/large_laguage_models) | 159 |\\n| [mlops-for-all/mlops-for-all.github.io](https://github.com/mlops-for-all/mlops-for-all.github.io) | 158 |\\n| [wandb/wandbot](https://github.com/wandb/wandbot) | 158 |\\n| [elastic/elasticsearch-labs](https://github.com/elastic/elasticsearch-labs) | 157 |\\n| [shroominic/funcchain](https://github.com/shroominic/funcchain) | 157 |\\n| [deeppavlov/dream](https://github.com/deeppavlov/dream) | 156 |\\n| [mluogh/eastworld](https://github.com/mluogh/eastworld) | 154 |\\n| [georgesung/llm\\\\_qlora](https://github.com/georgesung/llm_qlora) | 154 |\\n| [RUC-GSAI/YuLan-Rec](https://github.com/RUC-GSAI/YuLan-Rec) | 153 |\\n| [KylinC/ChatFinance](https://github.com/KylinC/ChatFinance) | 152 |\\n| [Dicklesworthstone/llama2\\\\_aided\\\\_tesseract](https://github.com/Dicklesworthstone/llama2_aided_tesseract) | 152 |\\n| [c0sogi/LLMChat](https://github.com/c0sogi/LLMChat) | 152 |\\n| [eunomia-bpf/GPTtrace](https://github.com/eunomia-bpf/GPTtrace) | 152 |\\n| [ErikBjare/gptme](https://github.com/ErikBjare/gptme) | 152 |\\n| [Klingefjord/chatgpt-telegram](https://github.com/Klingefjord/chatgpt-telegram) | 152 |\\n| [RoboCoachTechnologies/ROScribe](https://github.com/RoboCoachTechnologies/ROScribe) | 151 |\\n| [Aggregate-Intellect/sherpa](https://github.com/Aggregate-Intellect/sherpa) | 151 |\\n| [3Alan/DocsMind](https://github.com/3Alan/DocsMind) | 151 |\\n| [tangqiaoyu/ToolAlpaca](https://github.com/tangqiaoyu/ToolAlpaca) | 150 |\\n| [kulltc/chatgpt-sql](https://github.com/kulltc/chatgpt-sql) | 150 |\\n| [mallahyari/drqa](https://github.com/mallahyari/drqa) | 150 |\\n| [MedalCollector/Orator](https://github.com/MedalCollector/Orator) | 149 |\\n| [Teahouse-Studios/akari-bot](https://github.com/Teahouse-Studios/akari-bot) | 149 |\\n| [realminchoi/babyagi-ui](https://github.com/realminchoi/babyagi-ui) | 148 |\\n| [ssheng/BentoChain](https://github.com/ssheng/BentoChain) | 148 |\\n| [solana-labs/chatgpt-plugin](https://github.com/solana-labs/chatgpt-plugin) | 147 |\\n| [aurelio-labs/arxiv-bot](https://github.com/aurelio-labs/arxiv-bot) | 147 |\\n| [Jaseci-Labs/jaseci](https://github.com/Jaseci-Labs/jaseci) | 146 |\\n| [menloparklab/langchain-cohere-qdrant-doc-retrieval](https://github.com/menloparklab/langchain-cohere-qdrant-doc-retrieval) | 146 |\\n| [trancethehuman/entities-extraction-web-scraper](https://github.com/trancethehuman/entities-extraction-web-scraper) | 144 |\\n| [peterw/StoryStorm](https://github.com/peterw/StoryStorm) | 144 |\\n| [grumpyp/chroma-langchain-tutorial](https://github.com/grumpyp/chroma-langchain-tutorial) | 144 |\\n| [gh18l/CrawlGPT](https://github.com/gh18l/CrawlGPT) | 142 |\\n| [langchain-ai/langchain-aws-template](https://github.com/langchain-ai/langchain-aws-template) | 142 |\\n| [yasyf/summ](https://github.com/yasyf/summ) | 141 |\\n| [petehunt/langchain-github-bot](https://github.com/petehunt/langchain-github-bot) | 141 |\\n| [hirokidaichi/wanna](https://github.com/hirokidaichi/wanna) | 140 |\\n| [jina-ai/fastapi-serve](https://github.com/jina-ai/fastapi-serve) | 139 |\\n| [zenml-io/zenml-projects](https://github.com/zenml-io/zenml-projects) | 139 |\\n| [jlonge4/local\\\\_llama](https://github.com/jlonge4/local_llama) | 139 |\\n| [smyja/blackmaria](https://github.com/smyja/blackmaria) | 138 |\\n| [ChuloAI/BrainChulo](https://github.com/ChuloAI/BrainChulo) | 137 |\\n| [log1stics/voice-generator-webui](https://github.com/log1stics/voice-generator-webui) | 137 |\\n| [davila7/file-gpt](https://github.com/davila7/file-gpt) | 137 |\\n| [dcaribou/transfermarkt-datasets](https://github.com/dcaribou/transfermarkt-datasets) | 136 |\\n| [ciare-robotics/world-creator](https://github.com/ciare-robotics/world-creator) | 135 |\\n| [Undertone0809/promptulate](https://github.com/Undertone0809/promptulate) | 134 |\\n| [fixie-ai/fixie-examples](https://github.com/fixie-ai/fixie-examples) | 134 |\\n| [run-llama/ai-engineer-workshop](https://github.com/run-llama/ai-engineer-workshop) | 133 |\\n| [definitive-io/code-indexer-loop](https://github.com/definitive-io/code-indexer-loop) | 131 |\\n| [mortium91/langchain-assistant](https://github.com/mortium91/langchain-assistant) | 131 |\\n| [baidubce/bce-qianfan-sdk](https://github.com/baidubce/bce-qianfan-sdk) | 130 |\\n| [Ngonie-x/langchain\\\\_csv](https://github.com/Ngonie-x/langchain_csv) | 130 |\\n| [IvanIsCoding/ResuLLMe](https://github.com/IvanIsCoding/ResuLLMe) | 130 |\\n| [AnchoringAI/anchoring-ai](https://github.com/AnchoringAI/anchoring-ai) | 129 |\\n| [Azure/business-process-automation](https://github.com/Azure/business-process-automation) | 128 |\\n| [athina-ai/athina-sdk](https://github.com/athina-ai/athina-sdk) | 126 |\\n| [thunlp/ChatEval](https://github.com/thunlp/ChatEval) | 126 |\\n| [prof-frink-lab/slangchain](https://github.com/prof-frink-lab/slangchain) | 126 |\\n| [vietanhdev/pautobot](https://github.com/vietanhdev/pautobot) | 125 |\\n| [awslabs/generative-ai-cdk-constructs](https://github.com/awslabs/generative-ai-cdk-constructs) | 124 |\\n| [sdaaron/QueryGPT](https://github.com/sdaaron/QueryGPT) | 124 |\\n| [rabbitmetrics/langchain-13-min](https://github.com/rabbitmetrics/langchain-13-min) | 124 |\\n| [AutoLLM/AutoAgents](https://github.com/AutoLLM/AutoAgents) | 122 |\\n| [nicknochnack/Nopenai](https://github.com/nicknochnack/Nopenai) | 122 |\\n| [wombyz/HormoziGPT](https://github.com/wombyz/HormoziGPT) | 122 |\\n| [dotvignesh/PDFChat](https://github.com/dotvignesh/PDFChat) | 122 |\\n| [topoteretes/PromethAI-Backend](https://github.com/topoteretes/PromethAI-Backend) | 121 |\\n| [nftblackmagic/flask-langchain](https://github.com/nftblackmagic/flask-langchain) | 121 |\\n| [vishwasg217/finsight](https://github.com/vishwasg217/finsight) | 120 |\\n| [snap-stanford/MLAgentBench](https://github.com/snap-stanford/MLAgentBench) | 120 |\\n| [Azure/app-service-linux-docs](https://github.com/Azure/app-service-linux-docs) | 120 |\\n| [nyanp/chat2plot](https://github.com/nyanp/chat2plot) | 120 |\\n| [ant4g0nist/polar](https://github.com/ant4g0nist/polar) | 119 |\\n| [aws-samples/cdk-eks-blueprints-patterns](https://github.com/aws-samples/cdk-eks-blueprints-patterns) | 119 |\\n| [aws-samples/amazon-kendra-langchain-extensions](https://github.com/aws-samples/amazon-kendra-langchain-extensions) | 119 |\\n| [Xueheng-Li/SynologyChatbotGPT](https://github.com/Xueheng-Li/SynologyChatbotGPT) | 119 |\\n| [CodeAlchemyAI/ViLT-GPT](https://github.com/CodeAlchemyAI/ViLT-GPT) | 117 |\\n| [Lin-jun-xiang/docGPT-langchain](https://github.com/Lin-jun-xiang/docGPT-langchain) | 117 |\\n| [ademakdogan/ChatSQL](https://github.com/ademakdogan/ChatSQL) | 116 |\\n| [aniketmaurya/llm-inference](https://github.com/aniketmaurya/llm-inference) | 115 |\\n| [xuwenhao/mactalk-ai-course](https://github.com/xuwenhao/mactalk-ai-course) | 115 |\\n| [cmooredev/RepoReader](https://github.com/cmooredev/RepoReader) | 115 |\\n| [abi/autocommit](https://github.com/abi/autocommit) | 115 |\\n| [MIDORIBIN/langchain-gpt4free](https://github.com/MIDORIBIN/langchain-gpt4free) | 114 |\\n| [finaldie/auto-news](https://github.com/finaldie/auto-news) | 114 |\\n| [Anil-matcha/Youtube-to-chatbot](https://github.com/Anil-matcha/Youtube-to-chatbot) | 114 |\\n| [avrabyt/MemoryBot](https://github.com/avrabyt/MemoryBot) | 114 |\\n| [Capsize-Games/airunner](https://github.com/Capsize-Games/airunner) | 113 |\\n| [atisharma/llama\\\\_farm](https://github.com/atisharma/llama_farm) | 113 |\\n| [mbchang/data-driven-characters](https://github.com/mbchang/data-driven-characters) | 112 |\\n| [fiddler-labs/fiddler-auditor](https://github.com/fiddler-labs/fiddler-auditor) | 112 |\\n| [dirkjbreeuwer/gpt-automated-web-scraper](https://github.com/dirkjbreeuwer/gpt-automated-web-scraper) | 111 |\\n| [Appointat/Chat-with-Document-s-using-ChatGPT-API-and-Text-Embedding](https://github.com/Appointat/Chat-with-Document-s-using-ChatGPT-API-and-Text-Embedding) | 111 |\\n| [hwchase17/langchain-gradio-template](https://github.com/hwchase17/langchain-gradio-template) | 111 |\\n| [artas728/spelltest](https://github.com/artas728/spelltest) | 110 |\\n| [NVIDIA/GenerativeAIExamples](https://github.com/NVIDIA/GenerativeAIExamples) | 109 |\\n| [Azure/aistudio-copilot-sample](https://github.com/Azure/aistudio-copilot-sample) | 108 |\\n| [codefuse-ai/codefuse-chatbot](https://github.com/codefuse-ai/codefuse-chatbot) | 108 |\\n| [apirrone/Memento](https://github.com/apirrone/Memento) | 108 |\\n| [e-johnstonn/GPT-Doc-Summarizer](https://github.com/e-johnstonn/GPT-Doc-Summarizer) | 108 |\\n| [salesforce/BOLAA](https://github.com/salesforce/BOLAA) | 107 |\\n| [Erol444/gpt4-openai-api](https://github.com/Erol444/gpt4-openai-api) | 106 |\\n| [linjungz/chat-with-your-doc](https://github.com/linjungz/chat-with-your-doc) | 106 |\\n| [crosleythomas/MirrorGPT](https://github.com/crosleythomas/MirrorGPT) | 106 |\\n| [panaverse/learn-generative-ai](https://github.com/panaverse/learn-generative-ai) | 105 |\\n| [Azure/azure-sdk-tools](https://github.com/Azure/azure-sdk-tools) | 105 |\\n| [malywut/gpt\\\\_examples](https://github.com/malywut/gpt_examples) | 105 |\\n| [ritun16/chain-of-verification](https://github.com/ritun16/chain-of-verification) | 104 |\\n| [langchain-ai/langchain-benchmarks](https://github.com/langchain-ai/langchain-benchmarks) | 104 |\\n| [lightninglabs/LangChainBitcoin](https://github.com/lightninglabs/LangChainBitcoin) | 104 |\\n| [flepied/second-brain-agent](https://github.com/flepied/second-brain-agent) | 103 |\\n| [llmapp/openai.mini](https://github.com/llmapp/openai.mini) | 102 |\\n| [gimlet-ai/tddGPT](https://github.com/gimlet-ai/tddGPT) | 102 |\\n| [jlonge4/gpt\\\\_chatwithPDF](https://github.com/jlonge4/gpt_chatwithPDF) | 102 |\\n| [agentification/RAFA\\\\_code](https://github.com/agentification/RAFA_code) | 101 |\\n| [pacman100/DHS-LLM-Workshop](https://github.com/pacman100/DHS-LLM-Workshop) | 101 |\\n| [aws-samples/private-llm-qa-bot](https://github.com/aws-samples/private-llm-qa-bot) | 101 |\\n\\n_Generated by [github-dependents-info](https://github.com/nvuillam/github-dependents-info)\\n_\\n\\n`github-dependents-info --repo \"langchain-ai/langchain\" --markdownfile dependents.md --minstars 100 --sort stars`\\n\\n[Edit this page](https://github.com/langchain-ai/langchain/edit/master/docs/docs/additional_resources/dependents.mdx)\\n\\n* * *\\n\\n#### Was this page helpful?\\n\\n \\n\\n#### You can also leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchain/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E)\\n.\\n\\nCommunity\\n\\n* [Discord](https://discord.gg/cU2adEyC7w)\\n \\n* [Twitter](https://twitter.com/LangChainAI)\\n \\n\\nGitHub\\n\\n* [Organization](https://github.com/langchain-ai)\\n \\n* [Python](https://github.com/langchain-ai/langchain)\\n \\n* [JS/TS](https://github.com/langchain-ai/langchainjs)\\n \\n\\nMore\\n\\n* [Homepage](https://langchain.com)\\n \\n* [Blog](https://blog.langchain.dev)\\n \\n* [YouTube](https://www.youtube.com/@LangChain)\\n \\n\\nCopyright © 2024 LangChain, Inc.', 'markdown': '[Skip to main content](#__docusaurus_skipToContent_fallback)\\n\\nLangChain 0.2 is out! Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchain/discussions/21716)\\n. You can view the v0.1 docs [here](/v0.1/docs/get_started/introduction/)\\n.\\n\\n[![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark.png)![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark-dark.png)](/v0.2/)\\n[Integrations](/v0.2/docs/integrations/platforms/)\\n[API Reference](https://api.python.langchain.com)\\n\\n[More](#)\\n\\n* [People](/v0.2/docs/people/)\\n \\n* [Contributing](/v0.2/docs/contributing/)\\n \\n* [Templates](/v0.2/docs/templates/)\\n \\n* [Cookbooks](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)\\n \\n* [3rd party tutorials](/v0.2/docs/additional_resources/tutorials/)\\n \\n* [YouTube](/v0.2/docs/additional_resources/youtube/)\\n \\n* [arXiv](/v0.2/docs/additional_resources/arxiv_references/)\\n \\n\\n[v0.2](#)\\n\\n* [v0.2](/v0.2/docs/introduction/)\\n \\n* [v0.1](https://python.langchain.com/v0.1/docs/get_started/introduction)\\n \\n\\n[🦜️🔗](#)\\n\\n* [LangSmith](https://smith.langchain.com)\\n \\n* [LangSmith Docs](https://docs.smith.langchain.com/)\\n \\n* [LangServe GitHub](https://github.com/langchain-ai/langserve)\\n \\n* [Templates GitHub](https://github.com/langchain-ai/langchain/tree/master/templates)\\n \\n* [Templates Hub](https://templates.langchain.com)\\n \\n* [LangChain Hub](https://smith.langchain.com/hub)\\n \\n* [JS/TS Docs](https://js.langchain.com)\\n \\n\\n[💬](https://chat.langchain.com)\\n[](https://github.com/langchain-ai/langchain)\\n\\nSearch\\n\\nDependents\\n==========\\n\\nDependents stats for `langchain-ai/langchain`\\n\\n[![](https://img.shields.io/static/v1?label=Used%20by&message=41717&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents)\\n [![](https://img.shields.io/static/v1?label=Used%20by%20(public)](https://github.com/langchain-ai/langchain/network/dependents)\\n [![](https://img.shields.io/static/v1?label=Used%20by%20(private)](https://github.com/langchain-ai/langchain/network/dependents)\\n\\n\\\\[update: `2023-12-08`; only dependent repositories with Stars > 100\\\\]\\n\\n| Repository | Stars |\\n| --- | --- |\\n| [AntonOsika/gpt-engineer](https://github.com/AntonOsika/gpt-engineer) | 46514 |\\n| [imartinez/privateGPT](https://github.com/imartinez/privateGPT) | 44439 |\\n| [LAION-AI/Open-Assistant](https://github.com/LAION-AI/Open-Assistant) | 35906 |\\n| [hpcaitech/ColossalAI](https://github.com/hpcaitech/ColossalAI) | 35528 |\\n| [moymix/TaskMatrix](https://github.com/moymix/TaskMatrix) | 34342 |\\n| [geekan/MetaGPT](https://github.com/geekan/MetaGPT) | 31126 |\\n| [streamlit/streamlit](https://github.com/streamlit/streamlit) | 28911 |\\n| [reworkd/AgentGPT](https://github.com/reworkd/AgentGPT) | 27833 |\\n| [StanGirard/quivr](https://github.com/StanGirard/quivr) | 26032 |\\n| [OpenBB-finance/OpenBBTerminal](https://github.com/OpenBB-finance/OpenBBTerminal) | 24946 |\\n| [run-llama/llama\\\\_index](https://github.com/run-llama/llama_index) | 24859 |\\n| [jmorganca/ollama](https://github.com/jmorganca/ollama) | 20849 |\\n| [openai/chatgpt-retrieval-plugin](https://github.com/openai/chatgpt-retrieval-plugin) | 20249 |\\n| [chatchat-space/Langchain-Chatchat](https://github.com/chatchat-space/Langchain-Chatchat) | 19305 |\\n| [mindsdb/mindsdb](https://github.com/mindsdb/mindsdb) | 19172 |\\n| [PromtEngineer/localGPT](https://github.com/PromtEngineer/localGPT) | 17528 |\\n| [cube-js/cube](https://github.com/cube-js/cube) | 16575 |\\n| [mlflow/mlflow](https://github.com/mlflow/mlflow) | 16000 |\\n| [mudler/LocalAI](https://github.com/mudler/LocalAI) | 14067 |\\n| [logspace-ai/langflow](https://github.com/logspace-ai/langflow) | 13679 |\\n| [GaiZhenbiao/ChuanhuChatGPT](https://github.com/GaiZhenbiao/ChuanhuChatGPT) | 13648 |\\n| [arc53/DocsGPT](https://github.com/arc53/DocsGPT) | 13423 |\\n| [openai/evals](https://github.com/openai/evals) | 12649 |\\n| [airbytehq/airbyte](https://github.com/airbytehq/airbyte) | 12460 |\\n| [langgenius/dify](https://github.com/langgenius/dify) | 11859 |\\n| [databrickslabs/dolly](https://github.com/databrickslabs/dolly) | 10672 |\\n| [AIGC-Audio/AudioGPT](https://github.com/AIGC-Audio/AudioGPT) | 9437 |\\n| [langchain-ai/langchainjs](https://github.com/langchain-ai/langchainjs) | 9227 |\\n| [gventuri/pandas-ai](https://github.com/gventuri/pandas-ai) | 9203 |\\n| [aws/amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) | 9079 |\\n| [h2oai/h2ogpt](https://github.com/h2oai/h2ogpt) | 8945 |\\n| [PipedreamHQ/pipedream](https://github.com/PipedreamHQ/pipedream) | 7550 |\\n| [bentoml/OpenLLM](https://github.com/bentoml/OpenLLM) | 6957 |\\n| [THUDM/ChatGLM3](https://github.com/THUDM/ChatGLM3) | 6801 |\\n| [microsoft/promptflow](https://github.com/microsoft/promptflow) | 6776 |\\n| [cpacker/MemGPT](https://github.com/cpacker/MemGPT) | 6642 |\\n| [joshpxyne/gpt-migrate](https://github.com/joshpxyne/gpt-migrate) | 6482 |\\n| [zauberzeug/nicegui](https://github.com/zauberzeug/nicegui) | 6037 |\\n| [embedchain/embedchain](https://github.com/embedchain/embedchain) | 6023 |\\n| [mage-ai/mage-ai](https://github.com/mage-ai/mage-ai) | 6019 |\\n| [assafelovic/gpt-researcher](https://github.com/assafelovic/gpt-researcher) | 5936 |\\n| [sweepai/sweep](https://github.com/sweepai/sweep) | 5855 |\\n| [wenda-LLM/wenda](https://github.com/wenda-LLM/wenda) | 5766 |\\n| [zilliztech/GPTCache](https://github.com/zilliztech/GPTCache) | 5710 |\\n| [pdm-project/pdm](https://github.com/pdm-project/pdm) | 5665 |\\n| [GreyDGL/PentestGPT](https://github.com/GreyDGL/PentestGPT) | 5568 |\\n| [gkamradt/langchain-tutorials](https://github.com/gkamradt/langchain-tutorials) | 5507 |\\n| [Shaunwei/RealChar](https://github.com/Shaunwei/RealChar) | 5501 |\\n| [facebookresearch/llama-recipes](https://github.com/facebookresearch/llama-recipes) | 5477 |\\n| [serge-chat/serge](https://github.com/serge-chat/serge) | 5221 |\\n| [run-llama/rags](https://github.com/run-llama/rags) | 4916 |\\n| [openchatai/OpenChat](https://github.com/openchatai/OpenChat) | 4870 |\\n| [danswer-ai/danswer](https://github.com/danswer-ai/danswer) | 4774 |\\n| [langchain-ai/opengpts](https://github.com/langchain-ai/opengpts) | 4709 |\\n| [postgresml/postgresml](https://github.com/postgresml/postgresml) | 4639 |\\n| [MineDojo/Voyager](https://github.com/MineDojo/Voyager) | 4582 |\\n| [intel-analytics/BigDL](https://github.com/intel-analytics/BigDL) | 4581 |\\n| [yihong0618/xiaogpt](https://github.com/yihong0618/xiaogpt) | 4359 |\\n| [RayVentura/ShortGPT](https://github.com/RayVentura/ShortGPT) | 4357 |\\n| [Azure-Samples/azure-search-openai-demo](https://github.com/Azure-Samples/azure-search-openai-demo) | 4317 |\\n| [madawei2699/myGPTReader](https://github.com/madawei2699/myGPTReader) | 4289 |\\n| [apache/nifi](https://github.com/apache/nifi) | 4098 |\\n| [langchain-ai/chat-langchain](https://github.com/langchain-ai/chat-langchain) | 4091 |\\n| [aiwaves-cn/agents](https://github.com/aiwaves-cn/agents) | 4073 |\\n| [krishnaik06/The-Grand-Complete-Data-Science-Materials](https://github.com/krishnaik06/The-Grand-Complete-Data-Science-Materials) | 4065 |\\n| [khoj-ai/khoj](https://github.com/khoj-ai/khoj) | 4016 |\\n| [Azure/azure-sdk-for-python](https://github.com/Azure/azure-sdk-for-python) | 3941 |\\n| [PrefectHQ/marvin](https://github.com/PrefectHQ/marvin) | 3915 |\\n| [OpenBMB/ToolBench](https://github.com/OpenBMB/ToolBench) | 3799 |\\n| [marqo-ai/marqo](https://github.com/marqo-ai/marqo) | 3771 |\\n| [kyegomez/tree-of-thoughts](https://github.com/kyegomez/tree-of-thoughts) | 3688 |\\n| [Unstructured-IO/unstructured](https://github.com/Unstructured-IO/unstructured) | 3543 |\\n| [llm-workflow-engine/llm-workflow-engine](https://github.com/llm-workflow-engine/llm-workflow-engine) | 3515 |\\n| [shroominic/codeinterpreter-api](https://github.com/shroominic/codeinterpreter-api) | 3425 |\\n| [openchatai/OpenCopilot](https://github.com/openchatai/OpenCopilot) | 3418 |\\n| [josStorer/RWKV-Runner](https://github.com/josStorer/RWKV-Runner) | 3297 |\\n| [whitead/paper-qa](https://github.com/whitead/paper-qa) | 3280 |\\n| [homanp/superagent](https://github.com/homanp/superagent) | 3258 |\\n| [ParisNeo/lollms-webui](https://github.com/ParisNeo/lollms-webui) | 3199 |\\n| [OpenBMB/AgentVerse](https://github.com/OpenBMB/AgentVerse) | 3099 |\\n| [project-baize/baize-chatbot](https://github.com/project-baize/baize-chatbot) | 3090 |\\n| [OpenGVLab/InternGPT](https://github.com/OpenGVLab/InternGPT) | 2989 |\\n| [xlang-ai/OpenAgents](https://github.com/xlang-ai/OpenAgents) | 2825 |\\n| [dataelement/bisheng](https://github.com/dataelement/bisheng) | 2797 |\\n| [Mintplex-Labs/anything-llm](https://github.com/Mintplex-Labs/anything-llm) | 2784 |\\n| [OpenBMB/BMTools](https://github.com/OpenBMB/BMTools) | 2734 |\\n| [run-llama/llama-hub](https://github.com/run-llama/llama-hub) | 2721 |\\n| [SamurAIGPT/EmbedAI](https://github.com/SamurAIGPT/EmbedAI) | 2647 |\\n| [NVIDIA/NeMo-Guardrails](https://github.com/NVIDIA/NeMo-Guardrails) | 2637 |\\n| [X-D-Lab/LangChain-ChatGLM-Webui](https://github.com/X-D-Lab/LangChain-ChatGLM-Webui) | 2532 |\\n| [GerevAI/gerev](https://github.com/GerevAI/gerev) | 2517 |\\n| [keephq/keep](https://github.com/keephq/keep) | 2448 |\\n| [yanqiangmiffy/Chinese-LangChain](https://github.com/yanqiangmiffy/Chinese-LangChain) | 2397 |\\n| [OpenGVLab/Ask-Anything](https://github.com/OpenGVLab/Ask-Anything) | 2324 |\\n| [IntelligenzaArtificiale/Free-Auto-GPT](https://github.com/IntelligenzaArtificiale/Free-Auto-GPT) | 2241 |\\n| [YiVal/YiVal](https://github.com/YiVal/YiVal) | 2232 |\\n| [jupyterlab/jupyter-ai](https://github.com/jupyterlab/jupyter-ai) | 2189 |\\n| [Farama-Foundation/PettingZoo](https://github.com/Farama-Foundation/PettingZoo) | 2136 |\\n| [microsoft/TaskWeaver](https://github.com/microsoft/TaskWeaver) | 2126 |\\n| [hwchase17/notion-qa](https://github.com/hwchase17/notion-qa) | 2083 |\\n| [FlagOpen/FlagEmbedding](https://github.com/FlagOpen/FlagEmbedding) | 2053 |\\n| [paulpierre/RasaGPT](https://github.com/paulpierre/RasaGPT) | 1999 |\\n| [hegelai/prompttools](https://github.com/hegelai/prompttools) | 1984 |\\n| [mckinsey/vizro](https://github.com/mckinsey/vizro) | 1951 |\\n| [vocodedev/vocode-python](https://github.com/vocodedev/vocode-python) | 1868 |\\n| [dot-agent/openAMS](https://github.com/dot-agent/openAMS) | 1796 |\\n| [explodinggradients/ragas](https://github.com/explodinggradients/ragas) | 1766 |\\n| [AI-Citizen/SolidGPT](https://github.com/AI-Citizen/SolidGPT) | 1761 |\\n| [Kav-K/GPTDiscord](https://github.com/Kav-K/GPTDiscord) | 1696 |\\n| [run-llama/sec-insights](https://github.com/run-llama/sec-insights) | 1654 |\\n| [avinashkranjan/Amazing-Python-Scripts](https://github.com/avinashkranjan/Amazing-Python-Scripts) | 1635 |\\n| [microsoft/WhatTheHack](https://github.com/microsoft/WhatTheHack) | 1629 |\\n| [noahshinn/reflexion](https://github.com/noahshinn/reflexion) | 1625 |\\n| [psychic-api/psychic](https://github.com/psychic-api/psychic) | 1618 |\\n| [Forethought-Technologies/AutoChain](https://github.com/Forethought-Technologies/AutoChain) | 1611 |\\n| [pinterest/querybook](https://github.com/pinterest/querybook) | 1586 |\\n| [refuel-ai/autolabel](https://github.com/refuel-ai/autolabel) | 1553 |\\n| [jina-ai/langchain-serve](https://github.com/jina-ai/langchain-serve) | 1537 |\\n| [jina-ai/dev-gpt](https://github.com/jina-ai/dev-gpt) | 1522 |\\n| [agiresearch/OpenAGI](https://github.com/agiresearch/OpenAGI) | 1493 |\\n| [ttengwang/Caption-Anything](https://github.com/ttengwang/Caption-Anything) | 1484 |\\n| [greshake/llm-security](https://github.com/greshake/llm-security) | 1483 |\\n| [promptfoo/promptfoo](https://github.com/promptfoo/promptfoo) | 1480 |\\n| [milvus-io/bootcamp](https://github.com/milvus-io/bootcamp) | 1477 |\\n| [richardyc/Chrome-GPT](https://github.com/richardyc/Chrome-GPT) | 1475 |\\n| [melih-unsal/DemoGPT](https://github.com/melih-unsal/DemoGPT) | 1428 |\\n| [YORG-AI/Open-Assistant](https://github.com/YORG-AI/Open-Assistant) | 1419 |\\n| [101dotxyz/GPTeam](https://github.com/101dotxyz/GPTeam) | 1416 |\\n| [jina-ai/thinkgpt](https://github.com/jina-ai/thinkgpt) | 1408 |\\n| [mmz-001/knowledge\\\\_gpt](https://github.com/mmz-001/knowledge_gpt) | 1398 |\\n| [intel/intel-extension-for-transformers](https://github.com/intel/intel-extension-for-transformers) | 1387 |\\n| [Azure/azureml-examples](https://github.com/Azure/azureml-examples) | 1385 |\\n| [lunasec-io/lunasec](https://github.com/lunasec-io/lunasec) | 1367 |\\n| [eyurtsev/kor](https://github.com/eyurtsev/kor) | 1355 |\\n| [xusenlinzy/api-for-open-llm](https://github.com/xusenlinzy/api-for-open-llm) | 1325 |\\n| [griptape-ai/griptape](https://github.com/griptape-ai/griptape) | 1323 |\\n| [SuperDuperDB/superduperdb](https://github.com/SuperDuperDB/superduperdb) | 1290 |\\n| [cofactoryai/textbase](https://github.com/cofactoryai/textbase) | 1284 |\\n| [psychic-api/rag-stack](https://github.com/psychic-api/rag-stack) | 1260 |\\n| [filip-michalsky/SalesGPT](https://github.com/filip-michalsky/SalesGPT) | 1250 |\\n| [nod-ai/SHARK](https://github.com/nod-ai/SHARK) | 1237 |\\n| [pluralsh/plural](https://github.com/pluralsh/plural) | 1234 |\\n| [cheshire-cat-ai/core](https://github.com/cheshire-cat-ai/core) | 1194 |\\n| [LC1332/Chat-Haruhi-Suzumiya](https://github.com/LC1332/Chat-Haruhi-Suzumiya) | 1184 |\\n| [poe-platform/server-bot-quick-start](https://github.com/poe-platform/server-bot-quick-start) | 1182 |\\n| [microsoft/X-Decoder](https://github.com/microsoft/X-Decoder) | 1180 |\\n| [juncongmoo/chatllama](https://github.com/juncongmoo/chatllama) | 1171 |\\n| [visual-openllm/visual-openllm](https://github.com/visual-openllm/visual-openllm) | 1156 |\\n| [alejandro-ao/ask-multiple-pdfs](https://github.com/alejandro-ao/ask-multiple-pdfs) | 1153 |\\n| [ThousandBirdsInc/chidori](https://github.com/ThousandBirdsInc/chidori) | 1152 |\\n| [irgolic/AutoPR](https://github.com/irgolic/AutoPR) | 1137 |\\n| [SamurAIGPT/Camel-AutoGPT](https://github.com/SamurAIGPT/Camel-AutoGPT) | 1083 |\\n| [ray-project/llm-applications](https://github.com/ray-project/llm-applications) | 1080 |\\n| [run-llama/llama-lab](https://github.com/run-llama/llama-lab) | 1072 |\\n| [jiran214/GPT-vup](https://github.com/jiran214/GPT-vup) | 1041 |\\n| [MetaGLM/FinGLM](https://github.com/MetaGLM/FinGLM) | 1035 |\\n| [peterw/Chat-with-Github-Repo](https://github.com/peterw/Chat-with-Github-Repo) | 1020 |\\n| [Anil-matcha/ChatPDF](https://github.com/Anil-matcha/ChatPDF) | 991 |\\n| [langchain-ai/langserve](https://github.com/langchain-ai/langserve) | 983 |\\n| [THUDM/AgentTuning](https://github.com/THUDM/AgentTuning) | 976 |\\n| [rlancemartin/auto-evaluator](https://github.com/rlancemartin/auto-evaluator) | 975 |\\n| [codeacme17/examor](https://github.com/codeacme17/examor) | 964 |\\n| [all-in-aigc/gpts-works](https://github.com/all-in-aigc/gpts-works) | 946 |\\n| [Ikaros-521/AI-Vtuber](https://github.com/Ikaros-521/AI-Vtuber) | 946 |\\n| [microsoft/Llama-2-Onnx](https://github.com/microsoft/Llama-2-Onnx) | 898 |\\n| [cirediatpl/FigmaChain](https://github.com/cirediatpl/FigmaChain) | 895 |\\n| [ricklamers/shell-ai](https://github.com/ricklamers/shell-ai) | 893 |\\n| [modelscope/modelscope-agent](https://github.com/modelscope/modelscope-agent) | 893 |\\n| [seanpixel/Teenage-AGI](https://github.com/seanpixel/Teenage-AGI) | 886 |\\n| [ajndkr/lanarky](https://github.com/ajndkr/lanarky) | 880 |\\n| [kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference](https://github.com/kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference) | 872 |\\n| [corca-ai/EVAL](https://github.com/corca-ai/EVAL) | 846 |\\n| [hwchase17/chat-your-data](https://github.com/hwchase17/chat-your-data) | 841 |\\n| [kreneskyp/ix](https://github.com/kreneskyp/ix) | 821 |\\n| [Link-AGI/AutoAgents](https://github.com/Link-AGI/AutoAgents) | 820 |\\n| [truera/trulens](https://github.com/truera/trulens) | 794 |\\n| [Dataherald/dataherald](https://github.com/Dataherald/dataherald) | 788 |\\n| [sunlabuiuc/PyHealth](https://github.com/sunlabuiuc/PyHealth) | 783 |\\n| [jondurbin/airoboros](https://github.com/jondurbin/airoboros) | 783 |\\n| [pyspark-ai/pyspark-ai](https://github.com/pyspark-ai/pyspark-ai) | 782 |\\n| [confident-ai/deepeval](https://github.com/confident-ai/deepeval) | 780 |\\n| [billxbf/ReWOO](https://github.com/billxbf/ReWOO) | 777 |\\n| [langchain-ai/streamlit-agent](https://github.com/langchain-ai/streamlit-agent) | 776 |\\n| [akshata29/entaoai](https://github.com/akshata29/entaoai) | 771 |\\n| [LambdaLabsML/examples](https://github.com/LambdaLabsML/examples) | 770 |\\n| [getmetal/motorhead](https://github.com/getmetal/motorhead) | 768 |\\n| [Dicklesworthstone/swiss\\\\_army\\\\_llama](https://github.com/Dicklesworthstone/swiss_army_llama) | 757 |\\n| [ruoccofabrizio/azure-open-ai-embeddings-qna](https://github.com/ruoccofabrizio/azure-open-ai-embeddings-qna) | 757 |\\n| [msoedov/langcorn](https://github.com/msoedov/langcorn) | 754 |\\n| [e-johnstonn/BriefGPT](https://github.com/e-johnstonn/BriefGPT) | 753 |\\n| [microsoft/sample-app-aoai-chatGPT](https://github.com/microsoft/sample-app-aoai-chatGPT) | 749 |\\n| [explosion/spacy-llm](https://github.com/explosion/spacy-llm) | 731 |\\n| [MiuLab/Taiwan-LLM](https://github.com/MiuLab/Taiwan-LLM) | 716 |\\n| [whyiyhw/chatgpt-wechat](https://github.com/whyiyhw/chatgpt-wechat) | 702 |\\n| [Azure-Samples/openai](https://github.com/Azure-Samples/openai) | 692 |\\n| [iusztinpaul/hands-on-llms](https://github.com/iusztinpaul/hands-on-llms) | 687 |\\n| [safevideo/autollm](https://github.com/safevideo/autollm) | 682 |\\n| [OpenGenerativeAI/GenossGPT](https://github.com/OpenGenerativeAI/GenossGPT) | 669 |\\n| [NoDataFound/hackGPT](https://github.com/NoDataFound/hackGPT) | 663 |\\n| [AILab-CVC/GPT4Tools](https://github.com/AILab-CVC/GPT4Tools) | 662 |\\n| [langchain-ai/auto-evaluator](https://github.com/langchain-ai/auto-evaluator) | 657 |\\n| [yvann-ba/Robby-chatbot](https://github.com/yvann-ba/Robby-chatbot) | 639 |\\n| [alexanderatallah/window.ai](https://github.com/alexanderatallah/window.ai) | 635 |\\n| [amosjyng/langchain-visualizer](https://github.com/amosjyng/langchain-visualizer) | 630 |\\n| [microsoft/PodcastCopilot](https://github.com/microsoft/PodcastCopilot) | 621 |\\n| [aws-samples/aws-genai-llm-chatbot](https://github.com/aws-samples/aws-genai-llm-chatbot) | 616 |\\n| [NeumTry/NeumAI](https://github.com/NeumTry/NeumAI) | 605 |\\n| [namuan/dr-doc-search](https://github.com/namuan/dr-doc-search) | 599 |\\n| [plastic-labs/tutor-gpt](https://github.com/plastic-labs/tutor-gpt) | 595 |\\n| [marimo-team/marimo](https://github.com/marimo-team/marimo) | 591 |\\n| [yakami129/VirtualWife](https://github.com/yakami129/VirtualWife) | 586 |\\n| [xuwenhao/geektime-ai-course](https://github.com/xuwenhao/geektime-ai-course) | 584 |\\n| [jonra1993/fastapi-alembic-sqlmodel-async](https://github.com/jonra1993/fastapi-alembic-sqlmodel-async) | 573 |\\n| [dgarnitz/vectorflow](https://github.com/dgarnitz/vectorflow) | 568 |\\n| [yeagerai/yeagerai-agent](https://github.com/yeagerai/yeagerai-agent) | 564 |\\n| [daveebbelaar/langchain-experiments](https://github.com/daveebbelaar/langchain-experiments) | 563 |\\n| [traceloop/openllmetry](https://github.com/traceloop/openllmetry) | 559 |\\n| [Agenta-AI/agenta](https://github.com/Agenta-AI/agenta) | 546 |\\n| [michaelthwan/searchGPT](https://github.com/michaelthwan/searchGPT) | 545 |\\n| [jina-ai/agentchain](https://github.com/jina-ai/agentchain) | 544 |\\n| [mckaywrigley/repo-chat](https://github.com/mckaywrigley/repo-chat) | 533 |\\n| [marella/chatdocs](https://github.com/marella/chatdocs) | 532 |\\n| [opentensor/bittensor](https://github.com/opentensor/bittensor) | 532 |\\n| [DjangoPeng/openai-quickstart](https://github.com/DjangoPeng/openai-quickstart) | 527 |\\n| [freddyaboulton/gradio-tools](https://github.com/freddyaboulton/gradio-tools) | 517 |\\n| [sidhq/Multi-GPT](https://github.com/sidhq/Multi-GPT) | 515 |\\n| [alejandro-ao/langchain-ask-pdf](https://github.com/alejandro-ao/langchain-ask-pdf) | 514 |\\n| [sajjadium/ctf-archives](https://github.com/sajjadium/ctf-archives) | 507 |\\n| [continuum-llms/chatgpt-memory](https://github.com/continuum-llms/chatgpt-memory) | 502 |\\n| [steamship-core/steamship-langchain](https://github.com/steamship-core/steamship-langchain) | 494 |\\n| [mpaepper/content-chatbot](https://github.com/mpaepper/content-chatbot) | 493 |\\n| [langchain-ai/langchain-aiplugin](https://github.com/langchain-ai/langchain-aiplugin) | 492 |\\n| [logan-markewich/llama\\\\_index\\\\_starter\\\\_pack](https://github.com/logan-markewich/llama_index_starter_pack) | 483 |\\n| [datawhalechina/llm-universe](https://github.com/datawhalechina/llm-universe) | 475 |\\n| [leondz/garak](https://github.com/leondz/garak) | 464 |\\n| [RedisVentures/ArXivChatGuru](https://github.com/RedisVentures/ArXivChatGuru) | 461 |\\n| [Anil-matcha/Chatbase](https://github.com/Anil-matcha/Chatbase) | 455 |\\n| [Aiyu-awa/luna-ai](https://github.com/Aiyu-awa/luna-ai) | 450 |\\n| [DataDog/dd-trace-py](https://github.com/DataDog/dd-trace-py) | 450 |\\n| [Azure-Samples/miyagi](https://github.com/Azure-Samples/miyagi) | 449 |\\n| [poe-platform/poe-protocol](https://github.com/poe-platform/poe-protocol) | 447 |\\n| [onlyphantom/llm-python](https://github.com/onlyphantom/llm-python) | 446 |\\n| [junruxiong/IncarnaMind](https://github.com/junruxiong/IncarnaMind) | 441 |\\n| [CarperAI/OpenELM](https://github.com/CarperAI/OpenELM) | 441 |\\n| [daodao97/chatdoc](https://github.com/daodao97/chatdoc) | 437 |\\n| [showlab/VLog](https://github.com/showlab/VLog) | 436 |\\n| [wandb/weave](https://github.com/wandb/weave) | 420 |\\n| [QwenLM/Qwen-Agent](https://github.com/QwenLM/Qwen-Agent) | 419 |\\n| [huchenxucs/ChatDB](https://github.com/huchenxucs/ChatDB) | 416 |\\n| [jerlendds/osintbuddy](https://github.com/jerlendds/osintbuddy) | 411 |\\n| [monarch-initiative/ontogpt](https://github.com/monarch-initiative/ontogpt) | 408 |\\n| [mallorbc/Finetune\\\\_LLMs](https://github.com/mallorbc/Finetune_LLMs) | 406 |\\n| [JayZeeDesign/researcher-gpt](https://github.com/JayZeeDesign/researcher-gpt) | 405 |\\n| [rsaryev/talk-codebase](https://github.com/rsaryev/talk-codebase) | 401 |\\n| [langchain-ai/langsmith-cookbook](https://github.com/langchain-ai/langsmith-cookbook) | 398 |\\n| [mtenenholtz/chat-twitter](https://github.com/mtenenholtz/chat-twitter) | 398 |\\n| [morpheuslord/GPT\\\\_Vuln-analyzer](https://github.com/morpheuslord/GPT_Vuln-analyzer) | 391 |\\n| [MagnivOrg/prompt-layer-library](https://github.com/MagnivOrg/prompt-layer-library) | 387 |\\n| [JohnSnowLabs/langtest](https://github.com/JohnSnowLabs/langtest) | 384 |\\n| [mrwadams/attackgen](https://github.com/mrwadams/attackgen) | 381 |\\n| [codefuse-ai/Test-Agent](https://github.com/codefuse-ai/Test-Agent) | 380 |\\n| [personoids/personoids-lite](https://github.com/personoids/personoids-lite) | 379 |\\n| [mosaicml/examples](https://github.com/mosaicml/examples) | 378 |\\n| [steamship-packages/langchain-production-starter](https://github.com/steamship-packages/langchain-production-starter) | 370 |\\n| [FlagAI-Open/Aquila2](https://github.com/FlagAI-Open/Aquila2) | 365 |\\n| [Mintplex-Labs/vector-admin](https://github.com/Mintplex-Labs/vector-admin) | 365 |\\n| [NimbleBoxAI/ChainFury](https://github.com/NimbleBoxAI/ChainFury) | 357 |\\n| [BlackHC/llm-strategy](https://github.com/BlackHC/llm-strategy) | 354 |\\n| [lilacai/lilac](https://github.com/lilacai/lilac) | 352 |\\n| [preset-io/promptimize](https://github.com/preset-io/promptimize) | 351 |\\n| [yuanjie-ai/ChatLLM](https://github.com/yuanjie-ai/ChatLLM) | 347 |\\n| [andylokandy/gpt-4-search](https://github.com/andylokandy/gpt-4-search) | 346 |\\n| [zhoudaquan/ChatAnything](https://github.com/zhoudaquan/ChatAnything) | 343 |\\n| [rgomezcasas/dotfiles](https://github.com/rgomezcasas/dotfiles) | 343 |\\n| [tigerlab-ai/tiger](https://github.com/tigerlab-ai/tiger) | 342 |\\n| [HumanSignal/label-studio-ml-backend](https://github.com/HumanSignal/label-studio-ml-backend) | 334 |\\n| [nasa-petal/bidara](https://github.com/nasa-petal/bidara) | 334 |\\n| [momegas/megabots](https://github.com/momegas/megabots) | 334 |\\n| [Cheems-Seminar/grounded-segment-any-parts](https://github.com/Cheems-Seminar/grounded-segment-any-parts) | 330 |\\n| [CambioML/pykoi](https://github.com/CambioML/pykoi) | 326 |\\n| [Nuggt-dev/Nuggt](https://github.com/Nuggt-dev/Nuggt) | 326 |\\n| [wandb/edu](https://github.com/wandb/edu) | 326 |\\n| [Haste171/langchain-chatbot](https://github.com/Haste171/langchain-chatbot) | 324 |\\n| [sugarforever/LangChain-Tutorials](https://github.com/sugarforever/LangChain-Tutorials) | 322 |\\n| [liangwq/Chatglm\\\\_lora\\\\_multi-gpu](https://github.com/liangwq/Chatglm_lora_multi-gpu) | 321 |\\n| [ur-whitelab/chemcrow-public](https://github.com/ur-whitelab/chemcrow-public) | 320 |\\n| [itamargol/openai](https://github.com/itamargol/openai) | 318 |\\n| [gia-guar/JARVIS-ChatGPT](https://github.com/gia-guar/JARVIS-ChatGPT) | 304 |\\n| [SpecterOps/Nemesis](https://github.com/SpecterOps/Nemesis) | 302 |\\n| [facebookresearch/personal-timeline](https://github.com/facebookresearch/personal-timeline) | 302 |\\n| [hnawaz007/pythondataanalysis](https://github.com/hnawaz007/pythondataanalysis) | 301 |\\n| [Chainlit/cookbook](https://github.com/Chainlit/cookbook) | 300 |\\n| [airobotlab/KoChatGPT](https://github.com/airobotlab/KoChatGPT) | 300 |\\n| [GPT-Fathom/GPT-Fathom](https://github.com/GPT-Fathom/GPT-Fathom) | 299 |\\n| [kaarthik108/snowChat](https://github.com/kaarthik108/snowChat) | 299 |\\n| [kyegomez/swarms](https://github.com/kyegomez/swarms) | 296 |\\n| [LangStream/langstream](https://github.com/LangStream/langstream) | 295 |\\n| [genia-dev/GeniA](https://github.com/genia-dev/GeniA) | 294 |\\n| [shamspias/customizable-gpt-chatbot](https://github.com/shamspias/customizable-gpt-chatbot) | 291 |\\n| [TsinghuaDatabaseGroup/DB-GPT](https://github.com/TsinghuaDatabaseGroup/DB-GPT) | 290 |\\n| [conceptofmind/toolformer](https://github.com/conceptofmind/toolformer) | 283 |\\n| [sullivan-sean/chat-langchainjs](https://github.com/sullivan-sean/chat-langchainjs) | 283 |\\n| [AutoPackAI/beebot](https://github.com/AutoPackAI/beebot) | 282 |\\n| [pablomarin/GPT-Azure-Search-Engine](https://github.com/pablomarin/GPT-Azure-Search-Engine) | 282 |\\n| [gkamradt/LLMTest\\\\_NeedleInAHaystack](https://github.com/gkamradt/LLMTest_NeedleInAHaystack) | 280 |\\n| [gustavz/DataChad](https://github.com/gustavz/DataChad) | 280 |\\n| [Safiullah-Rahu/CSV-AI](https://github.com/Safiullah-Rahu/CSV-AI) | 278 |\\n| [hwchase17/chroma-langchain](https://github.com/hwchase17/chroma-langchain) | 275 |\\n| [AkshitIreddy/Interactive-LLM-Powered-NPCs](https://github.com/AkshitIreddy/Interactive-LLM-Powered-NPCs) | 268 |\\n| [ennucore/clippinator](https://github.com/ennucore/clippinator) | 267 |\\n| [artitw/text2text](https://github.com/artitw/text2text) | 264 |\\n| [anarchy-ai/LLM-VM](https://github.com/anarchy-ai/LLM-VM) | 263 |\\n| [wpydcr/LLM-Kit](https://github.com/wpydcr/LLM-Kit) | 262 |\\n| [streamlit/llm-examples](https://github.com/streamlit/llm-examples) | 262 |\\n| [paolorechia/learn-langchain](https://github.com/paolorechia/learn-langchain) | 262 |\\n| [yym68686/ChatGPT-Telegram-Bot](https://github.com/yym68686/ChatGPT-Telegram-Bot) | 261 |\\n| [PradipNichite/Youtube-Tutorials](https://github.com/PradipNichite/Youtube-Tutorials) | 259 |\\n| [radi-cho/datasetGPT](https://github.com/radi-cho/datasetGPT) | 259 |\\n| [ur-whitelab/exmol](https://github.com/ur-whitelab/exmol) | 259 |\\n| [ml6team/fondant](https://github.com/ml6team/fondant) | 254 |\\n| [bborn/howdoi.ai](https://github.com/bborn/howdoi.ai) | 254 |\\n| [rahulnyk/knowledge\\\\_graph](https://github.com/rahulnyk/knowledge_graph) | 253 |\\n| [recalign/RecAlign](https://github.com/recalign/RecAlign) | 248 |\\n| [hwchase17/langchain-streamlit-template](https://github.com/hwchase17/langchain-streamlit-template) | 248 |\\n| [fetchai/uAgents](https://github.com/fetchai/uAgents) | 247 |\\n| [arthur-ai/bench](https://github.com/arthur-ai/bench) | 247 |\\n| [miaoshouai/miaoshouai-assistant](https://github.com/miaoshouai/miaoshouai-assistant) | 246 |\\n| [RoboCoachTechnologies/GPT-Synthesizer](https://github.com/RoboCoachTechnologies/GPT-Synthesizer) | 244 |\\n| [langchain-ai/web-explorer](https://github.com/langchain-ai/web-explorer) | 242 |\\n| [kaleido-lab/dolphin](https://github.com/kaleido-lab/dolphin) | 242 |\\n| [PJLab-ADG/DriveLikeAHuman](https://github.com/PJLab-ADG/DriveLikeAHuman) | 241 |\\n| [stepanogil/autonomous-hr-chatbot](https://github.com/stepanogil/autonomous-hr-chatbot) | 238 |\\n| [WongSaang/chatgpt-ui-server](https://github.com/WongSaang/chatgpt-ui-server) | 236 |\\n| [nexus-stc/stc](https://github.com/nexus-stc/stc) | 235 |\\n| [yeagerai/genworlds](https://github.com/yeagerai/genworlds) | 235 |\\n| [Gentopia-AI/Gentopia](https://github.com/Gentopia-AI/Gentopia) | 235 |\\n| [alphasecio/langchain-examples](https://github.com/alphasecio/langchain-examples) | 235 |\\n| [grumpyp/aixplora](https://github.com/grumpyp/aixplora) | 232 |\\n| [shaman-ai/agent-actors](https://github.com/shaman-ai/agent-actors) | 232 |\\n| [darrenburns/elia](https://github.com/darrenburns/elia) | 231 |\\n| [orgexyz/BlockAGI](https://github.com/orgexyz/BlockAGI) | 231 |\\n| [handrew/browserpilot](https://github.com/handrew/browserpilot) | 226 |\\n| [su77ungr/CASALIOY](https://github.com/su77ungr/CASALIOY) | 225 |\\n| [nicknochnack/LangchainDocuments](https://github.com/nicknochnack/LangchainDocuments) | 225 |\\n| [dbpunk-labs/octogen](https://github.com/dbpunk-labs/octogen) | 224 |\\n| [langchain-ai/weblangchain](https://github.com/langchain-ai/weblangchain) | 222 |\\n| [CL-lau/SQL-GPT](https://github.com/CL-lau/SQL-GPT) | 222 |\\n| [alvarosevilla95/autolang](https://github.com/alvarosevilla95/autolang) | 221 |\\n| [showlab/UniVTG](https://github.com/showlab/UniVTG) | 220 |\\n| [edreisMD/plugnplai](https://github.com/edreisMD/plugnplai) | 219 |\\n| [hardbyte/qabot](https://github.com/hardbyte/qabot) | 216 |\\n| [microsoft/azure-openai-in-a-day-workshop](https://github.com/microsoft/azure-openai-in-a-day-workshop) | 215 |\\n| [Azure-Samples/chat-with-your-data-solution-accelerator](https://github.com/Azure-Samples/chat-with-your-data-solution-accelerator) | 214 |\\n| [amadad/agentcy](https://github.com/amadad/agentcy) | 213 |\\n| [snexus/llm-search](https://github.com/snexus/llm-search) | 212 |\\n| [afaqueumer/DocQA](https://github.com/afaqueumer/DocQA) | 206 |\\n| [plchld/InsightFlow](https://github.com/plchld/InsightFlow) | 205 |\\n| [yasyf/compress-gpt](https://github.com/yasyf/compress-gpt) | 205 |\\n| [benthecoder/ClassGPT](https://github.com/benthecoder/ClassGPT) | 205 |\\n| [voxel51/voxelgpt](https://github.com/voxel51/voxelgpt) | 204 |\\n| [jbrukh/gpt-jargon](https://github.com/jbrukh/gpt-jargon) | 204 |\\n| [emarco177/ice\\\\_breaker](https://github.com/emarco177/ice_breaker) | 204 |\\n| [tencentmusic/supersonic](https://github.com/tencentmusic/supersonic) | 202 |\\n| [Azure-Samples/azure-search-power-skills](https://github.com/Azure-Samples/azure-search-power-skills) | 202 |\\n| [blob42/Instrukt](https://github.com/blob42/Instrukt) | 201 |\\n| [langchain-ai/langsmith-sdk](https://github.com/langchain-ai/langsmith-sdk) | 200 |\\n| [SamPink/dev-gpt](https://github.com/SamPink/dev-gpt) | 200 |\\n| [ju-bezdek/langchain-decorators](https://github.com/ju-bezdek/langchain-decorators) | 198 |\\n| [KMnO4-zx/huanhuan-chat](https://github.com/KMnO4-zx/huanhuan-chat) | 196 |\\n| [Azure-Samples/jp-azureopenai-samples](https://github.com/Azure-Samples/jp-azureopenai-samples) | 192 |\\n| [hongbo-miao/hongbomiao.com](https://github.com/hongbo-miao/hongbomiao.com) | 190 |\\n| [CakeCrusher/openplugin](https://github.com/CakeCrusher/openplugin) | 190 |\\n| [PaddlePaddle/ERNIE-Bot-SDK](https://github.com/PaddlePaddle/ERNIE-Bot-SDK) | 189 |\\n| [retr0reg/Ret2GPT](https://github.com/retr0reg/Ret2GPT) | 189 |\\n| [AmineDiro/cria](https://github.com/AmineDiro/cria) | 187 |\\n| [lancedb/vectordb-recipes](https://github.com/lancedb/vectordb-recipes) | 186 |\\n| [vaibkumr/prompt-optimizer](https://github.com/vaibkumr/prompt-optimizer) | 185 |\\n| [aws-ia/ecs-blueprints](https://github.com/aws-ia/ecs-blueprints) | 184 |\\n| [ethanyanjiali/minChatGPT](https://github.com/ethanyanjiali/minChatGPT) | 183 |\\n| [MuhammadMoinFaisal/LargeLanguageModelsProjects](https://github.com/MuhammadMoinFaisal/LargeLanguageModelsProjects) | 182 |\\n| [shauryr/S2QA](https://github.com/shauryr/S2QA) | 181 |\\n| [summarizepaper/summarizepaper](https://github.com/summarizepaper/summarizepaper) | 180 |\\n| [NomaDamas/RAGchain](https://github.com/NomaDamas/RAGchain) | 179 |\\n| [pnkvalavala/repochat](https://github.com/pnkvalavala/repochat) | 179 |\\n| [ibiscp/LLM-IMDB](https://github.com/ibiscp/LLM-IMDB) | 177 |\\n| [fengyuli-dev/multimedia-gpt](https://github.com/fengyuli-dev/multimedia-gpt) | 177 |\\n| [langchain-ai/text-split-explorer](https://github.com/langchain-ai/text-split-explorer) | 175 |\\n| [iMagist486/ElasticSearch-Langchain-Chatglm2](https://github.com/iMagist486/ElasticSearch-Langchain-Chatglm2) | 175 |\\n| [limaoyi1/Auto-PPT](https://github.com/limaoyi1/Auto-PPT) | 175 |\\n| [Open-Swarm-Net/GPT-Swarm](https://github.com/Open-Swarm-Net/GPT-Swarm) | 175 |\\n| [morpheuslord/HackBot](https://github.com/morpheuslord/HackBot) | 174 |\\n| [v7labs/benchllm](https://github.com/v7labs/benchllm) | 174 |\\n| [Coding-Crashkurse/Langchain-Full-Course](https://github.com/Coding-Crashkurse/Langchain-Full-Course) | 174 |\\n| [dongyh20/Octopus](https://github.com/dongyh20/Octopus) | 173 |\\n| [kimtth/azure-openai-llm-vector-langchain](https://github.com/kimtth/azure-openai-llm-vector-langchain) | 173 |\\n| [mayooear/private-chatbot-mpt30b-langchain](https://github.com/mayooear/private-chatbot-mpt30b-langchain) | 173 |\\n| [zilliztech/akcio](https://github.com/zilliztech/akcio) | 172 |\\n| [jmpaz/promptlib](https://github.com/jmpaz/promptlib) | 172 |\\n| [ccurme/yolopandas](https://github.com/ccurme/yolopandas) | 172 |\\n| [joaomdmoura/CrewAI](https://github.com/joaomdmoura/CrewAI) | 170 |\\n| [katanaml/llm-mistral-invoice-cpu](https://github.com/katanaml/llm-mistral-invoice-cpu) | 170 |\\n| [chakkaradeep/pyCodeAGI](https://github.com/chakkaradeep/pyCodeAGI) | 170 |\\n| [mudler/LocalAGI](https://github.com/mudler/LocalAGI) | 167 |\\n| [dssjon/biblos](https://github.com/dssjon/biblos) | 165 |\\n| [kjappelbaum/gptchem](https://github.com/kjappelbaum/gptchem) | 165 |\\n| [xxw1995/chatglm3-finetune](https://github.com/xxw1995/chatglm3-finetune) | 164 |\\n| [ArjanCodes/examples](https://github.com/ArjanCodes/examples) | 163 |\\n| [AIAnytime/Llama2-Medical-Chatbot](https://github.com/AIAnytime/Llama2-Medical-Chatbot) | 163 |\\n| [RCGAI/SimplyRetrieve](https://github.com/RCGAI/SimplyRetrieve) | 162 |\\n| [langchain-ai/langchain-teacher](https://github.com/langchain-ai/langchain-teacher) | 162 |\\n| [menloparklab/falcon-langchain](https://github.com/menloparklab/falcon-langchain) | 162 |\\n| [flurb18/AgentOoba](https://github.com/flurb18/AgentOoba) | 162 |\\n| [homanp/vercel-langchain](https://github.com/homanp/vercel-langchain) | 161 |\\n| [jiran214/langup-ai](https://github.com/jiran214/langup-ai) | 160 |\\n| [JorisdeJong123/7-Days-of-LangChain](https://github.com/JorisdeJong123/7-Days-of-LangChain) | 160 |\\n| [GoogleCloudPlatform/data-analytics-golden-demo](https://github.com/GoogleCloudPlatform/data-analytics-golden-demo) | 159 |\\n| [positive666/Prompt-Can-Anything](https://github.com/positive666/Prompt-Can-Anything) | 159 |\\n| [luisroque/large\\\\_laguage\\\\_models](https://github.com/luisroque/large_laguage_models) | 159 |\\n| [mlops-for-all/mlops-for-all.github.io](https://github.com/mlops-for-all/mlops-for-all.github.io) | 158 |\\n| [wandb/wandbot](https://github.com/wandb/wandbot) | 158 |\\n| [elastic/elasticsearch-labs](https://github.com/elastic/elasticsearch-labs) | 157 |\\n| [shroominic/funcchain](https://github.com/shroominic/funcchain) | 157 |\\n| [deeppavlov/dream](https://github.com/deeppavlov/dream) | 156 |\\n| [mluogh/eastworld](https://github.com/mluogh/eastworld) | 154 |\\n| [georgesung/llm\\\\_qlora](https://github.com/georgesung/llm_qlora) | 154 |\\n| [RUC-GSAI/YuLan-Rec](https://github.com/RUC-GSAI/YuLan-Rec) | 153 |\\n| [KylinC/ChatFinance](https://github.com/KylinC/ChatFinance) | 152 |\\n| [Dicklesworthstone/llama2\\\\_aided\\\\_tesseract](https://github.com/Dicklesworthstone/llama2_aided_tesseract) | 152 |\\n| [c0sogi/LLMChat](https://github.com/c0sogi/LLMChat) | 152 |\\n| [eunomia-bpf/GPTtrace](https://github.com/eunomia-bpf/GPTtrace) | 152 |\\n| [ErikBjare/gptme](https://github.com/ErikBjare/gptme) | 152 |\\n| [Klingefjord/chatgpt-telegram](https://github.com/Klingefjord/chatgpt-telegram) | 152 |\\n| [RoboCoachTechnologies/ROScribe](https://github.com/RoboCoachTechnologies/ROScribe) | 151 |\\n| [Aggregate-Intellect/sherpa](https://github.com/Aggregate-Intellect/sherpa) | 151 |\\n| [3Alan/DocsMind](https://github.com/3Alan/DocsMind) | 151 |\\n| [tangqiaoyu/ToolAlpaca](https://github.com/tangqiaoyu/ToolAlpaca) | 150 |\\n| [kulltc/chatgpt-sql](https://github.com/kulltc/chatgpt-sql) | 150 |\\n| [mallahyari/drqa](https://github.com/mallahyari/drqa) | 150 |\\n| [MedalCollector/Orator](https://github.com/MedalCollector/Orator) | 149 |\\n| [Teahouse-Studios/akari-bot](https://github.com/Teahouse-Studios/akari-bot) | 149 |\\n| [realminchoi/babyagi-ui](https://github.com/realminchoi/babyagi-ui) | 148 |\\n| [ssheng/BentoChain](https://github.com/ssheng/BentoChain) | 148 |\\n| [solana-labs/chatgpt-plugin](https://github.com/solana-labs/chatgpt-plugin) | 147 |\\n| [aurelio-labs/arxiv-bot](https://github.com/aurelio-labs/arxiv-bot) | 147 |\\n| [Jaseci-Labs/jaseci](https://github.com/Jaseci-Labs/jaseci) | 146 |\\n| [menloparklab/langchain-cohere-qdrant-doc-retrieval](https://github.com/menloparklab/langchain-cohere-qdrant-doc-retrieval) | 146 |\\n| [trancethehuman/entities-extraction-web-scraper](https://github.com/trancethehuman/entities-extraction-web-scraper) | 144 |\\n| [peterw/StoryStorm](https://github.com/peterw/StoryStorm) | 144 |\\n| [grumpyp/chroma-langchain-tutorial](https://github.com/grumpyp/chroma-langchain-tutorial) | 144 |\\n| [gh18l/CrawlGPT](https://github.com/gh18l/CrawlGPT) | 142 |\\n| [langchain-ai/langchain-aws-template](https://github.com/langchain-ai/langchain-aws-template) | 142 |\\n| [yasyf/summ](https://github.com/yasyf/summ) | 141 |\\n| [petehunt/langchain-github-bot](https://github.com/petehunt/langchain-github-bot) | 141 |\\n| [hirokidaichi/wanna](https://github.com/hirokidaichi/wanna) | 140 |\\n| [jina-ai/fastapi-serve](https://github.com/jina-ai/fastapi-serve) | 139 |\\n| [zenml-io/zenml-projects](https://github.com/zenml-io/zenml-projects) | 139 |\\n| [jlonge4/local\\\\_llama](https://github.com/jlonge4/local_llama) | 139 |\\n| [smyja/blackmaria](https://github.com/smyja/blackmaria) | 138 |\\n| [ChuloAI/BrainChulo](https://github.com/ChuloAI/BrainChulo) | 137 |\\n| [log1stics/voice-generator-webui](https://github.com/log1stics/voice-generator-webui) | 137 |\\n| [davila7/file-gpt](https://github.com/davila7/file-gpt) | 137 |\\n| [dcaribou/transfermarkt-datasets](https://github.com/dcaribou/transfermarkt-datasets) | 136 |\\n| [ciare-robotics/world-creator](https://github.com/ciare-robotics/world-creator) | 135 |\\n| [Undertone0809/promptulate](https://github.com/Undertone0809/promptulate) | 134 |\\n| [fixie-ai/fixie-examples](https://github.com/fixie-ai/fixie-examples) | 134 |\\n| [run-llama/ai-engineer-workshop](https://github.com/run-llama/ai-engineer-workshop) | 133 |\\n| [definitive-io/code-indexer-loop](https://github.com/definitive-io/code-indexer-loop) | 131 |\\n| [mortium91/langchain-assistant](https://github.com/mortium91/langchain-assistant) | 131 |\\n| [baidubce/bce-qianfan-sdk](https://github.com/baidubce/bce-qianfan-sdk) | 130 |\\n| [Ngonie-x/langchain\\\\_csv](https://github.com/Ngonie-x/langchain_csv) | 130 |\\n| [IvanIsCoding/ResuLLMe](https://github.com/IvanIsCoding/ResuLLMe) | 130 |\\n| [AnchoringAI/anchoring-ai](https://github.com/AnchoringAI/anchoring-ai) | 129 |\\n| [Azure/business-process-automation](https://github.com/Azure/business-process-automation) | 128 |\\n| [athina-ai/athina-sdk](https://github.com/athina-ai/athina-sdk) | 126 |\\n| [thunlp/ChatEval](https://github.com/thunlp/ChatEval) | 126 |\\n| [prof-frink-lab/slangchain](https://github.com/prof-frink-lab/slangchain) | 126 |\\n| [vietanhdev/pautobot](https://github.com/vietanhdev/pautobot) | 125 |\\n| [awslabs/generative-ai-cdk-constructs](https://github.com/awslabs/generative-ai-cdk-constructs) | 124 |\\n| [sdaaron/QueryGPT](https://github.com/sdaaron/QueryGPT) | 124 |\\n| [rabbitmetrics/langchain-13-min](https://github.com/rabbitmetrics/langchain-13-min) | 124 |\\n| [AutoLLM/AutoAgents](https://github.com/AutoLLM/AutoAgents) | 122 |\\n| [nicknochnack/Nopenai](https://github.com/nicknochnack/Nopenai) | 122 |\\n| [wombyz/HormoziGPT](https://github.com/wombyz/HormoziGPT) | 122 |\\n| [dotvignesh/PDFChat](https://github.com/dotvignesh/PDFChat) | 122 |\\n| [topoteretes/PromethAI-Backend](https://github.com/topoteretes/PromethAI-Backend) | 121 |\\n| [nftblackmagic/flask-langchain](https://github.com/nftblackmagic/flask-langchain) | 121 |\\n| [vishwasg217/finsight](https://github.com/vishwasg217/finsight) | 120 |\\n| [snap-stanford/MLAgentBench](https://github.com/snap-stanford/MLAgentBench) | 120 |\\n| [Azure/app-service-linux-docs](https://github.com/Azure/app-service-linux-docs) | 120 |\\n| [nyanp/chat2plot](https://github.com/nyanp/chat2plot) | 120 |\\n| [ant4g0nist/polar](https://github.com/ant4g0nist/polar) | 119 |\\n| [aws-samples/cdk-eks-blueprints-patterns](https://github.com/aws-samples/cdk-eks-blueprints-patterns) | 119 |\\n| [aws-samples/amazon-kendra-langchain-extensions](https://github.com/aws-samples/amazon-kendra-langchain-extensions) | 119 |\\n| [Xueheng-Li/SynologyChatbotGPT](https://github.com/Xueheng-Li/SynologyChatbotGPT) | 119 |\\n| [CodeAlchemyAI/ViLT-GPT](https://github.com/CodeAlchemyAI/ViLT-GPT) | 117 |\\n| [Lin-jun-xiang/docGPT-langchain](https://github.com/Lin-jun-xiang/docGPT-langchain) | 117 |\\n| [ademakdogan/ChatSQL](https://github.com/ademakdogan/ChatSQL) | 116 |\\n| [aniketmaurya/llm-inference](https://github.com/aniketmaurya/llm-inference) | 115 |\\n| [xuwenhao/mactalk-ai-course](https://github.com/xuwenhao/mactalk-ai-course) | 115 |\\n| [cmooredev/RepoReader](https://github.com/cmooredev/RepoReader) | 115 |\\n| [abi/autocommit](https://github.com/abi/autocommit) | 115 |\\n| [MIDORIBIN/langchain-gpt4free](https://github.com/MIDORIBIN/langchain-gpt4free) | 114 |\\n| [finaldie/auto-news](https://github.com/finaldie/auto-news) | 114 |\\n| [Anil-matcha/Youtube-to-chatbot](https://github.com/Anil-matcha/Youtube-to-chatbot) | 114 |\\n| [avrabyt/MemoryBot](https://github.com/avrabyt/MemoryBot) | 114 |\\n| [Capsize-Games/airunner](https://github.com/Capsize-Games/airunner) | 113 |\\n| [atisharma/llama\\\\_farm](https://github.com/atisharma/llama_farm) | 113 |\\n| [mbchang/data-driven-characters](https://github.com/mbchang/data-driven-characters) | 112 |\\n| [fiddler-labs/fiddler-auditor](https://github.com/fiddler-labs/fiddler-auditor) | 112 |\\n| [dirkjbreeuwer/gpt-automated-web-scraper](https://github.com/dirkjbreeuwer/gpt-automated-web-scraper) | 111 |\\n| [Appointat/Chat-with-Document-s-using-ChatGPT-API-and-Text-Embedding](https://github.com/Appointat/Chat-with-Document-s-using-ChatGPT-API-and-Text-Embedding) | 111 |\\n| [hwchase17/langchain-gradio-template](https://github.com/hwchase17/langchain-gradio-template) | 111 |\\n| [artas728/spelltest](https://github.com/artas728/spelltest) | 110 |\\n| [NVIDIA/GenerativeAIExamples](https://github.com/NVIDIA/GenerativeAIExamples) | 109 |\\n| [Azure/aistudio-copilot-sample](https://github.com/Azure/aistudio-copilot-sample) | 108 |\\n| [codefuse-ai/codefuse-chatbot](https://github.com/codefuse-ai/codefuse-chatbot) | 108 |\\n| [apirrone/Memento](https://github.com/apirrone/Memento) | 108 |\\n| [e-johnstonn/GPT-Doc-Summarizer](https://github.com/e-johnstonn/GPT-Doc-Summarizer) | 108 |\\n| [salesforce/BOLAA](https://github.com/salesforce/BOLAA) | 107 |\\n| [Erol444/gpt4-openai-api](https://github.com/Erol444/gpt4-openai-api) | 106 |\\n| [linjungz/chat-with-your-doc](https://github.com/linjungz/chat-with-your-doc) | 106 |\\n| [crosleythomas/MirrorGPT](https://github.com/crosleythomas/MirrorGPT) | 106 |\\n| [panaverse/learn-generative-ai](https://github.com/panaverse/learn-generative-ai) | 105 |\\n| [Azure/azure-sdk-tools](https://github.com/Azure/azure-sdk-tools) | 105 |\\n| [malywut/gpt\\\\_examples](https://github.com/malywut/gpt_examples) | 105 |\\n| [ritun16/chain-of-verification](https://github.com/ritun16/chain-of-verification) | 104 |\\n| [langchain-ai/langchain-benchmarks](https://github.com/langchain-ai/langchain-benchmarks) | 104 |\\n| [lightninglabs/LangChainBitcoin](https://github.com/lightninglabs/LangChainBitcoin) | 104 |\\n| [flepied/second-brain-agent](https://github.com/flepied/second-brain-agent) | 103 |\\n| [llmapp/openai.mini](https://github.com/llmapp/openai.mini) | 102 |\\n| [gimlet-ai/tddGPT](https://github.com/gimlet-ai/tddGPT) | 102 |\\n| [jlonge4/gpt\\\\_chatwithPDF](https://github.com/jlonge4/gpt_chatwithPDF) | 102 |\\n| [agentification/RAFA\\\\_code](https://github.com/agentification/RAFA_code) | 101 |\\n| [pacman100/DHS-LLM-Workshop](https://github.com/pacman100/DHS-LLM-Workshop) | 101 |\\n| [aws-samples/private-llm-qa-bot](https://github.com/aws-samples/private-llm-qa-bot) | 101 |\\n\\n_Generated by [github-dependents-info](https://github.com/nvuillam/github-dependents-info)\\n_\\n\\n`github-dependents-info --repo \"langchain-ai/langchain\" --markdownfile dependents.md --minstars 100 --sort stars`\\n\\n[Edit this page](https://github.com/langchain-ai/langchain/edit/master/docs/docs/additional_resources/dependents.mdx)\\n\\n* * *\\n\\n#### Was this page helpful?\\n\\n \\n\\n#### You can also leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchain/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E)\\n.\\n\\nCommunity\\n\\n* [Discord](https://discord.gg/cU2adEyC7w)\\n \\n* [Twitter](https://twitter.com/LangChainAI)\\n \\n\\nGitHub\\n\\n* [Organization](https://github.com/langchain-ai)\\n \\n* [Python](https://github.com/langchain-ai/langchain)\\n \\n* [JS/TS](https://github.com/langchain-ai/langchainjs)\\n \\n\\nMore\\n\\n* [Homepage](https://langchain.com)\\n \\n* [Blog](https://blog.langchain.dev)\\n \\n* [YouTube](https://www.youtube.com/@LangChain)\\n \\n\\nCopyright © 2024 LangChain, Inc.', 'metadata': {'ogLocaleAlternate': [], 'sourceURL': 'https://python.langchain.com/v0.2/docs/additional_resources/dependents/', 'pageStatusCode': 200}}, {'content': '[Skip to main content](#__docusaurus_skipToContent_fallback)\\n\\nLangChain 0.2 is out! Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchain/discussions/21716)\\n. You can view the v0.1 docs [here](/v0.1/docs/get_started/introduction/)\\n.\\n\\n[![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark.png)![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark-dark.png)](/v0.2/)\\n[Integrations](/v0.2/docs/integrations/platforms/)\\n[API Reference](https://api.python.langchain.com)\\n\\n[More](#)\\n\\n* [People](/v0.2/docs/people/)\\n \\n* [Contributing](/v0.2/docs/contributing/)\\n \\n* [Templates](/v0.2/docs/templates/)\\n \\n* [Cookbooks](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)\\n \\n* [3rd party tutorials](/v0.2/docs/additional_resources/tutorials/)\\n \\n* [YouTube](/v0.2/docs/additional_resources/youtube/)\\n \\n* [arXiv](/v0.2/docs/additional_resources/arxiv_references/)\\n \\n\\n[v0.2](#)\\n\\n* [v0.2](/v0.2/docs/introduction/)\\n \\n* [v0.1](https://python.langchain.com/v0.1/docs/get_started/introduction)\\n \\n\\n[🦜️🔗](#)\\n\\n* [LangSmith](https://smith.langchain.com)\\n \\n* [LangSmith Docs](https://docs.smith.langchain.com/)\\n \\n* [LangServe GitHub](https://github.com/langchain-ai/langserve)\\n \\n* [Templates GitHub](https://github.com/langchain-ai/langchain/tree/master/templates)\\n \\n* [Templates Hub](https://templates.langchain.com)\\n \\n* [LangChain Hub](https://smith.langchain.com/hub)\\n \\n* [JS/TS Docs](https://js.langchain.com)\\n \\n\\n[💬](https://chat.langchain.com)\\n[](https://github.com/langchain-ai/langchain)\\n\\nSearch\\n\\nOn this page\\n\\n3rd Party Tutorials\\n===================\\n\\nTutorials[\\u200b](#tutorials \"Direct link to Tutorials\")\\n\\n----------------------------------------------------\\n\\n### [LangChain v 0.1 by LangChain.ai](https://www.youtube.com/playlist?list=PLfaIDFEXuae0gBSJ9T0w7cu7iJZbH3T31)\\n[\\u200b](#langchain-v-01-by-langchainai \"Direct link to langchain-v-01-by-langchainai\")\\n\\n### [Build with Langchain - Advanced by LangChain.ai](https://www.youtube.com/playlist?list=PLfaIDFEXuae06tclDATrMYY0idsTdLg9v)\\n[\\u200b](#build-with-langchain---advanced-by-langchainai \"Direct link to build-with-langchain---advanced-by-langchainai\")\\n\\n### [LangGraph by LangChain.ai](https://www.youtube.com/playlist?list=PLfaIDFEXuae16n2TWUkKq5PgJ0w6Pkwtg)\\n[\\u200b](#langgraph-by-langchainai \"Direct link to langgraph-by-langchainai\")\\n\\n### [by Greg Kamradt](https://www.youtube.com/playlist?list=PLqZXAkvF1bPNQER9mLmDbntNfSpzdDIU5)\\n[\\u200b](#by-greg-kamradt \"Direct link to by-greg-kamradt\")\\n\\n### [by Sam Witteveen](https://www.youtube.com/playlist?list=PL8motc6AQftk1Bs42EW45kwYbyJ4jOdiZ)\\n[\\u200b](#by-sam-witteveen \"Direct link to by-sam-witteveen\")\\n\\n### [by James Briggs](https://www.youtube.com/playlist?list=PLIUOU7oqGTLieV9uTIFMm6_4PXg-hlN6F)\\n[\\u200b](#by-james-briggs \"Direct link to by-james-briggs\")\\n\\n### [by Prompt Engineering](https://www.youtube.com/playlist?list=PLVEEucA9MYhOu89CX8H3MBZqayTbcCTMr)\\n[\\u200b](#by-prompt-engineering \"Direct link to by-prompt-engineering\")\\n\\n### [by Mayo Oshin](https://www.youtube.com/@chatwithdata/search?query=langchain)\\n[\\u200b](#by-mayo-oshin \"Direct link to by-mayo-oshin\")\\n\\n### [by 1 little Coder](https://www.youtube.com/playlist?list=PLpdmBGJ6ELUK-v0MK-t4wZmVEbxM5xk6L)\\n[\\u200b](#by-1-little-coder \"Direct link to by-1-little-coder\")\\n\\n### [by BobLin (Chinese language)](https://www.youtube.com/playlist?list=PLbd7ntv6PxC3QMFQvtWfk55p-Op_syO1C)\\n[\\u200b](#by-boblin-chinese-language \"Direct link to by-boblin-chinese-language\")\\n\\nCourses[\\u200b](#courses \"Direct link to Courses\")\\n\\n----------------------------------------------\\n\\n### Featured courses on Deeplearning.AI[\\u200b](#featured-courses-on-deeplearningai \"Direct link to Featured courses on Deeplearning.AI\")\\n\\n* [LangChain for LLM Application Development](https://www.deeplearning.ai/short-courses/langchain-for-llm-application-development/)\\n \\n* [LangChain Chat with Your Data](https://www.deeplearning.ai/short-courses/langchain-chat-with-your-data/)\\n \\n* [Functions, Tools and Agents with LangChain](https://www.deeplearning.ai/short-courses/functions-tools-agents-langchain/)\\n \\n* [Build LLM Apps with LangChain.js](https://www.deeplearning.ai/short-courses/build-llm-apps-with-langchain-js/)\\n \\n\\n### Online courses[\\u200b](#online-courses \"Direct link to Online courses\")\\n\\n* [Udemy](https://www.udemy.com/courses/search/?q=langchain)\\n \\n* [DataCamp](https://www.datacamp.com/courses/developing-llm-applications-with-langchain)\\n \\n* [Pluralsight](https://www.pluralsight.com/search?q=langchain)\\n \\n* [Coursera](https://www.coursera.org/search?query=langchain)\\n \\n* [Maven](https://maven.com/courses?query=langchain)\\n \\n* [Udacity](https://www.udacity.com/catalog/all/any-price/any-school/any-skill/any-difficulty/any-duration/any-type/relevance/page-1?searchValue=langchain)\\n \\n* [LinkedIn Learning](https://www.linkedin.com/search/results/learning/?keywords=langchain)\\n \\n* [edX](https://www.edx.org/search?q=langchain)\\n \\n* [freeCodeCamp](https://www.youtube.com/@freecodecamp/search?query=langchain)\\n \\n\\nShort Tutorials[\\u200b](#short-tutorials \"Direct link to Short Tutorials\")\\n\\n----------------------------------------------------------------------\\n\\n* [by Nicholas Renotte](https://youtu.be/MlK6SIjcjE8)\\n \\n* [by Patrick Loeber](https://youtu.be/LbT1yp6quS8)\\n \\n* [by Rabbitmetrics](https://youtu.be/aywZrzNaKjs)\\n \\n* [by Ivan Reznikov](https://medium.com/@ivanreznikov/langchain-101-course-updated-668f7b41d6cb)\\n \\n\\nBooks and Handbooks[\\u200b](#books-and-handbooks \"Direct link to Books and Handbooks\")\\n\\n----------------------------------------------------------------------------------\\n\\n* [Generative AI with LangChain](https://www.amazon.com/Generative-AI-LangChain-language-ChatGPT/dp/1835083463/ref=sr_1_1?crid=1GMOMH0G7GLR&keywords=generative+ai+with+langchain&qid=1703247181&sprefix=%2Caps%2C298&sr=8-1)\\n by [Ben Auffrath](https://www.amazon.com/stores/Ben-Auffarth/author/B08JQKSZ7D?ref=ap_rdr&store_ref=ap_rdr&isDramIntegrated=true&shoppingPortalEnabled=true)\\n , ©️ 2023 Packt Publishing\\n* [LangChain AI Handbook](https://www.pinecone.io/learn/langchain/)\\n By **James Briggs** and **Francisco Ingham**\\n* [LangChain Cheatsheet](https://pub.towardsai.net/langchain-cheatsheet-all-secrets-on-a-single-page-8be26b721cde)\\n by **Ivan Reznikov**\\n* [Dive into Langchain (Chinese language)](https://langchain.boblin.app/)\\n \\n\\n* * *\\n\\n[Edit this page](https://github.com/langchain-ai/langchain/edit/master/docs/docs/additional_resources/tutorials.mdx)\\n\\n* * *\\n\\n#### Was this page helpful?\\n\\n \\n\\n#### You can also leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchain/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E)\\n.\\n\\n* [Tutorials](#tutorials)\\n * [LangChain v 0.1 by LangChain.ai](#langchain-v-01-by-langchainai)\\n \\n * [Build with Langchain - Advanced by LangChain.ai](#build-with-langchain---advanced-by-langchainai)\\n \\n * [LangGraph by LangChain.ai](#langgraph-by-langchainai)\\n \\n * [by Greg Kamradt](#by-greg-kamradt)\\n \\n * [by Sam Witteveen](#by-sam-witteveen)\\n \\n * [by James Briggs](#by-james-briggs)\\n \\n * [by Prompt Engineering](#by-prompt-engineering)\\n \\n * [by Mayo Oshin](#by-mayo-oshin)\\n \\n * [by 1 little Coder](#by-1-little-coder)\\n \\n * [by BobLin (Chinese language)](#by-boblin-chinese-language)\\n \\n* [Courses](#courses)\\n * [Featured courses on Deeplearning.AI](#featured-courses-on-deeplearningai)\\n \\n * [Online courses](#online-courses)\\n \\n* [Short Tutorials](#short-tutorials)\\n \\n* [Books and Handbooks](#books-and-handbooks)\\n \\n\\nCommunity\\n\\n* [Discord](https://discord.gg/cU2adEyC7w)\\n \\n* [Twitter](https://twitter.com/LangChainAI)\\n \\n\\nGitHub\\n\\n* [Organization](https://github.com/langchain-ai)\\n \\n* [Python](https://github.com/langchain-ai/langchain)\\n \\n* [JS/TS](https://github.com/langchain-ai/langchainjs)\\n \\n\\nMore\\n\\n* [Homepage](https://langchain.com)\\n \\n* [Blog](https://blog.langchain.dev)\\n \\n* [YouTube](https://www.youtube.com/@LangChain)\\n \\n\\nCopyright © 2024 LangChain, Inc.', 'markdown': '[Skip to main content](#__docusaurus_skipToContent_fallback)\\n\\nLangChain 0.2 is out! Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchain/discussions/21716)\\n. You can view the v0.1 docs [here](/v0.1/docs/get_started/introduction/)\\n.\\n\\n[![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark.png)![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark-dark.png)](/v0.2/)\\n[Integrations](/v0.2/docs/integrations/platforms/)\\n[API Reference](https://api.python.langchain.com)\\n\\n[More](#)\\n\\n* [People](/v0.2/docs/people/)\\n \\n* [Contributing](/v0.2/docs/contributing/)\\n \\n* [Templates](/v0.2/docs/templates/)\\n \\n* [Cookbooks](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)\\n \\n* [3rd party tutorials](/v0.2/docs/additional_resources/tutorials/)\\n \\n* [YouTube](/v0.2/docs/additional_resources/youtube/)\\n \\n* [arXiv](/v0.2/docs/additional_resources/arxiv_references/)\\n \\n\\n[v0.2](#)\\n\\n* [v0.2](/v0.2/docs/introduction/)\\n \\n* [v0.1](https://python.langchain.com/v0.1/docs/get_started/introduction)\\n \\n\\n[🦜️🔗](#)\\n\\n* [LangSmith](https://smith.langchain.com)\\n \\n* [LangSmith Docs](https://docs.smith.langchain.com/)\\n \\n* [LangServe GitHub](https://github.com/langchain-ai/langserve)\\n \\n* [Templates GitHub](https://github.com/langchain-ai/langchain/tree/master/templates)\\n \\n* [Templates Hub](https://templates.langchain.com)\\n \\n* [LangChain Hub](https://smith.langchain.com/hub)\\n \\n* [JS/TS Docs](https://js.langchain.com)\\n \\n\\n[💬](https://chat.langchain.com)\\n[](https://github.com/langchain-ai/langchain)\\n\\nSearch\\n\\nOn this page\\n\\n3rd Party Tutorials\\n===================\\n\\nTutorials[\\u200b](#tutorials \"Direct link to Tutorials\")\\n\\n----------------------------------------------------\\n\\n### [LangChain v 0.1 by LangChain.ai](https://www.youtube.com/playlist?list=PLfaIDFEXuae0gBSJ9T0w7cu7iJZbH3T31)\\n[\\u200b](#langchain-v-01-by-langchainai \"Direct link to langchain-v-01-by-langchainai\")\\n\\n### [Build with Langchain - Advanced by LangChain.ai](https://www.youtube.com/playlist?list=PLfaIDFEXuae06tclDATrMYY0idsTdLg9v)\\n[\\u200b](#build-with-langchain---advanced-by-langchainai \"Direct link to build-with-langchain---advanced-by-langchainai\")\\n\\n### [LangGraph by LangChain.ai](https://www.youtube.com/playlist?list=PLfaIDFEXuae16n2TWUkKq5PgJ0w6Pkwtg)\\n[\\u200b](#langgraph-by-langchainai \"Direct link to langgraph-by-langchainai\")\\n\\n### [by Greg Kamradt](https://www.youtube.com/playlist?list=PLqZXAkvF1bPNQER9mLmDbntNfSpzdDIU5)\\n[\\u200b](#by-greg-kamradt \"Direct link to by-greg-kamradt\")\\n\\n### [by Sam Witteveen](https://www.youtube.com/playlist?list=PL8motc6AQftk1Bs42EW45kwYbyJ4jOdiZ)\\n[\\u200b](#by-sam-witteveen \"Direct link to by-sam-witteveen\")\\n\\n### [by James Briggs](https://www.youtube.com/playlist?list=PLIUOU7oqGTLieV9uTIFMm6_4PXg-hlN6F)\\n[\\u200b](#by-james-briggs \"Direct link to by-james-briggs\")\\n\\n### [by Prompt Engineering](https://www.youtube.com/playlist?list=PLVEEucA9MYhOu89CX8H3MBZqayTbcCTMr)\\n[\\u200b](#by-prompt-engineering \"Direct link to by-prompt-engineering\")\\n\\n### [by Mayo Oshin](https://www.youtube.com/@chatwithdata/search?query=langchain)\\n[\\u200b](#by-mayo-oshin \"Direct link to by-mayo-oshin\")\\n\\n### [by 1 little Coder](https://www.youtube.com/playlist?list=PLpdmBGJ6ELUK-v0MK-t4wZmVEbxM5xk6L)\\n[\\u200b](#by-1-little-coder \"Direct link to by-1-little-coder\")\\n\\n### [by BobLin (Chinese language)](https://www.youtube.com/playlist?list=PLbd7ntv6PxC3QMFQvtWfk55p-Op_syO1C)\\n[\\u200b](#by-boblin-chinese-language \"Direct link to by-boblin-chinese-language\")\\n\\nCourses[\\u200b](#courses \"Direct link to Courses\")\\n\\n----------------------------------------------\\n\\n### Featured courses on Deeplearning.AI[\\u200b](#featured-courses-on-deeplearningai \"Direct link to Featured courses on Deeplearning.AI\")\\n\\n* [LangChain for LLM Application Development](https://www.deeplearning.ai/short-courses/langchain-for-llm-application-development/)\\n \\n* [LangChain Chat with Your Data](https://www.deeplearning.ai/short-courses/langchain-chat-with-your-data/)\\n \\n* [Functions, Tools and Agents with LangChain](https://www.deeplearning.ai/short-courses/functions-tools-agents-langchain/)\\n \\n* [Build LLM Apps with LangChain.js](https://www.deeplearning.ai/short-courses/build-llm-apps-with-langchain-js/)\\n \\n\\n### Online courses[\\u200b](#online-courses \"Direct link to Online courses\")\\n\\n* [Udemy](https://www.udemy.com/courses/search/?q=langchain)\\n \\n* [DataCamp](https://www.datacamp.com/courses/developing-llm-applications-with-langchain)\\n \\n* [Pluralsight](https://www.pluralsight.com/search?q=langchain)\\n \\n* [Coursera](https://www.coursera.org/search?query=langchain)\\n \\n* [Maven](https://maven.com/courses?query=langchain)\\n \\n* [Udacity](https://www.udacity.com/catalog/all/any-price/any-school/any-skill/any-difficulty/any-duration/any-type/relevance/page-1?searchValue=langchain)\\n \\n* [LinkedIn Learning](https://www.linkedin.com/search/results/learning/?keywords=langchain)\\n \\n* [edX](https://www.edx.org/search?q=langchain)\\n \\n* [freeCodeCamp](https://www.youtube.com/@freecodecamp/search?query=langchain)\\n \\n\\nShort Tutorials[\\u200b](#short-tutorials \"Direct link to Short Tutorials\")\\n\\n----------------------------------------------------------------------\\n\\n* [by Nicholas Renotte](https://youtu.be/MlK6SIjcjE8)\\n \\n* [by Patrick Loeber](https://youtu.be/LbT1yp6quS8)\\n \\n* [by Rabbitmetrics](https://youtu.be/aywZrzNaKjs)\\n \\n* [by Ivan Reznikov](https://medium.com/@ivanreznikov/langchain-101-course-updated-668f7b41d6cb)\\n \\n\\nBooks and Handbooks[\\u200b](#books-and-handbooks \"Direct link to Books and Handbooks\")\\n\\n----------------------------------------------------------------------------------\\n\\n* [Generative AI with LangChain](https://www.amazon.com/Generative-AI-LangChain-language-ChatGPT/dp/1835083463/ref=sr_1_1?crid=1GMOMH0G7GLR&keywords=generative+ai+with+langchain&qid=1703247181&sprefix=%2Caps%2C298&sr=8-1)\\n by [Ben Auffrath](https://www.amazon.com/stores/Ben-Auffarth/author/B08JQKSZ7D?ref=ap_rdr&store_ref=ap_rdr&isDramIntegrated=true&shoppingPortalEnabled=true)\\n , ©️ 2023 Packt Publishing\\n* [LangChain AI Handbook](https://www.pinecone.io/learn/langchain/)\\n By **James Briggs** and **Francisco Ingham**\\n* [LangChain Cheatsheet](https://pub.towardsai.net/langchain-cheatsheet-all-secrets-on-a-single-page-8be26b721cde)\\n by **Ivan Reznikov**\\n* [Dive into Langchain (Chinese language)](https://langchain.boblin.app/)\\n \\n\\n* * *\\n\\n[Edit this page](https://github.com/langchain-ai/langchain/edit/master/docs/docs/additional_resources/tutorials.mdx)\\n\\n* * *\\n\\n#### Was this page helpful?\\n\\n \\n\\n#### You can also leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchain/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E)\\n.\\n\\n* [Tutorials](#tutorials)\\n * [LangChain v 0.1 by LangChain.ai](#langchain-v-01-by-langchainai)\\n \\n * [Build with Langchain - Advanced by LangChain.ai](#build-with-langchain---advanced-by-langchainai)\\n \\n * [LangGraph by LangChain.ai](#langgraph-by-langchainai)\\n \\n * [by Greg Kamradt](#by-greg-kamradt)\\n \\n * [by Sam Witteveen](#by-sam-witteveen)\\n \\n * [by James Briggs](#by-james-briggs)\\n \\n * [by Prompt Engineering](#by-prompt-engineering)\\n \\n * [by Mayo Oshin](#by-mayo-oshin)\\n \\n * [by 1 little Coder](#by-1-little-coder)\\n \\n * [by BobLin (Chinese language)](#by-boblin-chinese-language)\\n \\n* [Courses](#courses)\\n * [Featured courses on Deeplearning.AI](#featured-courses-on-deeplearningai)\\n \\n * [Online courses](#online-courses)\\n \\n* [Short Tutorials](#short-tutorials)\\n \\n* [Books and Handbooks](#books-and-handbooks)\\n \\n\\nCommunity\\n\\n* [Discord](https://discord.gg/cU2adEyC7w)\\n \\n* [Twitter](https://twitter.com/LangChainAI)\\n \\n\\nGitHub\\n\\n* [Organization](https://github.com/langchain-ai)\\n \\n* [Python](https://github.com/langchain-ai/langchain)\\n \\n* [JS/TS](https://github.com/langchain-ai/langchainjs)\\n \\n\\nMore\\n\\n* [Homepage](https://langchain.com)\\n \\n* [Blog](https://blog.langchain.dev)\\n \\n* [YouTube](https://www.youtube.com/@LangChain)\\n \\n\\nCopyright © 2024 LangChain, Inc.', 'metadata': {'ogLocaleAlternate': [], 'sourceURL': 'https://python.langchain.com/v0.2/docs/additional_resources/tutorials/', 'pageStatusCode': 200}}, {'content': '[Skip to main content](#__docusaurus_skipToContent_fallback)\\n\\nLangChain 0.2 is out! Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchain/discussions/21716)\\n. You can view the v0.1 docs [here](/v0.1/docs/get_started/introduction/)\\n.\\n\\n[![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark.png)![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark-dark.png)](/v0.2/)\\n[Integrations](/v0.2/docs/integrations/platforms/)\\n[API Reference](https://api.python.langchain.com)\\n\\n[More](#)\\n\\n* [People](/v0.2/docs/people/)\\n \\n* [Contributing](/v0.2/docs/contributing/)\\n \\n* [Templates](/v0.2/docs/templates/)\\n \\n* [Cookbooks](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)\\n \\n* [3rd party tutorials](/v0.2/docs/additional_resources/tutorials/)\\n \\n* [YouTube](/v0.2/docs/additional_resources/youtube/)\\n \\n* [arXiv](/v0.2/docs/additional_resources/arxiv_references/)\\n \\n\\n[v0.2](#)\\n\\n* [v0.2](/v0.2/docs/introduction/)\\n \\n* [v0.1](https://python.langchain.com/v0.1/docs/get_started/introduction)\\n \\n\\n[🦜️🔗](#)\\n\\n* [LangSmith](https://smith.langchain.com)\\n \\n* [LangSmith Docs](https://docs.smith.langchain.com/)\\n \\n* [LangServe GitHub](https://github.com/langchain-ai/langserve)\\n \\n* [Templates GitHub](https://github.com/langchain-ai/langchain/tree/master/templates)\\n \\n* [Templates Hub](https://templates.langchain.com)\\n \\n* [LangChain Hub](https://smith.langchain.com/hub)\\n \\n* [JS/TS Docs](https://js.langchain.com)\\n \\n\\n[💬](https://chat.langchain.com)\\n[](https://github.com/langchain-ai/langchain)\\n\\nSearch\\n\\nOn this page\\n\\nYouTube videos\\n==============\\n\\n\\\\[Updated 2024-05-16\\\\]\\n\\n### [Official LangChain YouTube channel](https://www.youtube.com/@LangChain)\\n[\\u200b](#official-langchain-youtube-channel \"Direct link to official-langchain-youtube-channel\")\\n\\n### [Tutorials on YouTube](/v0.2/docs/additional_resources/tutorials/#tutorials)\\n[\\u200b](#tutorials-on-youtube \"Direct link to tutorials-on-youtube\")\\n\\nVideos (sorted by views)[\\u200b](#videos-sorted-by-views \"Direct link to Videos (sorted by views)\")\\n\\n-----------------------------------------------------------------------------------------------\\n\\nOnly videos with 40K+ views:\\n\\n* [Using `ChatGPT` with YOUR OWN Data. This is magical. (LangChain `OpenAI API`)](https://youtu.be/9AXP7tCI9PI)\\n \\n* [Chat with Multiple `PDFs` | LangChain App Tutorial in Python (Free LLMs and Embeddings)](https://youtu.be/dXxQ0LR-3Hg?si=pjXKhsHRzn10vOqX)\\n \\n* [`Hugging Face` + Langchain in 5 mins | Access 200k+ FREE AI models for your AI apps](https://youtu.be/_j7JEDWuqLE?si=psimQscN3qo2dOa9)\\n \\n* [LangChain Crash Course For Beginners | LangChain Tutorial](https://youtu.be/nAmC7SoVLd8?si=qJdvyG5-rnjqfdj1)\\n \\n* [Vector Embeddings Tutorial – Code Your Own AI Assistant with GPT-4 API + LangChain + NLP](https://youtu.be/yfHHvmaMkcA?si=UBP3yw50cLm3a2nj)\\n \\n* [Development with Large Language Models Tutorial – `OpenAI`, Langchain, Agents, `Chroma`](https://youtu.be/xZDB1naRUlk?si=v8J1q6oFHRyTkf7Y)\\n \\n* [Langchain: `PDF` Chat App (GUI) | ChatGPT for Your PDF FILES | Step-by-Step Tutorial](https://youtu.be/RIWbalZ7sTo?si=LbKsCcuyv0BtnrTY)\\n \\n* [Vector Search `RAG` Tutorial – Combine Your Data with LLMs with Advanced Search](https://youtu.be/JEBDfGqrAUA?si=pD7oxpfwWeJCxfBt)\\n \\n* [LangChain Crash Course for Beginners](https://youtu.be/lG7Uxts9SXs?si=Yte4S5afN7KNCw0F)\\n \\n* [Learn `RAG` From Scratch – Python AI Tutorial from a LangChain Engineer](https://youtu.be/sVcwVQRHIc8?si=_LN4g0vOgSdtlB3S)\\n \\n* [`Llama 2` in LangChain — FIRST Open Source Conversational Agent!](https://youtu.be/6iHVJyX2e50?si=rtq1maPrzWKHbwVV)\\n \\n* [LangChain Tutorial for Beginners | Generative AI Series](https://youtu.be/cQUUkZnyoD0?si=KYz-bvcocdqGh9f_)\\n \\n* [Chatbots with `RAG`: LangChain Full Walkthrough](https://youtu.be/LhnCsygAvzY?si=yS7T98VLfcWdkDek)\\n \\n* [LangChain Explained In 15 Minutes - A MUST Learn For Python Programmers](https://youtu.be/mrjq3lFz23s?si=wkQGcSKUJjuiiEPf)\\n \\n* [LLM Project | End to End LLM Project Using Langchain, `OpenAI` in Finance Domain](https://youtu.be/MoqgmWV1fm8?si=oVl-5kJVgd3a07Y_)\\n \\n* [What is LangChain?](https://youtu.be/1bUy-1hGZpI?si=NZ0D51VM5y-DhjGe)\\n \\n* [`RAG` + Langchain Python Project: Easy AI/Chat For Your Doc](https://youtu.be/tcqEUSNCn8I?si=RLcWPBVLIErRqdmU)\\n \\n* [Getting Started With LangChain In 20 Minutes- Build Celebrity Search Application](https://youtu.be/_FpT1cwcSLg?si=X9qVazlXYucN_JBP)\\n \\n* [LangChain GEN AI Tutorial – 6 End-to-End Projects using OpenAI, Google `Gemini Pro`, `LLAMA2`](https://youtu.be/x0AnCE9SE4A?si=_92gJYm7kb-V2bi0)\\n \\n* [Complete Langchain GEN AI Crash Course With 6 End To End LLM Projects With OPENAI, `LLAMA2`, `Gemini Pro`](https://youtu.be/aWKrL4z5H6w?si=NVLi7Yiq0ccE7xXE)\\n \\n* [AI Leader Reveals The Future of AI AGENTS (LangChain CEO)](https://youtu.be/9ZhbA0FHZYc?si=1r4P6kRvKVvEhRgE)\\n \\n* [Learn How To Query Pdf using Langchain Open AI in 5 min](https://youtu.be/5Ghv-F1wF_0?si=ZZRjrWfeiFOVrcvu)\\n \\n* [Reliable, fully local RAG agents with `LLaMA3`](https://youtu.be/-ROS6gfYIts?si=75CXA8W_BbnkIxcV)\\n \\n* [Learn `LangChain.js` - Build LLM apps with JavaScript and `OpenAI`](https://youtu.be/HSZ_uaif57o?si=Icj-RAhwMT-vHaYA)\\n \\n* [LLM Project | End to End LLM Project Using LangChain, Google Palm In Ed-Tech Industry](https://youtu.be/AjQPRomyd-k?si=eC3NT6kn02Lhpz-_)\\n \\n* [Chatbot Answering from Your Own Knowledge Base: Langchain, `ChatGPT`, `Pinecone`, and `Streamlit`: | Code](https://youtu.be/nAKhxQ3hcMA?si=9Zd_Nd_jiYhtml5w)\\n \\n* [LangChain is AMAZING | Quick Python Tutorial](https://youtu.be/I4mFqyqFkxg?si=aJ66qh558OfNAczD)\\n \\n* [`GirlfriendGPT` - AI girlfriend with LangChain](https://youtu.be/LiN3D1QZGQw?si=kZR-lnJwixeVrjmh)\\n \\n* [Using NEW `MPT-7B` in `Hugging Face` and LangChain](https://youtu.be/DXpk9K7DgMo?si=99JDpV_ueimwJhMi)\\n \\n* [LangChain - COMPLETE TUTORIAL - Basics to advanced concept!](https://youtu.be/a89vqgK-Qcs?si=0aVO2EOqsw7GE5e3)\\n \\n* [LangChain Agents: Simply Explained!](https://youtu.be/Xi9Ui-9qcPw?si=DCuG7nGx8dxcfhkx)\\n \\n* [Chat With Multiple `PDF` Documents With Langchain And Google `Gemini Pro`](https://youtu.be/uus5eLz6smA?si=YUwvHtaZsGeIl0WD)\\n \\n* [LLM Project | End to end LLM project Using Langchain, `Google Palm` in Retail Industry](https://youtu.be/4wtrl4hnPT8?si=_eOKPpdLfWu5UXMQ)\\n \\n* [Tutorial | Chat with any Website using Python and Langchain](https://youtu.be/bupx08ZgSFg?si=KRrjYZFnuLsstGwW)\\n \\n* [Prompt Engineering And LLM\\'s With LangChain In One Shot-Generative AI](https://youtu.be/t2bSApmPzU4?si=87vPQQtYEWTyu2Kx)\\n \\n* [Build a Custom Chatbot with `OpenAI`: `GPT-Index` & LangChain | Step-by-Step Tutorial](https://youtu.be/FIDv6nc4CgU?si=gR1u3DUG9lvzBIKK)\\n \\n* [Search Your `PDF` App using Langchain, `ChromaDB`, and Open Source LLM: No OpenAI API (Runs on CPU)](https://youtu.be/rIV1EseKwU4?si=UxZEoXSiPai8fXgl)\\n \\n* [Building a `RAG` application from scratch using Python, LangChain, and the `OpenAI API`](https://youtu.be/BrsocJb-fAo?si=hvkh9iTGzJ-LnsX-)\\n \\n* [Function Calling via `ChatGPT API` - First Look With LangChain](https://youtu.be/0-zlUy7VUjg?si=Vc6LFseckEc6qvuk)\\n \\n* [Private GPT, free deployment! Langchain-Chachat helps you easily play with major mainstream AI models! | Zero Degree Commentary](https://youtu.be/3LLUyaHP-3I?si=AZumEeFXsvqaLl0f)\\n \\n* [Create a ChatGPT clone using `Streamlit` and LangChain](https://youtu.be/IaTiyQ2oYUQ?si=WbgsYmqPDnMidSUK)\\n \\n* [What\\'s next for AI agents ft. LangChain\\'s Harrison Chase](https://youtu.be/pBBe1pk8hf4?si=H4vdBF9nmkNZxiHt)\\n \\n* [`LangFlow`: Build Chatbots without Writing Code - LangChain](https://youtu.be/KJ-ux3hre4s?si=TJuDu4bAlva1myNL)\\n \\n* [Building a LangChain Custom Medical Agent with Memory](https://youtu.be/6UFtRwWnHws?si=wymYad26VgigRkHy)\\n \\n* [`Ollama` meets LangChain](https://youtu.be/k_1pOF1mj8k?si=RlBiCrmaR3s7SnMK)\\n \\n* [End To End LLM Langchain Project using `Pinecone` Vector Database](https://youtu.be/erUfLIi9OFM?si=aHpuHXdIEmAfS4eF)\\n \\n* [`LLaMA2` with LangChain - Basics | LangChain TUTORIAL](https://youtu.be/cIRzwSXB4Rc?si=FUs0OLVJpzKhut0h)\\n \\n* [Understanding `ReACT` with LangChain](https://youtu.be/Eug2clsLtFs?si=imgj534ggxlypS0d)\\n \\n\\n* * *\\n\\n\\\\[Updated 2024-05-16\\\\]\\n\\n[Edit this page](https://github.com/langchain-ai/langchain/edit/master/docs/docs/additional_resources/youtube.mdx)\\n\\n* * *\\n\\n#### Was this page helpful?\\n\\n \\n\\n#### You can also leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchain/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E)\\n.\\n\\n* [Official LangChain YouTube channel](#official-langchain-youtube-channel)\\n \\n* [Tutorials on YouTube](#tutorials-on-youtube)\\n \\n* [Videos (sorted by views)](#videos-sorted-by-views)\\n \\n\\nCommunity\\n\\n* [Discord](https://discord.gg/cU2adEyC7w)\\n \\n* [Twitter](https://twitter.com/LangChainAI)\\n \\n\\nGitHub\\n\\n* [Organization](https://github.com/langchain-ai)\\n \\n* [Python](https://github.com/langchain-ai/langchain)\\n \\n* [JS/TS](https://github.com/langchain-ai/langchainjs)\\n \\n\\nMore\\n\\n* [Homepage](https://langchain.com)\\n \\n* [Blog](https://blog.langchain.dev)\\n \\n* [YouTube](https://www.youtube.com/@LangChain)\\n \\n\\nCopyright © 2024 LangChain, Inc.', 'markdown': '[Skip to main content](#__docusaurus_skipToContent_fallback)\\n\\nLangChain 0.2 is out! Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchain/discussions/21716)\\n. You can view the v0.1 docs [here](/v0.1/docs/get_started/introduction/)\\n.\\n\\n[![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark.png)![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark-dark.png)](/v0.2/)\\n[Integrations](/v0.2/docs/integrations/platforms/)\\n[API Reference](https://api.python.langchain.com)\\n\\n[More](#)\\n\\n* [People](/v0.2/docs/people/)\\n \\n* [Contributing](/v0.2/docs/contributing/)\\n \\n* [Templates](/v0.2/docs/templates/)\\n \\n* [Cookbooks](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)\\n \\n* [3rd party tutorials](/v0.2/docs/additional_resources/tutorials/)\\n \\n* [YouTube](/v0.2/docs/additional_resources/youtube/)\\n \\n* [arXiv](/v0.2/docs/additional_resources/arxiv_references/)\\n \\n\\n[v0.2](#)\\n\\n* [v0.2](/v0.2/docs/introduction/)\\n \\n* [v0.1](https://python.langchain.com/v0.1/docs/get_started/introduction)\\n \\n\\n[🦜️🔗](#)\\n\\n* [LangSmith](https://smith.langchain.com)\\n \\n* [LangSmith Docs](https://docs.smith.langchain.com/)\\n \\n* [LangServe GitHub](https://github.com/langchain-ai/langserve)\\n \\n* [Templates GitHub](https://github.com/langchain-ai/langchain/tree/master/templates)\\n \\n* [Templates Hub](https://templates.langchain.com)\\n \\n* [LangChain Hub](https://smith.langchain.com/hub)\\n \\n* [JS/TS Docs](https://js.langchain.com)\\n \\n\\n[💬](https://chat.langchain.com)\\n[](https://github.com/langchain-ai/langchain)\\n\\nSearch\\n\\nOn this page\\n\\nYouTube videos\\n==============\\n\\n\\\\[Updated 2024-05-16\\\\]\\n\\n### [Official LangChain YouTube channel](https://www.youtube.com/@LangChain)\\n[\\u200b](#official-langchain-youtube-channel \"Direct link to official-langchain-youtube-channel\")\\n\\n### [Tutorials on YouTube](/v0.2/docs/additional_resources/tutorials/#tutorials)\\n[\\u200b](#tutorials-on-youtube \"Direct link to tutorials-on-youtube\")\\n\\nVideos (sorted by views)[\\u200b](#videos-sorted-by-views \"Direct link to Videos (sorted by views)\")\\n\\n-----------------------------------------------------------------------------------------------\\n\\nOnly videos with 40K+ views:\\n\\n* [Using `ChatGPT` with YOUR OWN Data. This is magical. (LangChain `OpenAI API`)](https://youtu.be/9AXP7tCI9PI)\\n \\n* [Chat with Multiple `PDFs` | LangChain App Tutorial in Python (Free LLMs and Embeddings)](https://youtu.be/dXxQ0LR-3Hg?si=pjXKhsHRzn10vOqX)\\n \\n* [`Hugging Face` + Langchain in 5 mins | Access 200k+ FREE AI models for your AI apps](https://youtu.be/_j7JEDWuqLE?si=psimQscN3qo2dOa9)\\n \\n* [LangChain Crash Course For Beginners | LangChain Tutorial](https://youtu.be/nAmC7SoVLd8?si=qJdvyG5-rnjqfdj1)\\n \\n* [Vector Embeddings Tutorial – Code Your Own AI Assistant with GPT-4 API + LangChain + NLP](https://youtu.be/yfHHvmaMkcA?si=UBP3yw50cLm3a2nj)\\n \\n* [Development with Large Language Models Tutorial – `OpenAI`, Langchain, Agents, `Chroma`](https://youtu.be/xZDB1naRUlk?si=v8J1q6oFHRyTkf7Y)\\n \\n* [Langchain: `PDF` Chat App (GUI) | ChatGPT for Your PDF FILES | Step-by-Step Tutorial](https://youtu.be/RIWbalZ7sTo?si=LbKsCcuyv0BtnrTY)\\n \\n* [Vector Search `RAG` Tutorial – Combine Your Data with LLMs with Advanced Search](https://youtu.be/JEBDfGqrAUA?si=pD7oxpfwWeJCxfBt)\\n \\n* [LangChain Crash Course for Beginners](https://youtu.be/lG7Uxts9SXs?si=Yte4S5afN7KNCw0F)\\n \\n* [Learn `RAG` From Scratch – Python AI Tutorial from a LangChain Engineer](https://youtu.be/sVcwVQRHIc8?si=_LN4g0vOgSdtlB3S)\\n \\n* [`Llama 2` in LangChain — FIRST Open Source Conversational Agent!](https://youtu.be/6iHVJyX2e50?si=rtq1maPrzWKHbwVV)\\n \\n* [LangChain Tutorial for Beginners | Generative AI Series](https://youtu.be/cQUUkZnyoD0?si=KYz-bvcocdqGh9f_)\\n \\n* [Chatbots with `RAG`: LangChain Full Walkthrough](https://youtu.be/LhnCsygAvzY?si=yS7T98VLfcWdkDek)\\n \\n* [LangChain Explained In 15 Minutes - A MUST Learn For Python Programmers](https://youtu.be/mrjq3lFz23s?si=wkQGcSKUJjuiiEPf)\\n \\n* [LLM Project | End to End LLM Project Using Langchain, `OpenAI` in Finance Domain](https://youtu.be/MoqgmWV1fm8?si=oVl-5kJVgd3a07Y_)\\n \\n* [What is LangChain?](https://youtu.be/1bUy-1hGZpI?si=NZ0D51VM5y-DhjGe)\\n \\n* [`RAG` + Langchain Python Project: Easy AI/Chat For Your Doc](https://youtu.be/tcqEUSNCn8I?si=RLcWPBVLIErRqdmU)\\n \\n* [Getting Started With LangChain In 20 Minutes- Build Celebrity Search Application](https://youtu.be/_FpT1cwcSLg?si=X9qVazlXYucN_JBP)\\n \\n* [LangChain GEN AI Tutorial – 6 End-to-End Projects using OpenAI, Google `Gemini Pro`, `LLAMA2`](https://youtu.be/x0AnCE9SE4A?si=_92gJYm7kb-V2bi0)\\n \\n* [Complete Langchain GEN AI Crash Course With 6 End To End LLM Projects With OPENAI, `LLAMA2`, `Gemini Pro`](https://youtu.be/aWKrL4z5H6w?si=NVLi7Yiq0ccE7xXE)\\n \\n* [AI Leader Reveals The Future of AI AGENTS (LangChain CEO)](https://youtu.be/9ZhbA0FHZYc?si=1r4P6kRvKVvEhRgE)\\n \\n* [Learn How To Query Pdf using Langchain Open AI in 5 min](https://youtu.be/5Ghv-F1wF_0?si=ZZRjrWfeiFOVrcvu)\\n \\n* [Reliable, fully local RAG agents with `LLaMA3`](https://youtu.be/-ROS6gfYIts?si=75CXA8W_BbnkIxcV)\\n \\n* [Learn `LangChain.js` - Build LLM apps with JavaScript and `OpenAI`](https://youtu.be/HSZ_uaif57o?si=Icj-RAhwMT-vHaYA)\\n \\n* [LLM Project | End to End LLM Project Using LangChain, Google Palm In Ed-Tech Industry](https://youtu.be/AjQPRomyd-k?si=eC3NT6kn02Lhpz-_)\\n \\n* [Chatbot Answering from Your Own Knowledge Base: Langchain, `ChatGPT`, `Pinecone`, and `Streamlit`: | Code](https://youtu.be/nAKhxQ3hcMA?si=9Zd_Nd_jiYhtml5w)\\n \\n* [LangChain is AMAZING | Quick Python Tutorial](https://youtu.be/I4mFqyqFkxg?si=aJ66qh558OfNAczD)\\n \\n* [`GirlfriendGPT` - AI girlfriend with LangChain](https://youtu.be/LiN3D1QZGQw?si=kZR-lnJwixeVrjmh)\\n \\n* [Using NEW `MPT-7B` in `Hugging Face` and LangChain](https://youtu.be/DXpk9K7DgMo?si=99JDpV_ueimwJhMi)\\n \\n* [LangChain - COMPLETE TUTORIAL - Basics to advanced concept!](https://youtu.be/a89vqgK-Qcs?si=0aVO2EOqsw7GE5e3)\\n \\n* [LangChain Agents: Simply Explained!](https://youtu.be/Xi9Ui-9qcPw?si=DCuG7nGx8dxcfhkx)\\n \\n* [Chat With Multiple `PDF` Documents With Langchain And Google `Gemini Pro`](https://youtu.be/uus5eLz6smA?si=YUwvHtaZsGeIl0WD)\\n \\n* [LLM Project | End to end LLM project Using Langchain, `Google Palm` in Retail Industry](https://youtu.be/4wtrl4hnPT8?si=_eOKPpdLfWu5UXMQ)\\n \\n* [Tutorial | Chat with any Website using Python and Langchain](https://youtu.be/bupx08ZgSFg?si=KRrjYZFnuLsstGwW)\\n \\n* [Prompt Engineering And LLM\\'s With LangChain In One Shot-Generative AI](https://youtu.be/t2bSApmPzU4?si=87vPQQtYEWTyu2Kx)\\n \\n* [Build a Custom Chatbot with `OpenAI`: `GPT-Index` & LangChain | Step-by-Step Tutorial](https://youtu.be/FIDv6nc4CgU?si=gR1u3DUG9lvzBIKK)\\n \\n* [Search Your `PDF` App using Langchain, `ChromaDB`, and Open Source LLM: No OpenAI API (Runs on CPU)](https://youtu.be/rIV1EseKwU4?si=UxZEoXSiPai8fXgl)\\n \\n* [Building a `RAG` application from scratch using Python, LangChain, and the `OpenAI API`](https://youtu.be/BrsocJb-fAo?si=hvkh9iTGzJ-LnsX-)\\n \\n* [Function Calling via `ChatGPT API` - First Look With LangChain](https://youtu.be/0-zlUy7VUjg?si=Vc6LFseckEc6qvuk)\\n \\n* [Private GPT, free deployment! Langchain-Chachat helps you easily play with major mainstream AI models! | Zero Degree Commentary](https://youtu.be/3LLUyaHP-3I?si=AZumEeFXsvqaLl0f)\\n \\n* [Create a ChatGPT clone using `Streamlit` and LangChain](https://youtu.be/IaTiyQ2oYUQ?si=WbgsYmqPDnMidSUK)\\n \\n* [What\\'s next for AI agents ft. LangChain\\'s Harrison Chase](https://youtu.be/pBBe1pk8hf4?si=H4vdBF9nmkNZxiHt)\\n \\n* [`LangFlow`: Build Chatbots without Writing Code - LangChain](https://youtu.be/KJ-ux3hre4s?si=TJuDu4bAlva1myNL)\\n \\n* [Building a LangChain Custom Medical Agent with Memory](https://youtu.be/6UFtRwWnHws?si=wymYad26VgigRkHy)\\n \\n* [`Ollama` meets LangChain](https://youtu.be/k_1pOF1mj8k?si=RlBiCrmaR3s7SnMK)\\n \\n* [End To End LLM Langchain Project using `Pinecone` Vector Database](https://youtu.be/erUfLIi9OFM?si=aHpuHXdIEmAfS4eF)\\n \\n* [`LLaMA2` with LangChain - Basics | LangChain TUTORIAL](https://youtu.be/cIRzwSXB4Rc?si=FUs0OLVJpzKhut0h)\\n \\n* [Understanding `ReACT` with LangChain](https://youtu.be/Eug2clsLtFs?si=imgj534ggxlypS0d)\\n \\n\\n* * *\\n\\n\\\\[Updated 2024-05-16\\\\]\\n\\n[Edit this page](https://github.com/langchain-ai/langchain/edit/master/docs/docs/additional_resources/youtube.mdx)\\n\\n* * *\\n\\n#### Was this page helpful?\\n\\n \\n\\n#### You can also leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchain/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E)\\n.\\n\\n* [Official LangChain YouTube channel](#official-langchain-youtube-channel)\\n \\n* [Tutorials on YouTube](#tutorials-on-youtube)\\n \\n* [Videos (sorted by views)](#videos-sorted-by-views)\\n \\n\\nCommunity\\n\\n* [Discord](https://discord.gg/cU2adEyC7w)\\n \\n* [Twitter](https://twitter.com/LangChainAI)\\n \\n\\nGitHub\\n\\n* [Organization](https://github.com/langchain-ai)\\n \\n* [Python](https://github.com/langchain-ai/langchain)\\n \\n* [JS/TS](https://github.com/langchain-ai/langchainjs)\\n \\n\\nMore\\n\\n* [Homepage](https://langchain.com)\\n \\n* [Blog](https://blog.langchain.dev)\\n \\n* [YouTube](https://www.youtube.com/@LangChain)\\n \\n\\nCopyright © 2024 LangChain, Inc.', 'metadata': {'ogLocaleAlternate': [], 'sourceURL': 'https://python.langchain.com/v0.2/docs/additional_resources/youtube/', 'pageStatusCode': 200}}]\n" + ] + } + ], + "source": [ + "# Initialize the FirecrawlApp with your API key\n", + "app = FirecrawlApp(api_key=firecrawl_api_key)\n", + "\n", + "# Crawl a website\n", + "crawl_url = 'https://python.langchain.com/v0.2/docs'\n", + "params = {\n", + " 'crawlerOptions': {\n", + " 'limit': 5\n", + " }\n", + "}\n", + "crawl_result = app.crawl_url(crawl_url, params=params)\n", + "cleaned_crawl_result = []\n", + "if crawl_result is not None:\n", + " # Convert crawl results to JSON format, excluding 'content' field from each entry\n", + " cleaned_crawl_result = [{k: v for k, v in entry.items() if k != 'content'} for entry in crawl_result]\n", + "else:\n", + " print(\"No data returned from crawl.\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "MODEL_NAME = \"claude-3-5-sonnet-20240620\"\n", + "\n", + "SYSTEM_PROMPT = \"\"\"\n", + "## your job & context\n", + "you are a python data scientist. you are given tasks to complete and you run python code to solve them.\n", + "- the python code runs in jupyter notebook.\n", + "- every time you call `execute_python` tool, the python code is executed in a separate cell. it's okay to multiple calls to `execute_python`.\n", + "- display visualizations using matplotlib or any other visualization library directly in the notebook. don't worry about saving the visualizations to a file.\n", + "- you have access to the internet and can make api requests.\n", + "- you also have access to the filesystem and can read/write files.\n", + "- you can install any pip package (if it exists) if you need to but the usual packages for data analysis are already preinstalled.\n", + "- you can run any python code you want, everything is running in a secure sandbox environment.\n", + "\n", + "## style guide\n", + "tool response values that have text inside \"[]\" mean that a visual element got rended in the notebook. for example:\n", + "- \"[chart]\" means that a chart was generated in the notebook.\n", + "\"\"\"\n", + "\n", + "tools = [\n", + " {\n", + " \"name\": \"execute_python\",\n", + " \"description\": \"Execute python code in a Jupyter notebook cell and returns any result, stdout, stderr, display_data, and error.\",\n", + " \"input_schema\": {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"code\": {\n", + " \"type\": \"string\",\n", + " \"description\": \"The python code to execute in a single cell.\"\n", + " }\n", + " },\n", + " \"required\": [\"code\"]\n", + " }\n", + " }\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def code_interpret(e2b_code_interpreter, code):\n", + " print(\"Running code interpreter...\")\n", + " exec = e2b_code_interpreter.notebook.exec_cell(\n", + " code,\n", + " on_stderr=lambda stderr: print(\"[Code Interpreter]\", stderr),\n", + " on_stdout=lambda stdout: print(\"[Code Interpreter]\", stdout),\n", + " # You can also stream code execution results\n", + " # on_result=...\n", + " )\n", + "\n", + " if exec.error:\n", + " print(\"[Code Interpreter ERROR]\", exec.error)\n", + " else:\n", + " return exec.results" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from anthropic import Anthropic\n", + "client = Anthropic(\n", + " api_key=anthropic_api_key,\n", + ")\n", + "\n", + "def process_tool_call(e2b_code_interpreter, tool_name, tool_input):\n", + " if tool_name == \"execute_python\":\n", + " return code_interpret(e2b_code_interpreter, tool_input[\"code\"])\n", + " return []\n", + "\n", + "def chat_with_claude(e2b_code_interpreter, user_message):\n", + " print(f\"\\n{'='*50}\\nUser Message: {user_message}\\n{'='*50}\")\n", + "\n", + " message = client.messages.create(\n", + " model=MODEL_NAME,\n", + " system=SYSTEM_PROMPT,\n", + " messages=[{\"role\": \"user\", \"content\": user_message}],\n", + " max_tokens=4096,\n", + " tools=tools,\n", + " )\n", + "\n", + " print(f\"\\nInitial Response:\")\n", + " print(f\"Stop Reason: {message.stop_reason}\")\n", + " print(f\"Content: {message.content}\")\n", + "\n", + " if message.stop_reason == \"tool_use\":\n", + " tool_use = next(block for block in message.content if block.type == \"tool_use\")\n", + " tool_name = tool_use.name\n", + " tool_input = tool_use.input\n", + "\n", + " print(f\"\\nTool Used: {tool_name}\")\n", + " print(f\"Tool Input: {tool_input}\")\n", + "\n", + " code_interpreter_results = process_tool_call(e2b_code_interpreter, tool_name, tool_input)\n", + "\n", + " print(f\"Tool Result: {code_interpreter_results}\")\n", + " return code_interpreter_results\n", + " \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "==================================================\n", + "User Message: Use python to identify the most common topics in the crawl results. For each topic, count the number of times it appears in the crawl results and plot them. Here is the crawl results: [{'markdown': '[Skip to main content](#__docusaurus_skipToContent_fallback)\\n\\nLangChain 0.2 is out! Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchain/discussions/21716)\\n. You can view the v0.1 docs [here](/v0.1/docs/get_started/introduction/)\\n.\\n\\n[![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark.png)![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark-dark.png)](/v0.2/)\\n[Integrations](/v0.2/docs/integrations/platforms/)\\n[API Reference](https://api.python.langchain.com)\\n\\n[More](#)\\n\\n* [People](/v0.2/docs/people/)\\n \\n* [Contributing](/v0.2/docs/contributing/)\\n \\n* [Templates](/v0.2/docs/templates/)\\n \\n* [Cookbooks](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)\\n \\n* [3rd party tutorials](/v0.2/docs/additional_resources/tutorials/)\\n \\n* [YouTube](/v0.2/docs/additional_resources/youtube/)\\n \\n* [arXiv](/v0.2/docs/additional_resources/arxiv_references/)\\n \\n\\n[v0.2](#)\\n\\n* [v0.2](/v0.2/docs/introduction/)\\n \\n* [v0.1](https://python.langchain.com/v0.1/docs/get_started/introduction)\\n \\n\\n[🦜️🔗](#)\\n\\n* [LangSmith](https://smith.langchain.com)\\n \\n* [LangSmith Docs](https://docs.smith.langchain.com/)\\n \\n* [LangServe GitHub](https://github.com/langchain-ai/langserve)\\n \\n* [Templates GitHub](https://github.com/langchain-ai/langchain/tree/master/templates)\\n \\n* [Templates Hub](https://templates.langchain.com)\\n \\n* [LangChain Hub](https://smith.langchain.com/hub)\\n \\n* [JS/TS Docs](https://js.langchain.com)\\n \\n\\n[💬](https://chat.langchain.com)\\n[](https://github.com/langchain-ai/langchain)\\n\\nSearch\\n\\nOn this page\\n\\narXiv\\n=====\\n\\nLangChain implements the latest research in the field of Natural Language Processing. This page contains `arXiv` papers referenced in the LangChain Documentation, API Reference, Templates, and Cookbooks.\\n\\nFrom the opposite direction, scientists use LangChain in research and reference LangChain in the research papers. Here you find [such papers](https://arxiv.org/search/?query=langchain&searchtype=all&source=header)\\n.\\n\\nSummary[\\u200b](#summary \"Direct link to Summary\")\\n\\n----------------------------------------------\\n\\n| arXiv id / Title | Authors | Published date 🔻 | LangChain Documentation |\\n| --- | --- | --- | --- |\\n| `2402.03620v1` [Self-Discover: Large Language Models Self-Compose Reasoning Structures](http://arxiv.org/abs/2402.03620v1) | Pei Zhou, Jay Pujara, Xiang Ren, et al. | 2024-02-06 | `Cookbook:` [self-discover](https://github.com/langchain-ai/langchain/blob/master/cookbook/self-discover.ipynb) |\\n| `2401.18059v1` [RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval](http://arxiv.org/abs/2401.18059v1) | Parth Sarthi, Salman Abdullah, Aditi Tuli, et al. | 2024-01-31 | `Cookbook:` [RAPTOR](https://github.com/langchain-ai/langchain/blob/master/cookbook/RAPTOR.ipynb) |\\n| `2401.15884v2` [Corrective Retrieval Augmented Generation](http://arxiv.org/abs/2401.15884v2) | Shi-Qi Yan, Jia-Chen Gu, Yun Zhu, et al. | 2024-01-29 | `Cookbook:` [langgraph\\\\_crag](https://github.com/langchain-ai/langchain/blob/master/cookbook/langgraph_crag.ipynb) |\\n| `2401.04088v1` [Mixtral of Experts](http://arxiv.org/abs/2401.04088v1) | Albert Q. Jiang, Alexandre Sablayrolles, Antoine Roux, et al. | 2024-01-08 | `Cookbook:` [together\\\\_ai](https://github.com/langchain-ai/langchain/blob/master/cookbook/together_ai.ipynb) |\\n| `2312.06648v2` [Dense X Retrieval: What Retrieval Granularity Should We Use?](http://arxiv.org/abs/2312.06648v2) | Tong Chen, Hongwei Wang, Sihao Chen, et al. | 2023-12-11 | `Template:` [propositional-retrieval](https://python.langchain.com/docs/templates/propositional-retrieval) |\\n| `2311.09210v1` [Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models](http://arxiv.org/abs/2311.09210v1) | Wenhao Yu, Hongming Zhang, Xiaoman Pan, et al. | 2023-11-15 | `Template:` [chain-of-note-wiki](https://python.langchain.com/docs/templates/chain-of-note-wiki) |\\n| `2310.11511v1` [Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection](http://arxiv.org/abs/2310.11511v1) | Akari Asai, Zeqiu Wu, Yizhong Wang, et al. | 2023-10-17 | `Cookbook:` [langgraph\\\\_self\\\\_rag](https://github.com/langchain-ai/langchain/blob/master/cookbook/langgraph_self_rag.ipynb) |\\n| `2310.06117v2` [Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models](http://arxiv.org/abs/2310.06117v2) | Huaixiu Steven Zheng, Swaroop Mishra, Xinyun Chen, et al. | 2023-10-09 | `Template:` [stepback-qa-prompting](https://python.langchain.com/docs/templates/stepback-qa-prompting)
, `Cookbook:` [stepback-qa](https://github.com/langchain-ai/langchain/blob/master/cookbook/stepback-qa.ipynb) |\\n| `2307.09288v2` [Llama 2: Open Foundation and Fine-Tuned Chat Models](http://arxiv.org/abs/2307.09288v2) | Hugo Touvron, Louis Martin, Kevin Stone, et al. | 2023-07-18 | `Cookbook:` [Semi\\\\_Structured\\\\_RAG](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_Structured_RAG.ipynb) |\\n| `2305.14283v3` [Query Rewriting for Retrieval-Augmented Large Language Models](http://arxiv.org/abs/2305.14283v3) | Xinbei Ma, Yeyun Gong, Pengcheng He, et al. | 2023-05-23 | `Template:` [rewrite-retrieve-read](https://python.langchain.com/docs/templates/rewrite-retrieve-read)
, `Cookbook:` [rewrite](https://github.com/langchain-ai/langchain/blob/master/cookbook/rewrite.ipynb) |\\n| `2305.08291v1` [Large Language Model Guided Tree-of-Thought](http://arxiv.org/abs/2305.08291v1) | Jieyi Long | 2023-05-15 | `API:` [langchain\\\\_experimental.tot](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.tot)
, `Cookbook:` [tree\\\\_of\\\\_thought](https://github.com/langchain-ai/langchain/blob/master/cookbook/tree_of_thought.ipynb) |\\n| `2305.04091v3` [Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models](http://arxiv.org/abs/2305.04091v3) | Lei Wang, Wanyu Xu, Yihuai Lan, et al. | 2023-05-06 | `Cookbook:` [plan\\\\_and\\\\_execute\\\\_agent](https://github.com/langchain-ai/langchain/blob/master/cookbook/plan_and_execute_agent.ipynb) |\\n| `2304.08485v2` [Visual Instruction Tuning](http://arxiv.org/abs/2304.08485v2) | Haotian Liu, Chunyuan Li, Qingyang Wu, et al. | 2023-04-17 | `Cookbook:` [Semi\\\\_structured\\\\_and\\\\_multi\\\\_modal\\\\_RAG](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_and_multi_modal_RAG.ipynb)
, [Semi\\\\_structured\\\\_multi\\\\_modal\\\\_RAG\\\\_LLaMA2](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_multi_modal_RAG_LLaMA2.ipynb) |\\n| `2304.03442v2` [Generative Agents: Interactive Simulacra of Human Behavior](http://arxiv.org/abs/2304.03442v2) | Joon Sung Park, Joseph C. O\\'Brien, Carrie J. Cai, et al. | 2023-04-07 | `Cookbook:` [multiagent\\\\_bidding](https://github.com/langchain-ai/langchain/blob/master/cookbook/multiagent_bidding.ipynb)
, [generative\\\\_agents\\\\_interactive\\\\_simulacra\\\\_of\\\\_human\\\\_behavior](https://github.com/langchain-ai/langchain/blob/master/cookbook/generative_agents_interactive_simulacra_of_human_behavior.ipynb) |\\n| `2303.17760v2` [CAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society](http://arxiv.org/abs/2303.17760v2) | Guohao Li, Hasan Abed Al Kader Hammoud, Hani Itani, et al. | 2023-03-31 | `Cookbook:` [camel\\\\_role\\\\_playing](https://github.com/langchain-ai/langchain/blob/master/cookbook/camel_role_playing.ipynb) |\\n| `2303.17580v4` [HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face](http://arxiv.org/abs/2303.17580v4) | Yongliang Shen, Kaitao Song, Xu Tan, et al. | 2023-03-30 | `API:` [langchain\\\\_experimental.autonomous\\\\_agents](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.autonomous_agents)
, `Cookbook:` [hugginggpt](https://github.com/langchain-ai/langchain/blob/master/cookbook/hugginggpt.ipynb) |\\n| `2303.08774v6` [GPT-4 Technical Report](http://arxiv.org/abs/2303.08774v6) | OpenAI, Josh Achiam, Steven Adler, et al. | 2023-03-15 | `Docs:` [docs/integrations/vectorstores/mongodb\\\\_atlas](https://python.langchain.com/docs/integrations/vectorstores/mongodb_atlas) |\\n| `2301.10226v4` [A Watermark for Large Language Models](http://arxiv.org/abs/2301.10226v4) | John Kirchenbauer, Jonas Geiping, Yuxin Wen, et al. | 2023-01-24 | `API:` [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_community...OCIModelDeploymentTGI](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.oci_data_science_model_deployment_endpoint.OCIModelDeploymentTGI.html#langchain_community.llms.oci_data_science_model_deployment_endpoint.OCIModelDeploymentTGI)
, [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference) |\\n| `2212.10496v1` [Precise Zero-Shot Dense Retrieval without Relevance Labels](http://arxiv.org/abs/2212.10496v1) | Luyu Gao, Xueguang Ma, Jimmy Lin, et al. | 2022-12-20 | `API:` [langchain...HypotheticalDocumentEmbedder](https://api.python.langchain.com/en/latest/chains/langchain.chains.hyde.base.HypotheticalDocumentEmbedder.html#langchain.chains.hyde.base.HypotheticalDocumentEmbedder)
, `Template:` [hyde](https://python.langchain.com/docs/templates/hyde)
, `Cookbook:` [hypothetical\\\\_document\\\\_embeddings](https://github.com/langchain-ai/langchain/blob/master/cookbook/hypothetical_document_embeddings.ipynb) |\\n| `2212.07425v3` [Robust and Explainable Identification of Logical Fallacies in Natural Language Arguments](http://arxiv.org/abs/2212.07425v3) | Zhivar Sourati, Vishnu Priya Prasanna Venkatesh, Darshan Deshpande, et al. | 2022-12-12 | `API:` [langchain\\\\_experimental.fallacy\\\\_removal](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.fallacy_removal) |\\n| `2211.13892v2` [Complementary Explanations for Effective In-Context Learning](http://arxiv.org/abs/2211.13892v2) | Xi Ye, Srinivasan Iyer, Asli Celikyilmaz, et al. | 2022-11-25 | `API:` [langchain\\\\_core...MaxMarginalRelevanceExampleSelector](https://api.python.langchain.com/en/latest/example_selectors/langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector.html#langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector) |\\n| `2211.10435v2` [PAL: Program-aided Language Models](http://arxiv.org/abs/2211.10435v2) | Luyu Gao, Aman Madaan, Shuyan Zhou, et al. | 2022-11-18 | `API:` [langchain\\\\_experimental...PALChain](https://api.python.langchain.com/en/latest/pal_chain/langchain_experimental.pal_chain.base.PALChain.html#langchain_experimental.pal_chain.base.PALChain)
, [langchain\\\\_experimental.pal\\\\_chain](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.pal_chain)
, `Cookbook:` [program\\\\_aided\\\\_language\\\\_model](https://github.com/langchain-ai/langchain/blob/master/cookbook/program_aided_language_model.ipynb) |\\n| `2210.03629v3` [ReAct: Synergizing Reasoning and Acting in Language Models](http://arxiv.org/abs/2210.03629v3) | Shunyu Yao, Jeffrey Zhao, Dian Yu, et al. | 2022-10-06 | `Docs:` [docs/integrations/providers/cohere](https://python.langchain.com/docs/integrations/providers/cohere)
, [docs/integrations/chat/huggingface](https://python.langchain.com/docs/integrations/chat/huggingface)
, [docs/integrations/tools/ionic\\\\_shopping](https://python.langchain.com/docs/integrations/tools/ionic_shopping)
, `API:` [langchain...create\\\\_react\\\\_agent](https://api.python.langchain.com/en/latest/agents/langchain.agents.react.agent.create_react_agent.html#langchain.agents.react.agent.create_react_agent)
, [langchain...TrajectoryEvalChain](https://api.python.langchain.com/en/latest/evaluation/langchain.evaluation.agents.trajectory_eval_chain.TrajectoryEvalChain.html#langchain.evaluation.agents.trajectory_eval_chain.TrajectoryEvalChain) |\\n| `2209.10785v2` [Deep Lake: a Lakehouse for Deep Learning](http://arxiv.org/abs/2209.10785v2) | Sasun Hambardzumyan, Abhinav Tuli, Levon Ghukasyan, et al. | 2022-09-22 | `Docs:` [docs/integrations/providers/activeloop\\\\_deeplake](https://python.langchain.com/docs/integrations/providers/activeloop_deeplake) |\\n| `2205.12654v1` [Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages](http://arxiv.org/abs/2205.12654v1) | Kevin Heffernan, Onur Çelebi, Holger Schwenk | 2022-05-25 | `API:` [langchain\\\\_community...LaserEmbeddings](https://api.python.langchain.com/en/latest/embeddings/langchain_community.embeddings.laser.LaserEmbeddings.html#langchain_community.embeddings.laser.LaserEmbeddings) |\\n| `2204.00498v1` [Evaluating the Text-to-SQL Capabilities of Large Language Models](http://arxiv.org/abs/2204.00498v1) | Nitarshan Rajkumar, Raymond Li, Dzmitry Bahdanau | 2022-03-15 | `API:` [langchain\\\\_community...SparkSQL](https://api.python.langchain.com/en/latest/utilities/langchain_community.utilities.spark_sql.SparkSQL.html#langchain_community.utilities.spark_sql.SparkSQL)
, [langchain\\\\_community...SQLDatabase](https://api.python.langchain.com/en/latest/utilities/langchain_community.utilities.sql_database.SQLDatabase.html#langchain_community.utilities.sql_database.SQLDatabase) |\\n| `2202.00666v5` [Locally Typical Sampling](http://arxiv.org/abs/2202.00666v5) | Clara Meister, Tiago Pimentel, Gian Wiher, et al. | 2022-02-01 | `API:` [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference) |\\n| `2103.00020v1` [Learning Transferable Visual Models From Natural Language Supervision](http://arxiv.org/abs/2103.00020v1) | Alec Radford, Jong Wook Kim, Chris Hallacy, et al. | 2021-02-26 | `API:` [langchain\\\\_experimental.open\\\\_clip](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.open_clip) |\\n| `1909.05858v2` [CTRL: A Conditional Transformer Language Model for Controllable Generation](http://arxiv.org/abs/1909.05858v2) | Nitish Shirish Keskar, Bryan McCann, Lav R. Varshney, et al. | 2019-09-11 | `API:` [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)
, [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference) |\\n| `1908.10084v1` [Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks](http://arxiv.org/abs/1908.10084v1) | Nils Reimers, Iryna Gurevych | 2019-08-27 | `Docs:` [docs/integrations/text\\\\_embedding/sentence\\\\_transformers](https://python.langchain.com/docs/integrations/text_embedding/sentence_transformers) |\\n\\nSelf-Discover: Large Language Models Self-Compose Reasoning Structures[\\u200b](#self-discover-large-language-models-self-compose-reasoning-structures \"Direct link to Self-Discover: Large Language Models Self-Compose Reasoning Structures\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2402.03620v1\\n \\n* **Title:** Self-Discover: Large Language Models Self-Compose Reasoning Structures\\n \\n* **Authors:** Pei Zhou, Jay Pujara, Xiang Ren, et al.\\n \\n* **Published Date:** 2024-02-06\\n \\n* **URL:** [http://arxiv.org/abs/2402.03620v1](http://arxiv.org/abs/2402.03620v1)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [self-discover](https://github.com/langchain-ai/langchain/blob/master/cookbook/self-discover.ipynb)\\n \\n\\n**Abstract:** We introduce SELF-DISCOVER, a general framework for LLMs to self-discover the task-intrinsic reasoning structures to tackle complex reasoning problems that are challenging for typical prompting methods. Core to the framework is a self-discovery process where LLMs select multiple atomic reasoning modules such as critical thinking and step-by-step thinking, and compose them into an explicit reasoning structure for LLMs to follow during decoding. SELF-DISCOVER substantially improves GPT-4 and PaLM 2\\'s performance on challenging reasoning benchmarks such as BigBench-Hard, grounded agent reasoning, and MATH, by as much as 32% compared to Chain of Thought (CoT). Furthermore, SELF-DISCOVER outperforms inference-intensive methods such as CoT-Self-Consistency by more than 20%, while requiring 10-40x fewer inference compute. Finally, we show that the self-discovered reasoning structures are universally applicable across model families: from PaLM 2-L to GPT-4, and from GPT-4 to Llama2, and share commonalities with human reasoning patterns.\\n\\nRAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval[\\u200b](#raptor-recursive-abstractive-processing-for-tree-organized-retrieval \"Direct link to RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval\")\\n\\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2401.18059v1\\n \\n* **Title:** RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval\\n \\n* **Authors:** Parth Sarthi, Salman Abdullah, Aditi Tuli, et al.\\n \\n* **Published Date:** 2024-01-31\\n \\n* **URL:** [http://arxiv.org/abs/2401.18059v1](http://arxiv.org/abs/2401.18059v1)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [RAPTOR](https://github.com/langchain-ai/langchain/blob/master/cookbook/RAPTOR.ipynb)\\n \\n\\n**Abstract:** Retrieval-augmented language models can better adapt to changes in world state and incorporate long-tail knowledge. However, most existing methods retrieve only short contiguous chunks from a retrieval corpus, limiting holistic understanding of the overall document context. We introduce the novel approach of recursively embedding, clustering, and summarizing chunks of text, constructing a tree with differing levels of summarization from the bottom up. At inference time, our RAPTOR model retrieves from this tree, integrating information across lengthy documents at different levels of abstraction. Controlled experiments show that retrieval with recursive summaries offers significant improvements over traditional retrieval-augmented LMs on several tasks. On question-answering tasks that involve complex, multi-step reasoning, we show state-of-the-art results; for example, by coupling RAPTOR retrieval with the use of GPT-4, we can improve the best performance on the QuALITY benchmark by 20% in absolute accuracy.\\n\\nCorrective Retrieval Augmented Generation[\\u200b](#corrective-retrieval-augmented-generation \"Direct link to Corrective Retrieval Augmented Generation\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2401.15884v2\\n \\n* **Title:** Corrective Retrieval Augmented Generation\\n \\n* **Authors:** Shi-Qi Yan, Jia-Chen Gu, Yun Zhu, et al.\\n \\n* **Published Date:** 2024-01-29\\n \\n* **URL:** [http://arxiv.org/abs/2401.15884v2](http://arxiv.org/abs/2401.15884v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [langgraph\\\\_crag](https://github.com/langchain-ai/langchain/blob/master/cookbook/langgraph_crag.ipynb)\\n \\n\\n**Abstract:** Large language models (LLMs) inevitably exhibit hallucinations since the accuracy of generated texts cannot be secured solely by the parametric knowledge they encapsulate. Although retrieval-augmented generation (RAG) is a practicable complement to LLMs, it relies heavily on the relevance of retrieved documents, raising concerns about how the model behaves if retrieval goes wrong. To this end, we propose the Corrective Retrieval Augmented Generation (CRAG) to improve the robustness of generation. Specifically, a lightweight retrieval evaluator is designed to assess the overall quality of retrieved documents for a query, returning a confidence degree based on which different knowledge retrieval actions can be triggered. Since retrieval from static and limited corpora can only return sub-optimal documents, large-scale web searches are utilized as an extension for augmenting the retrieval results. Besides, a decompose-then-recompose algorithm is designed for retrieved documents to selectively focus on key information and filter out irrelevant information in them. CRAG is plug-and-play and can be seamlessly coupled with various RAG-based approaches. Experiments on four datasets covering short- and long-form generation tasks show that CRAG can significantly improve the performance of RAG-based approaches.\\n\\nMixtral of Experts[\\u200b](#mixtral-of-experts \"Direct link to Mixtral of Experts\")\\n\\n-------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2401.04088v1\\n \\n* **Title:** Mixtral of Experts\\n \\n* **Authors:** Albert Q. Jiang, Alexandre Sablayrolles, Antoine Roux, et al.\\n \\n* **Published Date:** 2024-01-08\\n \\n* **URL:** [http://arxiv.org/abs/2401.04088v1](http://arxiv.org/abs/2401.04088v1)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [together\\\\_ai](https://github.com/langchain-ai/langchain/blob/master/cookbook/together_ai.ipynb)\\n \\n\\n**Abstract:** We introduce Mixtral 8x7B, a Sparse Mixture of Experts (SMoE) language model. Mixtral has the same architecture as Mistral 7B, with the difference that each layer is composed of 8 feedforward blocks (i.e. experts). For every token, at each layer, a router network selects two experts to process the current state and combine their outputs. Even though each token only sees two experts, the selected experts can be different at each timestep. As a result, each token has access to 47B parameters, but only uses 13B active parameters during inference. Mixtral was trained with a context size of 32k tokens and it outperforms or matches Llama 2 70B and GPT-3.5 across all evaluated benchmarks. In particular, Mixtral vastly outperforms Llama 2 70B on mathematics, code generation, and multilingual benchmarks. We also provide a model fine-tuned to follow instructions, Mixtral 8x7B - Instruct, that surpasses GPT-3.5 Turbo, Claude-2.1, Gemini Pro, and Llama 2 70B - chat model on human benchmarks. Both the base and instruct models are released under the Apache 2.0 license.\\n\\nDense X Retrieval: What Retrieval Granularity Should We Use?[\\u200b](#dense-x-retrieval-what-retrieval-granularity-should-we-use \"Direct link to Dense X Retrieval: What Retrieval Granularity Should We Use?\")\\n\\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2312.06648v2\\n \\n* **Title:** Dense X Retrieval: What Retrieval Granularity Should We Use?\\n \\n* **Authors:** Tong Chen, Hongwei Wang, Sihao Chen, et al.\\n \\n* **Published Date:** 2023-12-11\\n \\n* **URL:** [http://arxiv.org/abs/2312.06648v2](http://arxiv.org/abs/2312.06648v2)\\n \\n* **LangChain:**\\n \\n * **Template:** [propositional-retrieval](https://python.langchain.com/docs/templates/propositional-retrieval)\\n \\n\\n**Abstract:** Dense retrieval has become a prominent method to obtain relevant context or world knowledge in open-domain NLP tasks. When we use a learned dense retriever on a retrieval corpus at inference time, an often-overlooked design choice is the retrieval unit in which the corpus is indexed, e.g. document, passage, or sentence. We discover that the retrieval unit choice significantly impacts the performance of both retrieval and downstream tasks. Distinct from the typical approach of using passages or sentences, we introduce a novel retrieval unit, proposition, for dense retrieval. Propositions are defined as atomic expressions within text, each encapsulating a distinct factoid and presented in a concise, self-contained natural language format. We conduct an empirical comparison of different retrieval granularity. Our results reveal that proposition-based retrieval significantly outperforms traditional passage or sentence-based methods in dense retrieval. Moreover, retrieval by proposition also enhances the performance of downstream QA tasks, since the retrieved texts are more condensed with question-relevant information, reducing the need for lengthy input tokens and minimizing the inclusion of extraneous, irrelevant information.\\n\\nChain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models[\\u200b](#chain-of-note-enhancing-robustness-in-retrieval-augmented-language-models \"Direct link to Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2311.09210v1\\n \\n* **Title:** Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models\\n \\n* **Authors:** Wenhao Yu, Hongming Zhang, Xiaoman Pan, et al.\\n \\n* **Published Date:** 2023-11-15\\n \\n* **URL:** [http://arxiv.org/abs/2311.09210v1](http://arxiv.org/abs/2311.09210v1)\\n \\n* **LangChain:**\\n \\n * **Template:** [chain-of-note-wiki](https://python.langchain.com/docs/templates/chain-of-note-wiki)\\n \\n\\n**Abstract:** Retrieval-augmented language models (RALMs) represent a substantial advancement in the capabilities of large language models, notably in reducing factual hallucination by leveraging external knowledge sources. However, the reliability of the retrieved information is not always guaranteed. The retrieval of irrelevant data can lead to misguided responses, and potentially causing the model to overlook its inherent knowledge, even when it possesses adequate information to address the query. Moreover, standard RALMs often struggle to assess whether they possess adequate knowledge, both intrinsic and retrieved, to provide an accurate answer. In situations where knowledge is lacking, these systems should ideally respond with \"unknown\" when the answer is unattainable. In response to these challenges, we introduces Chain-of-Noting (CoN), a novel approach aimed at improving the robustness of RALMs in facing noisy, irrelevant documents and in handling unknown scenarios. The core idea of CoN is to generate sequential reading notes for retrieved documents, enabling a thorough evaluation of their relevance to the given question and integrating this information to formulate the final answer. We employed ChatGPT to create training data for CoN, which was subsequently trained on an LLaMa-2 7B model. Our experiments across four open-domain QA benchmarks show that RALMs equipped with CoN significantly outperform standard RALMs. Notably, CoN achieves an average improvement of +7.9 in EM score given entirely noisy retrieved documents and +10.5 in rejection rates for real-time questions that fall outside the pre-training knowledge scope.\\n\\nSelf-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection[\\u200b](#self-rag-learning-to-retrieve-generate-and-critique-through-self-reflection \"Direct link to Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2310.11511v1\\n \\n* **Title:** Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection\\n \\n* **Authors:** Akari Asai, Zeqiu Wu, Yizhong Wang, et al.\\n \\n* **Published Date:** 2023-10-17\\n \\n* **URL:** [http://arxiv.org/abs/2310.11511v1](http://arxiv.org/abs/2310.11511v1)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [langgraph\\\\_self\\\\_rag](https://github.com/langchain-ai/langchain/blob/master/cookbook/langgraph_self_rag.ipynb)\\n \\n\\n**Abstract:** Despite their remarkable capabilities, large language models (LLMs) often produce responses containing factual inaccuracies due to their sole reliance on the parametric knowledge they encapsulate. Retrieval-Augmented Generation (RAG), an ad hoc approach that augments LMs with retrieval of relevant knowledge, decreases such issues. However, indiscriminately retrieving and incorporating a fixed number of retrieved passages, regardless of whether retrieval is necessary, or passages are relevant, diminishes LM versatility or can lead to unhelpful response generation. We introduce a new framework called Self-Reflective Retrieval-Augmented Generation (Self-RAG) that enhances an LM\\'s quality and factuality through retrieval and self-reflection. Our framework trains a single arbitrary LM that adaptively retrieves passages on-demand, and generates and reflects on retrieved passages and its own generations using special tokens, called reflection tokens. Generating reflection tokens makes the LM controllable during the inference phase, enabling it to tailor its behavior to diverse task requirements. Experiments show that Self-RAG (7B and 13B parameters) significantly outperforms state-of-the-art LLMs and retrieval-augmented models on a diverse set of tasks. Specifically, Self-RAG outperforms ChatGPT and retrieval-augmented Llama2-chat on Open-domain QA, reasoning and fact verification tasks, and it shows significant gains in improving factuality and citation accuracy for long-form generations relative to these models.\\n\\nTake a Step Back: Evoking Reasoning via Abstraction in Large Language Models[\\u200b](#take-a-step-back-evoking-reasoning-via-abstraction-in-large-language-models \"Direct link to Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2310.06117v2\\n \\n* **Title:** Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models\\n \\n* **Authors:** Huaixiu Steven Zheng, Swaroop Mishra, Xinyun Chen, et al.\\n \\n* **Published Date:** 2023-10-09\\n \\n* **URL:** [http://arxiv.org/abs/2310.06117v2](http://arxiv.org/abs/2310.06117v2)\\n \\n* **LangChain:**\\n \\n * **Template:** [stepback-qa-prompting](https://python.langchain.com/docs/templates/stepback-qa-prompting)\\n \\n * **Cookbook:** [stepback-qa](https://github.com/langchain-ai/langchain/blob/master/cookbook/stepback-qa.ipynb)\\n \\n\\n**Abstract:** We present Step-Back Prompting, a simple prompting technique that enables LLMs to do abstractions to derive high-level concepts and first principles from instances containing specific details. Using the concepts and principles to guide reasoning, LLMs significantly improve their abilities in following a correct reasoning path towards the solution. We conduct experiments of Step-Back Prompting with PaLM-2L, GPT-4 and Llama2-70B models, and observe substantial performance gains on various challenging reasoning-intensive tasks including STEM, Knowledge QA, and Multi-Hop Reasoning. For instance, Step-Back Prompting improves PaLM-2L performance on MMLU (Physics and Chemistry) by 7% and 11% respectively, TimeQA by 27%, and MuSiQue by 7%.\\n\\nLlama 2: Open Foundation and Fine-Tuned Chat Models[\\u200b](#llama-2-open-foundation-and-fine-tuned-chat-models \"Direct link to Llama 2: Open Foundation and Fine-Tuned Chat Models\")\\n\\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2307.09288v2\\n \\n* **Title:** Llama 2: Open Foundation and Fine-Tuned Chat Models\\n \\n* **Authors:** Hugo Touvron, Louis Martin, Kevin Stone, et al.\\n \\n* **Published Date:** 2023-07-18\\n \\n* **URL:** [http://arxiv.org/abs/2307.09288v2](http://arxiv.org/abs/2307.09288v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [Semi\\\\_Structured\\\\_RAG](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_Structured_RAG.ipynb)\\n \\n\\n**Abstract:** In this work, we develop and release Llama 2, a collection of pretrained and fine-tuned large language models (LLMs) ranging in scale from 7 billion to 70 billion parameters. Our fine-tuned LLMs, called Llama 2-Chat, are optimized for dialogue use cases. Our models outperform open-source chat models on most benchmarks we tested, and based on our human evaluations for helpfulness and safety, may be a suitable substitute for closed-source models. We provide a detailed description of our approach to fine-tuning and safety improvements of Llama 2-Chat in order to enable the community to build on our work and contribute to the responsible development of LLMs.\\n\\nQuery Rewriting for Retrieval-Augmented Large Language Models[\\u200b](#query-rewriting-for-retrieval-augmented-large-language-models \"Direct link to Query Rewriting for Retrieval-Augmented Large Language Models\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2305.14283v3\\n \\n* **Title:** Query Rewriting for Retrieval-Augmented Large Language Models\\n \\n* **Authors:** Xinbei Ma, Yeyun Gong, Pengcheng He, et al.\\n \\n* **Published Date:** 2023-05-23\\n \\n* **URL:** [http://arxiv.org/abs/2305.14283v3](http://arxiv.org/abs/2305.14283v3)\\n \\n* **LangChain:**\\n \\n * **Template:** [rewrite-retrieve-read](https://python.langchain.com/docs/templates/rewrite-retrieve-read)\\n \\n * **Cookbook:** [rewrite](https://github.com/langchain-ai/langchain/blob/master/cookbook/rewrite.ipynb)\\n \\n\\n**Abstract:** Large Language Models (LLMs) play powerful, black-box readers in the retrieve-then-read pipeline, making remarkable progress in knowledge-intensive tasks. This work introduces a new framework, Rewrite-Retrieve-Read instead of the previous retrieve-then-read for the retrieval-augmented LLMs from the perspective of the query rewriting. Unlike prior studies focusing on adapting either the retriever or the reader, our approach pays attention to the adaptation of the search query itself, for there is inevitably a gap between the input text and the needed knowledge in retrieval. We first prompt an LLM to generate the query, then use a web search engine to retrieve contexts. Furthermore, to better align the query to the frozen modules, we propose a trainable scheme for our pipeline. A small language model is adopted as a trainable rewriter to cater to the black-box LLM reader. The rewriter is trained using the feedback of the LLM reader by reinforcement learning. Evaluation is conducted on downstream tasks, open-domain QA and multiple-choice QA. Experiments results show consistent performance improvement, indicating that our framework is proven effective and scalable, and brings a new framework for retrieval-augmented LLM.\\n\\nLarge Language Model Guided Tree-of-Thought[\\u200b](#large-language-model-guided-tree-of-thought \"Direct link to Large Language Model Guided Tree-of-Thought\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2305.08291v1\\n \\n* **Title:** Large Language Model Guided Tree-of-Thought\\n \\n* **Authors:** Jieyi Long\\n \\n* **Published Date:** 2023-05-15\\n \\n* **URL:** [http://arxiv.org/abs/2305.08291v1](http://arxiv.org/abs/2305.08291v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental.tot](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.tot)\\n \\n * **Cookbook:** [tree\\\\_of\\\\_thought](https://github.com/langchain-ai/langchain/blob/master/cookbook/tree_of_thought.ipynb)\\n \\n\\n**Abstract:** In this paper, we introduce the Tree-of-Thought (ToT) framework, a novel approach aimed at improving the problem-solving capabilities of auto-regressive large language models (LLMs). The ToT technique is inspired by the human mind\\'s approach for solving complex reasoning tasks through trial and error. In this process, the human mind explores the solution space through a tree-like thought process, allowing for backtracking when necessary. To implement ToT as a software system, we augment an LLM with additional modules including a prompter agent, a checker module, a memory module, and a ToT controller. In order to solve a given problem, these modules engage in a multi-round conversation with the LLM. The memory module records the conversation and state history of the problem solving process, which allows the system to backtrack to the previous steps of the thought-process and explore other directions from there. To verify the effectiveness of the proposed technique, we implemented a ToT-based solver for the Sudoku Puzzle. Experimental results show that the ToT framework can significantly increase the success rate of Sudoku puzzle solving. Our implementation of the ToT-based Sudoku solver is available on GitHub: \\\\\\\\url{[https://github.com/jieyilong/tree-of-thought-puzzle-solver}](https://github.com/jieyilong/tree-of-thought-puzzle-solver%7D)\\n.\\n\\nPlan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models[\\u200b](#plan-and-solve-prompting-improving-zero-shot-chain-of-thought-reasoning-by-large-language-models \"Direct link to Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models\")\\n\\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2305.04091v3\\n \\n* **Title:** Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models\\n \\n* **Authors:** Lei Wang, Wanyu Xu, Yihuai Lan, et al.\\n \\n* **Published Date:** 2023-05-06\\n \\n* **URL:** [http://arxiv.org/abs/2305.04091v3](http://arxiv.org/abs/2305.04091v3)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [plan\\\\_and\\\\_execute\\\\_agent](https://github.com/langchain-ai/langchain/blob/master/cookbook/plan_and_execute_agent.ipynb)\\n \\n\\n**Abstract:** Large language models (LLMs) have recently been shown to deliver impressive performance in various NLP tasks. To tackle multi-step reasoning tasks, few-shot chain-of-thought (CoT) prompting includes a few manually crafted step-by-step reasoning demonstrations which enable LLMs to explicitly generate reasoning steps and improve their reasoning task accuracy. To eliminate the manual effort, Zero-shot-CoT concatenates the target problem statement with \"Let\\'s think step by step\" as an input prompt to LLMs. Despite the success of Zero-shot-CoT, it still suffers from three pitfalls: calculation errors, missing-step errors, and semantic misunderstanding errors. To address the missing-step errors, we propose Plan-and-Solve (PS) Prompting. It consists of two components: first, devising a plan to divide the entire task into smaller subtasks, and then carrying out the subtasks according to the plan. To address the calculation errors and improve the quality of generated reasoning steps, we extend PS prompting with more detailed instructions and derive PS+ prompting. We evaluate our proposed prompting strategy on ten datasets across three reasoning problems. The experimental results over GPT-3 show that our proposed zero-shot prompting consistently outperforms Zero-shot-CoT across all datasets by a large margin, is comparable to or exceeds Zero-shot-Program-of-Thought Prompting, and has comparable performance with 8-shot CoT prompting on the math reasoning problem. The code can be found at [https://github.com/AGI-Edgerunners/Plan-and-Solve-Prompting](https://github.com/AGI-Edgerunners/Plan-and-Solve-Prompting)\\n.\\n\\nVisual Instruction Tuning[\\u200b](#visual-instruction-tuning \"Direct link to Visual Instruction Tuning\")\\n\\n----------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2304.08485v2\\n \\n* **Title:** Visual Instruction Tuning\\n \\n* **Authors:** Haotian Liu, Chunyuan Li, Qingyang Wu, et al.\\n \\n* **Published Date:** 2023-04-17\\n \\n* **URL:** [http://arxiv.org/abs/2304.08485v2](http://arxiv.org/abs/2304.08485v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [Semi\\\\_structured\\\\_and\\\\_multi\\\\_modal\\\\_RAG](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_and_multi_modal_RAG.ipynb)\\n , [Semi\\\\_structured\\\\_multi\\\\_modal\\\\_RAG\\\\_LLaMA2](https://github.com/langchain-ai/langchain/blob/master/cookbook/Semi_structured_multi_modal_RAG_LLaMA2.ipynb)\\n \\n\\n**Abstract:** Instruction tuning large language models (LLMs) using machine-generated instruction-following data has improved zero-shot capabilities on new tasks, but the idea is less explored in the multimodal field. In this paper, we present the first attempt to use language-only GPT-4 to generate multimodal language-image instruction-following data. By instruction tuning on such generated data, we introduce LLaVA: Large Language and Vision Assistant, an end-to-end trained large multimodal model that connects a vision encoder and LLM for general-purpose visual and language understanding.Our early experiments show that LLaVA demonstrates impressive multimodel chat abilities, sometimes exhibiting the behaviors of multimodal GPT-4 on unseen images/instructions, and yields a 85.1% relative score compared with GPT-4 on a synthetic multimodal instruction-following dataset. When fine-tuned on Science QA, the synergy of LLaVA and GPT-4 achieves a new state-of-the-art accuracy of 92.53%. We make GPT-4 generated visual instruction tuning data, our model and code base publicly available.\\n\\nGenerative Agents: Interactive Simulacra of Human Behavior[\\u200b](#generative-agents-interactive-simulacra-of-human-behavior \"Direct link to Generative Agents: Interactive Simulacra of Human Behavior\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2304.03442v2\\n \\n* **Title:** Generative Agents: Interactive Simulacra of Human Behavior\\n \\n* **Authors:** Joon Sung Park, Joseph C. O\\'Brien, Carrie J. Cai, et al.\\n \\n* **Published Date:** 2023-04-07\\n \\n* **URL:** [http://arxiv.org/abs/2304.03442v2](http://arxiv.org/abs/2304.03442v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [multiagent\\\\_bidding](https://github.com/langchain-ai/langchain/blob/master/cookbook/multiagent_bidding.ipynb)\\n , [generative\\\\_agents\\\\_interactive\\\\_simulacra\\\\_of\\\\_human\\\\_behavior](https://github.com/langchain-ai/langchain/blob/master/cookbook/generative_agents_interactive_simulacra_of_human_behavior.ipynb)\\n \\n\\n**Abstract:** Believable proxies of human behavior can empower interactive applications ranging from immersive environments to rehearsal spaces for interpersonal communication to prototyping tools. In this paper, we introduce generative agents--computational software agents that simulate believable human behavior. Generative agents wake up, cook breakfast, and head to work; artists paint, while authors write; they form opinions, notice each other, and initiate conversations; they remember and reflect on days past as they plan the next day. To enable generative agents, we describe an architecture that extends a large language model to store a complete record of the agent\\'s experiences using natural language, synthesize those memories over time into higher-level reflections, and retrieve them dynamically to plan behavior. We instantiate generative agents to populate an interactive sandbox environment inspired by The Sims, where end users can interact with a small town of twenty five agents using natural language. In an evaluation, these generative agents produce believable individual and emergent social behaviors: for example, starting with only a single user-specified notion that one agent wants to throw a Valentine\\'s Day party, the agents autonomously spread invitations to the party over the next two days, make new acquaintances, ask each other out on dates to the party, and coordinate to show up for the party together at the right time. We demonstrate through ablation that the components of our agent architecture--observation, planning, and reflection--each contribute critically to the believability of agent behavior. By fusing large language models with computational, interactive agents, this work introduces architectural and interaction patterns for enabling believable simulations of human behavior.\\n\\nCAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society[\\u200b](#camel-communicative-agents-for-mind-exploration-of-large-language-model-society \"Direct link to CAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2303.17760v2\\n \\n* **Title:** CAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society\\n \\n* **Authors:** Guohao Li, Hasan Abed Al Kader Hammoud, Hani Itani, et al.\\n \\n* **Published Date:** 2023-03-31\\n \\n* **URL:** [http://arxiv.org/abs/2303.17760v2](http://arxiv.org/abs/2303.17760v2)\\n \\n* **LangChain:**\\n \\n * **Cookbook:** [camel\\\\_role\\\\_playing](https://github.com/langchain-ai/langchain/blob/master/cookbook/camel_role_playing.ipynb)\\n \\n\\n**Abstract:** The rapid advancement of chat-based language models has led to remarkable progress in complex task-solving. However, their success heavily relies on human input to guide the conversation, which can be challenging and time-consuming. This paper explores the potential of building scalable techniques to facilitate autonomous cooperation among communicative agents, and provides insight into their \"cognitive\" processes. To address the challenges of achieving autonomous cooperation, we propose a novel communicative agent framework named role-playing. Our approach involves using inception prompting to guide chat agents toward task completion while maintaining consistency with human intentions. We showcase how role-playing can be used to generate conversational data for studying the behaviors and capabilities of a society of agents, providing a valuable resource for investigating conversational language models. In particular, we conduct comprehensive studies on instruction-following cooperation in multi-agent settings. Our contributions include introducing a novel communicative agent framework, offering a scalable approach for studying the cooperative behaviors and capabilities of multi-agent systems, and open-sourcing our library to support research on communicative agents and beyond: [https://github.com/camel-ai/camel](https://github.com/camel-ai/camel)\\n.\\n\\nHuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face[\\u200b](#hugginggpt-solving-ai-tasks-with-chatgpt-and-its-friends-in-hugging-face \"Direct link to HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face\")\\n\\n---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2303.17580v4\\n \\n* **Title:** HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face\\n \\n* **Authors:** Yongliang Shen, Kaitao Song, Xu Tan, et al.\\n \\n* **Published Date:** 2023-03-30\\n \\n* **URL:** [http://arxiv.org/abs/2303.17580v4](http://arxiv.org/abs/2303.17580v4)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental.autonomous\\\\_agents](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.autonomous_agents)\\n \\n * **Cookbook:** [hugginggpt](https://github.com/langchain-ai/langchain/blob/master/cookbook/hugginggpt.ipynb)\\n \\n\\n**Abstract:** Solving complicated AI tasks with different domains and modalities is a key step toward artificial general intelligence. While there are numerous AI models available for various domains and modalities, they cannot handle complicated AI tasks autonomously. Considering large language models (LLMs) have exhibited exceptional abilities in language understanding, generation, interaction, and reasoning, we advocate that LLMs could act as a controller to manage existing AI models to solve complicated AI tasks, with language serving as a generic interface to empower this. Based on this philosophy, we present HuggingGPT, an LLM-powered agent that leverages LLMs (e.g., ChatGPT) to connect various AI models in machine learning communities (e.g., Hugging Face) to solve AI tasks. Specifically, we use ChatGPT to conduct task planning when receiving a user request, select models according to their function descriptions available in Hugging Face, execute each subtask with the selected AI model, and summarize the response according to the execution results. By leveraging the strong language capability of ChatGPT and abundant AI models in Hugging Face, HuggingGPT can tackle a wide range of sophisticated AI tasks spanning different modalities and domains and achieve impressive results in language, vision, speech, and other challenging tasks, which paves a new way towards the realization of artificial general intelligence.\\n\\nGPT-4 Technical Report[\\u200b](#gpt-4-technical-report \"Direct link to GPT-4 Technical Report\")\\n\\n-------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2303.08774v6\\n \\n* **Title:** GPT-4 Technical Report\\n \\n* **Authors:** OpenAI, Josh Achiam, Steven Adler, et al.\\n \\n* **Published Date:** 2023-03-15\\n \\n* **URL:** [http://arxiv.org/abs/2303.08774v6](http://arxiv.org/abs/2303.08774v6)\\n \\n* **LangChain:**\\n \\n * **Documentation:** [docs/integrations/vectorstores/mongodb\\\\_atlas](https://python.langchain.com/docs/integrations/vectorstores/mongodb_atlas)\\n \\n\\n**Abstract:** We report the development of GPT-4, a large-scale, multimodal model which can accept image and text inputs and produce text outputs. While less capable than humans in many real-world scenarios, GPT-4 exhibits human-level performance on various professional and academic benchmarks, including passing a simulated bar exam with a score around the top 10% of test takers. GPT-4 is a Transformer-based model pre-trained to predict the next token in a document. The post-training alignment process results in improved performance on measures of factuality and adherence to desired behavior. A core component of this project was developing infrastructure and optimization methods that behave predictably across a wide range of scales. This allowed us to accurately predict some aspects of GPT-4\\'s performance based on models trained with no more than 1/1,000th the compute of GPT-4.\\n\\nA Watermark for Large Language Models[\\u200b](#a-watermark-for-large-language-models \"Direct link to A Watermark for Large Language Models\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2301.10226v4\\n \\n* **Title:** A Watermark for Large Language Models\\n \\n* **Authors:** John Kirchenbauer, Jonas Geiping, Yuxin Wen, et al.\\n \\n* **Published Date:** 2023-01-24\\n \\n* **URL:** [http://arxiv.org/abs/2301.10226v4](http://arxiv.org/abs/2301.10226v4)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_community...OCIModelDeploymentTGI](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.oci_data_science_model_deployment_endpoint.OCIModelDeploymentTGI.html#langchain_community.llms.oci_data_science_model_deployment_endpoint.OCIModelDeploymentTGI)\\n , [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference)\\n \\n\\n**Abstract:** Potential harms of large language models can be mitigated by watermarking model output, i.e., embedding signals into generated text that are invisible to humans but algorithmically detectable from a short span of tokens. We propose a watermarking framework for proprietary language models. The watermark can be embedded with negligible impact on text quality, and can be detected using an efficient open-source algorithm without access to the language model API or parameters. The watermark works by selecting a randomized set of \"green\" tokens before a word is generated, and then softly promoting use of green tokens during sampling. We propose a statistical test for detecting the watermark with interpretable p-values, and derive an information-theoretic framework for analyzing the sensitivity of the watermark. We test the watermark using a multi-billion parameter model from the Open Pretrained Transformer (OPT) family, and discuss robustness and security.\\n\\nPrecise Zero-Shot Dense Retrieval without Relevance Labels[\\u200b](#precise-zero-shot-dense-retrieval-without-relevance-labels \"Direct link to Precise Zero-Shot Dense Retrieval without Relevance Labels\")\\n\\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2212.10496v1\\n \\n* **Title:** Precise Zero-Shot Dense Retrieval without Relevance Labels\\n \\n* **Authors:** Luyu Gao, Xueguang Ma, Jimmy Lin, et al.\\n \\n* **Published Date:** 2022-12-20\\n \\n* **URL:** [http://arxiv.org/abs/2212.10496v1](http://arxiv.org/abs/2212.10496v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain...HypotheticalDocumentEmbedder](https://api.python.langchain.com/en/latest/chains/langchain.chains.hyde.base.HypotheticalDocumentEmbedder.html#langchain.chains.hyde.base.HypotheticalDocumentEmbedder)\\n \\n * **Template:** [hyde](https://python.langchain.com/docs/templates/hyde)\\n \\n * **Cookbook:** [hypothetical\\\\_document\\\\_embeddings](https://github.com/langchain-ai/langchain/blob/master/cookbook/hypothetical_document_embeddings.ipynb)\\n \\n\\n**Abstract:** While dense retrieval has been shown effective and efficient across tasks and languages, it remains difficult to create effective fully zero-shot dense retrieval systems when no relevance label is available. In this paper, we recognize the difficulty of zero-shot learning and encoding relevance. Instead, we propose to pivot through Hypothetical Document Embeddings~(HyDE). Given a query, HyDE first zero-shot instructs an instruction-following language model (e.g. InstructGPT) to generate a hypothetical document. The document captures relevance patterns but is unreal and may contain false details. Then, an unsupervised contrastively learned encoder~(e.g. Contriever) encodes the document into an embedding vector. This vector identifies a neighborhood in the corpus embedding space, where similar real documents are retrieved based on vector similarity. This second step ground the generated document to the actual corpus, with the encoder\\'s dense bottleneck filtering out the incorrect details. Our experiments show that HyDE significantly outperforms the state-of-the-art unsupervised dense retriever Contriever and shows strong performance comparable to fine-tuned retrievers, across various tasks (e.g. web search, QA, fact verification) and languages~(e.g. sw, ko, ja).\\n\\nRobust and Explainable Identification of Logical Fallacies in Natural Language Arguments[\\u200b](#robust-and-explainable-identification-of-logical-fallacies-in-natural-language-arguments \"Direct link to Robust and Explainable Identification of Logical Fallacies in Natural Language Arguments\")\\n\\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2212.07425v3\\n \\n* **Title:** Robust and Explainable Identification of Logical Fallacies in Natural Language Arguments\\n \\n* **Authors:** Zhivar Sourati, Vishnu Priya Prasanna Venkatesh, Darshan Deshpande, et al.\\n \\n* **Published Date:** 2022-12-12\\n \\n* **URL:** [http://arxiv.org/abs/2212.07425v3](http://arxiv.org/abs/2212.07425v3)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental.fallacy\\\\_removal](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.fallacy_removal)\\n \\n\\n**Abstract:** The spread of misinformation, propaganda, and flawed argumentation has been amplified in the Internet era. Given the volume of data and the subtlety of identifying violations of argumentation norms, supporting information analytics tasks, like content moderation, with trustworthy methods that can identify logical fallacies is essential. In this paper, we formalize prior theoretical work on logical fallacies into a comprehensive three-stage evaluation framework of detection, coarse-grained, and fine-grained classification. We adapt existing evaluation datasets for each stage of the evaluation. We employ three families of robust and explainable methods based on prototype reasoning, instance-based reasoning, and knowledge injection. The methods combine language models with background knowledge and explainable mechanisms. Moreover, we address data sparsity with strategies for data augmentation and curriculum learning. Our three-stage framework natively consolidates prior datasets and methods from existing tasks, like propaganda detection, serving as an overarching evaluation testbed. We extensively evaluate these methods on our datasets, focusing on their robustness and explainability. Our results provide insight into the strengths and weaknesses of the methods on different components and fallacy classes, indicating that fallacy identification is a challenging task that may require specialized forms of reasoning to capture various classes. We share our open-source code and data on GitHub to support further work on logical fallacy identification.\\n\\nComplementary Explanations for Effective In-Context Learning[\\u200b](#complementary-explanations-for-effective-in-context-learning \"Direct link to Complementary Explanations for Effective In-Context Learning\")\\n\\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2211.13892v2\\n \\n* **Title:** Complementary Explanations for Effective In-Context Learning\\n \\n* **Authors:** Xi Ye, Srinivasan Iyer, Asli Celikyilmaz, et al.\\n \\n* **Published Date:** 2022-11-25\\n \\n* **URL:** [http://arxiv.org/abs/2211.13892v2](http://arxiv.org/abs/2211.13892v2)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_core...MaxMarginalRelevanceExampleSelector](https://api.python.langchain.com/en/latest/example_selectors/langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector.html#langchain_core.example_selectors.semantic_similarity.MaxMarginalRelevanceExampleSelector)\\n \\n\\n**Abstract:** Large language models (LLMs) have exhibited remarkable capabilities in learning from explanations in prompts, but there has been limited understanding of exactly how these explanations function or why they are effective. This work aims to better understand the mechanisms by which explanations are used for in-context learning. We first study the impact of two different factors on the performance of prompts with explanations: the computation trace (the way the solution is decomposed) and the natural language used to express the prompt. By perturbing explanations on three controlled tasks, we show that both factors contribute to the effectiveness of explanations. We further study how to form maximally effective sets of explanations for solving a given test query. We find that LLMs can benefit from the complementarity of the explanation set: diverse reasoning skills shown by different exemplars can lead to better performance. Therefore, we propose a maximal marginal relevance-based exemplar selection approach for constructing exemplar sets that are both relevant as well as complementary, which successfully improves the in-context learning performance across three real-world tasks on multiple LLMs.\\n\\nPAL: Program-aided Language Models[\\u200b](#pal-program-aided-language-models \"Direct link to PAL: Program-aided Language Models\")\\n\\n------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2211.10435v2\\n \\n* **Title:** PAL: Program-aided Language Models\\n \\n* **Authors:** Luyu Gao, Aman Madaan, Shuyan Zhou, et al.\\n \\n* **Published Date:** 2022-11-18\\n \\n* **URL:** [http://arxiv.org/abs/2211.10435v2](http://arxiv.org/abs/2211.10435v2)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental...PALChain](https://api.python.langchain.com/en/latest/pal_chain/langchain_experimental.pal_chain.base.PALChain.html#langchain_experimental.pal_chain.base.PALChain)\\n , [langchain\\\\_experimental.pal\\\\_chain](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.pal_chain)\\n \\n * **Cookbook:** [program\\\\_aided\\\\_language\\\\_model](https://github.com/langchain-ai/langchain/blob/master/cookbook/program_aided_language_model.ipynb)\\n \\n\\n**Abstract:** Large language models (LLMs) have recently demonstrated an impressive ability to perform arithmetic and symbolic reasoning tasks, when provided with a few examples at test time (\"few-shot prompting\"). Much of this success can be attributed to prompting methods such as \"chain-of-thought\\'\\', which employ LLMs for both understanding the problem description by decomposing it into steps, as well as solving each step of the problem. While LLMs seem to be adept at this sort of step-by-step decomposition, LLMs often make logical and arithmetic mistakes in the solution part, even when the problem is decomposed correctly. In this paper, we present Program-Aided Language models (PAL): a novel approach that uses the LLM to read natural language problems and generate programs as the intermediate reasoning steps, but offloads the solution step to a runtime such as a Python interpreter. With PAL, decomposing the natural language problem into runnable steps remains the only learning task for the LLM, while solving is delegated to the interpreter. We demonstrate this synergy between a neural LLM and a symbolic interpreter across 13 mathematical, symbolic, and algorithmic reasoning tasks from BIG-Bench Hard and other benchmarks. In all these natural language reasoning tasks, generating code using an LLM and reasoning using a Python interpreter leads to more accurate results than much larger models. For example, PAL using Codex achieves state-of-the-art few-shot accuracy on the GSM8K benchmark of math word problems, surpassing PaLM-540B which uses chain-of-thought by absolute 15% top-1. Our code and data are publicly available at [http://reasonwithpal.com/](http://reasonwithpal.com/)\\n .\\n\\nReAct: Synergizing Reasoning and Acting in Language Models[\\u200b](#react-synergizing-reasoning-and-acting-in-language-models \"Direct link to ReAct: Synergizing Reasoning and Acting in Language Models\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2210.03629v3\\n \\n* **Title:** ReAct: Synergizing Reasoning and Acting in Language Models\\n \\n* **Authors:** Shunyu Yao, Jeffrey Zhao, Dian Yu, et al.\\n \\n* **Published Date:** 2022-10-06\\n \\n* **URL:** [http://arxiv.org/abs/2210.03629v3](http://arxiv.org/abs/2210.03629v3)\\n \\n* **LangChain:**\\n \\n * **Documentation:** [docs/integrations/providers/cohere](https://python.langchain.com/docs/integrations/providers/cohere)\\n , [docs/integrations/chat/huggingface](https://python.langchain.com/docs/integrations/chat/huggingface)\\n , [docs/integrations/tools/ionic\\\\_shopping](https://python.langchain.com/docs/integrations/tools/ionic_shopping)\\n \\n * **API Reference:** [langchain...create\\\\_react\\\\_agent](https://api.python.langchain.com/en/latest/agents/langchain.agents.react.agent.create_react_agent.html#langchain.agents.react.agent.create_react_agent)\\n , [langchain...TrajectoryEvalChain](https://api.python.langchain.com/en/latest/evaluation/langchain.evaluation.agents.trajectory_eval_chain.TrajectoryEvalChain.html#langchain.evaluation.agents.trajectory_eval_chain.TrajectoryEvalChain)\\n \\n\\n**Abstract:** While large language models (LLMs) have demonstrated impressive capabilities across tasks in language understanding and interactive decision making, their abilities for reasoning (e.g. chain-of-thought prompting) and acting (e.g. action plan generation) have primarily been studied as separate topics. In this paper, we explore the use of LLMs to generate both reasoning traces and task-specific actions in an interleaved manner, allowing for greater synergy between the two: reasoning traces help the model induce, track, and update action plans as well as handle exceptions, while actions allow it to interface with external sources, such as knowledge bases or environments, to gather additional information. We apply our approach, named ReAct, to a diverse set of language and decision making tasks and demonstrate its effectiveness over state-of-the-art baselines, as well as improved human interpretability and trustworthiness over methods without reasoning or acting components. Concretely, on question answering (HotpotQA) and fact verification (Fever), ReAct overcomes issues of hallucination and error propagation prevalent in chain-of-thought reasoning by interacting with a simple Wikipedia API, and generates human-like task-solving trajectories that are more interpretable than baselines without reasoning traces. On two interactive decision making benchmarks (ALFWorld and WebShop), ReAct outperforms imitation and reinforcement learning methods by an absolute success rate of 34% and 10% respectively, while being prompted with only one or two in-context examples. Project site with code: [https://react-lm.github.io](https://react-lm.github.io)\\n\\nDeep Lake: a Lakehouse for Deep Learning[\\u200b](#deep-lake-a-lakehouse-for-deep-learning \"Direct link to Deep Lake: a Lakehouse for Deep Learning\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2209.10785v2\\n \\n* **Title:** Deep Lake: a Lakehouse for Deep Learning\\n \\n* **Authors:** Sasun Hambardzumyan, Abhinav Tuli, Levon Ghukasyan, et al.\\n \\n* **Published Date:** 2022-09-22\\n \\n* **URL:** [http://arxiv.org/abs/2209.10785v2](http://arxiv.org/abs/2209.10785v2)\\n \\n* **LangChain:**\\n \\n * **Documentation:** [docs/integrations/providers/activeloop\\\\_deeplake](https://python.langchain.com/docs/integrations/providers/activeloop_deeplake)\\n \\n\\n**Abstract:** Traditional data lakes provide critical data infrastructure for analytical workloads by enabling time travel, running SQL queries, ingesting data with ACID transactions, and visualizing petabyte-scale datasets on cloud storage. They allow organizations to break down data silos, unlock data-driven decision-making, improve operational efficiency, and reduce costs. However, as deep learning usage increases, traditional data lakes are not well-designed for applications such as natural language processing (NLP), audio processing, computer vision, and applications involving non-tabular datasets. This paper presents Deep Lake, an open-source lakehouse for deep learning applications developed at Activeloop. Deep Lake maintains the benefits of a vanilla data lake with one key difference: it stores complex data, such as images, videos, annotations, as well as tabular data, in the form of tensors and rapidly streams the data over the network to (a) Tensor Query Language, (b) in-browser visualization engine, or (c) deep learning frameworks without sacrificing GPU utilization. Datasets stored in Deep Lake can be accessed from PyTorch, TensorFlow, JAX, and integrate with numerous MLOps tools.\\n\\nBitext Mining Using Distilled Sentence Representations for Low-Resource Languages[\\u200b](#bitext-mining-using-distilled-sentence-representations-for-low-resource-languages \"Direct link to Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2205.12654v1\\n \\n* **Title:** Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages\\n \\n* **Authors:** Kevin Heffernan, Onur Çelebi, Holger Schwenk\\n \\n* **Published Date:** 2022-05-25\\n \\n* **URL:** [http://arxiv.org/abs/2205.12654v1](http://arxiv.org/abs/2205.12654v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...LaserEmbeddings](https://api.python.langchain.com/en/latest/embeddings/langchain_community.embeddings.laser.LaserEmbeddings.html#langchain_community.embeddings.laser.LaserEmbeddings)\\n \\n\\n**Abstract:** Scaling multilingual representation learning beyond the hundred most frequent languages is challenging, in particular to cover the long tail of low-resource languages. A promising approach has been to train one-for-all multilingual models capable of cross-lingual transfer, but these models often suffer from insufficient capacity and interference between unrelated languages. Instead, we move away from this approach and focus on training multiple language (family) specific representations, but most prominently enable all languages to still be encoded in the same representational space. To achieve this, we focus on teacher-student training, allowing all encoders to be mutually compatible for bitext mining, and enabling fast learning of new languages. We introduce a new teacher-student training scheme which combines supervised and self-supervised training, allowing encoders to take advantage of monolingual training data, which is valuable in the low-resource setting. Our approach significantly outperforms the original LASER encoder. We study very low-resource languages and handle 50 African languages, many of which are not covered by any other model. For these languages, we train sentence encoders, mine bitexts, and validate the bitexts by training NMT systems.\\n\\nEvaluating the Text-to-SQL Capabilities of Large Language Models[\\u200b](#evaluating-the-text-to-sql-capabilities-of-large-language-models \"Direct link to Evaluating the Text-to-SQL Capabilities of Large Language Models\")\\n\\n-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2204.00498v1\\n \\n* **Title:** Evaluating the Text-to-SQL Capabilities of Large Language Models\\n \\n* **Authors:** Nitarshan Rajkumar, Raymond Li, Dzmitry Bahdanau\\n \\n* **Published Date:** 2022-03-15\\n \\n* **URL:** [http://arxiv.org/abs/2204.00498v1](http://arxiv.org/abs/2204.00498v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...SparkSQL](https://api.python.langchain.com/en/latest/utilities/langchain_community.utilities.spark_sql.SparkSQL.html#langchain_community.utilities.spark_sql.SparkSQL)\\n , [langchain\\\\_community...SQLDatabase](https://api.python.langchain.com/en/latest/utilities/langchain_community.utilities.sql_database.SQLDatabase.html#langchain_community.utilities.sql_database.SQLDatabase)\\n \\n\\n**Abstract:** We perform an empirical evaluation of Text-to-SQL capabilities of the Codex language model. We find that, without any finetuning, Codex is a strong baseline on the Spider benchmark; we also analyze the failure modes of Codex in this setting. Furthermore, we demonstrate on the GeoQuery and Scholar benchmarks that a small number of in-domain examples provided in the prompt enables Codex to perform better than state-of-the-art models finetuned on such few-shot examples.\\n\\nLocally Typical Sampling[\\u200b](#locally-typical-sampling \"Direct link to Locally Typical Sampling\")\\n\\n-------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2202.00666v5\\n \\n* **Title:** Locally Typical Sampling\\n \\n* **Authors:** Clara Meister, Tiago Pimentel, Gian Wiher, et al.\\n \\n* **Published Date:** 2022-02-01\\n \\n* **URL:** [http://arxiv.org/abs/2202.00666v5](http://arxiv.org/abs/2202.00666v5)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference)\\n \\n\\n**Abstract:** Today\\'s probabilistic language generators fall short when it comes to producing coherent and fluent text despite the fact that the underlying models perform well under standard metrics, e.g., perplexity. This discrepancy has puzzled the language generation community for the last few years. In this work, we posit that the abstraction of natural language generation as a discrete stochastic process--which allows for an information-theoretic analysis--can provide new insights into the behavior of probabilistic language generators, e.g., why high-probability texts can be dull or repetitive. Humans use language as a means of communicating information, aiming to do so in a simultaneously efficient and error-minimizing manner; in fact, psycholinguistics research suggests humans choose each word in a string with this subconscious goal in mind. We formally define the set of strings that meet this criterion: those for which each word has an information content close to the expected information content, i.e., the conditional entropy of our model. We then propose a simple and efficient procedure for enforcing this criterion when generating from probabilistic models, which we call locally typical sampling. Automatic and human evaluations show that, in comparison to nucleus and top-k sampling, locally typical sampling offers competitive performance (in both abstractive summarization and story generation) in terms of quality while consistently reducing degenerate repetitions.\\n\\nLearning Transferable Visual Models From Natural Language Supervision[\\u200b](#learning-transferable-visual-models-from-natural-language-supervision \"Direct link to Learning Transferable Visual Models From Natural Language Supervision\")\\n\\n----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 2103.00020v1\\n \\n* **Title:** Learning Transferable Visual Models From Natural Language Supervision\\n \\n* **Authors:** Alec Radford, Jong Wook Kim, Chris Hallacy, et al.\\n \\n* **Published Date:** 2021-02-26\\n \\n* **URL:** [http://arxiv.org/abs/2103.00020v1](http://arxiv.org/abs/2103.00020v1)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_experimental.open\\\\_clip](https://api.python.langchain.com/en/latest/experimental_api_reference.html#module-langchain_experimental.open_clip)\\n \\n\\n**Abstract:** State-of-the-art computer vision systems are trained to predict a fixed set of predetermined object categories. This restricted form of supervision limits their generality and usability since additional labeled data is needed to specify any other visual concept. Learning directly from raw text about images is a promising alternative which leverages a much broader source of supervision. We demonstrate that the simple pre-training task of predicting which caption goes with which image is an efficient and scalable way to learn SOTA image representations from scratch on a dataset of 400 million (image, text) pairs collected from the internet. After pre-training, natural language is used to reference learned visual concepts (or describe new ones) enabling zero-shot transfer of the model to downstream tasks. We study the performance of this approach by benchmarking on over 30 different existing computer vision datasets, spanning tasks such as OCR, action recognition in videos, geo-localization, and many types of fine-grained object classification. The model transfers non-trivially to most tasks and is often competitive with a fully supervised baseline without the need for any dataset specific training. For instance, we match the accuracy of the original ResNet-50 on ImageNet zero-shot without needing to use any of the 1.28 million training examples it was trained on. We release our code and pre-trained model weights at [https://github.com/OpenAI/CLIP](https://github.com/OpenAI/CLIP)\\n.\\n\\nCTRL: A Conditional Transformer Language Model for Controllable Generation[\\u200b](#ctrl-a-conditional-transformer-language-model-for-controllable-generation \"Direct link to CTRL: A Conditional Transformer Language Model for Controllable Generation\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 1909.05858v2\\n \\n* **Title:** CTRL: A Conditional Transformer Language Model for Controllable Generation\\n \\n* **Authors:** Nitish Shirish Keskar, Bryan McCann, Lav R. Varshney, et al.\\n \\n* **Published Date:** 2019-09-11\\n \\n* **URL:** [http://arxiv.org/abs/1909.05858v2](http://arxiv.org/abs/1909.05858v2)\\n \\n* **LangChain:**\\n \\n * **API Reference:** [langchain\\\\_community...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_huggingface...HuggingFaceEndpoint](https://api.python.langchain.com/en/latest/llms/langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint.html#langchain_huggingface.llms.huggingface_endpoint.HuggingFaceEndpoint)\\n , [langchain\\\\_community...HuggingFaceTextGenInference](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference.html#langchain_community.llms.huggingface_text_gen_inference.HuggingFaceTextGenInference)\\n \\n\\n**Abstract:** Large-scale language models show promising text generation capabilities, but users cannot easily control particular aspects of the generated text. We release CTRL, a 1.63 billion-parameter conditional transformer language model, trained to condition on control codes that govern style, content, and task-specific behavior. Control codes were derived from structure that naturally co-occurs with raw text, preserving the advantages of unsupervised learning while providing more explicit control over text generation. These codes also allow CTRL to predict which parts of the training data are most likely given a sequence. This provides a potential method for analyzing large amounts of data via model-based source attribution. We have released multiple full-sized, pretrained versions of CTRL at [https://github.com/salesforce/ctrl](https://github.com/salesforce/ctrl)\\n.\\n\\nSentence-BERT: Sentence Embeddings using Siamese BERT-Networks[\\u200b](#sentence-bert-sentence-embeddings-using-siamese-bert-networks \"Direct link to Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks\")\\n\\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\\n\\n* **arXiv id:** 1908.10084v1\\n \\n* **Title:** Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks\\n \\n* **Authors:** Nils Reimers, Iryna Gurevych\\n \\n* **Published Date:** 2019-08-27\\n \\n* **URL:** [http://arxiv.org/abs/1908.10084v1](http://arxiv.org/abs/1908.10084v1)\\n \\n* **LangChain:**\\n \\n * **Documentation:** [docs/integrations/text\\\\_embedding/sentence\\\\_transformers](https://python.langchain.com/docs/integrations/text_embedding/sentence_transformers)\\n \\n\\n**Abstract:** BERT (Devlin et al., 2018) and RoBERTa (Liu et al., 2019) has set a new state-of-the-art performance on sentence-pair regression tasks like semantic textual similarity (STS). However, it requires that both sentences are fed into the network, which causes a massive computational overhead: Finding the most similar pair in a collection of 10,000 sentences requires about 50 million inference computations (~65 hours) with BERT. The construction of BERT makes it unsuitable for semantic similarity search as well as for unsupervised tasks like clustering. In this publication, we present Sentence-BERT (SBERT), a modification of the pretrained BERT network that use siamese and triplet network structures to derive semantically meaningful sentence embeddings that can be compared using cosine-similarity. This reduces the effort for finding the most similar pair from 65 hours with BERT / RoBERTa to about 5 seconds with SBERT, while maintaining the accuracy from BERT. We evaluate SBERT and SRoBERTa on common STS tasks and transfer learning tasks, where it outperforms other state-of-the-art sentence embeddings methods.\\n\\n[Edit this page](https://github.com/langchain-ai/langchain/edit/master/docs/docs/additional_resources/arxiv_references.mdx)\\n\\n* * *\\n\\n#### Was this page helpful?\\n\\n \\n\\n#### You can also leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchain/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E)\\n.\\n\\n* [Summary](#summary)\\n \\n* [Self-Discover: Large Language Models Self-Compose Reasoning Structures](#self-discover-large-language-models-self-compose-reasoning-structures)\\n \\n* [RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval](#raptor-recursive-abstractive-processing-for-tree-organized-retrieval)\\n \\n* [Corrective Retrieval Augmented Generation](#corrective-retrieval-augmented-generation)\\n \\n* [Mixtral of Experts](#mixtral-of-experts)\\n \\n* [Dense X Retrieval: What Retrieval Granularity Should We Use?](#dense-x-retrieval-what-retrieval-granularity-should-we-use)\\n \\n* [Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models](#chain-of-note-enhancing-robustness-in-retrieval-augmented-language-models)\\n \\n* [Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection](#self-rag-learning-to-retrieve-generate-and-critique-through-self-reflection)\\n \\n* [Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models](#take-a-step-back-evoking-reasoning-via-abstraction-in-large-language-models)\\n \\n* [Llama 2: Open Foundation and Fine-Tuned Chat Models](#llama-2-open-foundation-and-fine-tuned-chat-models)\\n \\n* [Query Rewriting for Retrieval-Augmented Large Language Models](#query-rewriting-for-retrieval-augmented-large-language-models)\\n \\n* [Large Language Model Guided Tree-of-Thought](#large-language-model-guided-tree-of-thought)\\n \\n* [Plan-and-Solve Prompting: Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models](#plan-and-solve-prompting-improving-zero-shot-chain-of-thought-reasoning-by-large-language-models)\\n \\n* [Visual Instruction Tuning](#visual-instruction-tuning)\\n \\n* [Generative Agents: Interactive Simulacra of Human Behavior](#generative-agents-interactive-simulacra-of-human-behavior)\\n \\n* [CAMEL: Communicative Agents for \"Mind\" Exploration of Large Language Model Society](#camel-communicative-agents-for-mind-exploration-of-large-language-model-society)\\n \\n* [HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face](#hugginggpt-solving-ai-tasks-with-chatgpt-and-its-friends-in-hugging-face)\\n \\n* [GPT-4 Technical Report](#gpt-4-technical-report)\\n \\n* [A Watermark for Large Language Models](#a-watermark-for-large-language-models)\\n \\n* [Precise Zero-Shot Dense Retrieval without Relevance Labels](#precise-zero-shot-dense-retrieval-without-relevance-labels)\\n \\n* [Robust and Explainable Identification of Logical Fallacies in Natural Language Arguments](#robust-and-explainable-identification-of-logical-fallacies-in-natural-language-arguments)\\n \\n* [Complementary Explanations for Effective In-Context Learning](#complementary-explanations-for-effective-in-context-learning)\\n \\n* [PAL: Program-aided Language Models](#pal-program-aided-language-models)\\n \\n* [ReAct: Synergizing Reasoning and Acting in Language Models](#react-synergizing-reasoning-and-acting-in-language-models)\\n \\n* [Deep Lake: a Lakehouse for Deep Learning](#deep-lake-a-lakehouse-for-deep-learning)\\n \\n* [Bitext Mining Using Distilled Sentence Representations for Low-Resource Languages](#bitext-mining-using-distilled-sentence-representations-for-low-resource-languages)\\n \\n* [Evaluating the Text-to-SQL Capabilities of Large Language Models](#evaluating-the-text-to-sql-capabilities-of-large-language-models)\\n \\n* [Locally Typical Sampling](#locally-typical-sampling)\\n \\n* [Learning Transferable Visual Models From Natural Language Supervision](#learning-transferable-visual-models-from-natural-language-supervision)\\n \\n* [CTRL: A Conditional Transformer Language Model for Controllable Generation](#ctrl-a-conditional-transformer-language-model-for-controllable-generation)\\n \\n* [Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks](#sentence-bert-sentence-embeddings-using-siamese-bert-networks)\\n \\n\\nCommunity\\n\\n* [Discord](https://discord.gg/cU2adEyC7w)\\n \\n* [Twitter](https://twitter.com/LangChainAI)\\n \\n\\nGitHub\\n\\n* [Organization](https://github.com/langchain-ai)\\n \\n* [Python](https://github.com/langchain-ai/langchain)\\n \\n* [JS/TS](https://github.com/langchain-ai/langchainjs)\\n \\n\\nMore\\n\\n* [Homepage](https://langchain.com)\\n \\n* [Blog](https://blog.langchain.dev)\\n \\n* [YouTube](https://www.youtube.com/@LangChain)\\n \\n\\nCopyright © 2024 LangChain, Inc.', 'metadata': {'ogLocaleAlternate': [], 'sourceURL': 'https://python.langchain.com/v0.2/docs/additional_resources/arxiv_references/', 'pageStatusCode': 200}}, {'markdown': '[Skip to main content](#__docusaurus_skipToContent_fallback)\\n\\nLangChain 0.2 is out! Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchain/discussions/21716)\\n. You can view the v0.1 docs [here](/v0.1/docs/get_started/introduction/)\\n.\\n\\n[![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark.png)![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark-dark.png)](/v0.2/)\\n[Integrations](/v0.2/docs/integrations/platforms/)\\n[API Reference](https://api.python.langchain.com)\\n\\n[More](#)\\n\\n* [People](/v0.2/docs/people/)\\n \\n* [Contributing](/v0.2/docs/contributing/)\\n \\n* [Templates](/v0.2/docs/templates/)\\n \\n* [Cookbooks](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)\\n \\n* [3rd party tutorials](/v0.2/docs/additional_resources/tutorials/)\\n \\n* [YouTube](/v0.2/docs/additional_resources/youtube/)\\n \\n* [arXiv](/v0.2/docs/additional_resources/arxiv_references/)\\n \\n\\n[v0.2](#)\\n\\n* [v0.2](/v0.2/docs/introduction/)\\n \\n* [v0.1](https://python.langchain.com/v0.1/docs/get_started/introduction)\\n \\n\\n[🦜️🔗](#)\\n\\n* [LangSmith](https://smith.langchain.com)\\n \\n* [LangSmith Docs](https://docs.smith.langchain.com/)\\n \\n* [LangServe GitHub](https://github.com/langchain-ai/langserve)\\n \\n* [Templates GitHub](https://github.com/langchain-ai/langchain/tree/master/templates)\\n \\n* [Templates Hub](https://templates.langchain.com)\\n \\n* [LangChain Hub](https://smith.langchain.com/hub)\\n \\n* [JS/TS Docs](https://js.langchain.com)\\n \\n\\n[💬](https://chat.langchain.com)\\n[](https://github.com/langchain-ai/langchain)\\n\\nSearch\\n\\nDependents\\n==========\\n\\nDependents stats for `langchain-ai/langchain`\\n\\n[![](https://img.shields.io/static/v1?label=Used%20by&message=41717&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents)\\n [![](https://img.shields.io/static/v1?label=Used%20by%20(public)](https://github.com/langchain-ai/langchain/network/dependents)\\n [![](https://img.shields.io/static/v1?label=Used%20by%20(private)](https://github.com/langchain-ai/langchain/network/dependents)\\n\\n\\\\[update: `2023-12-08`; only dependent repositories with Stars > 100\\\\]\\n\\n| Repository | Stars |\\n| --- | --- |\\n| [AntonOsika/gpt-engineer](https://github.com/AntonOsika/gpt-engineer) | 46514 |\\n| [imartinez/privateGPT](https://github.com/imartinez/privateGPT) | 44439 |\\n| [LAION-AI/Open-Assistant](https://github.com/LAION-AI/Open-Assistant) | 35906 |\\n| [hpcaitech/ColossalAI](https://github.com/hpcaitech/ColossalAI) | 35528 |\\n| [moymix/TaskMatrix](https://github.com/moymix/TaskMatrix) | 34342 |\\n| [geekan/MetaGPT](https://github.com/geekan/MetaGPT) | 31126 |\\n| [streamlit/streamlit](https://github.com/streamlit/streamlit) | 28911 |\\n| [reworkd/AgentGPT](https://github.com/reworkd/AgentGPT) | 27833 |\\n| [StanGirard/quivr](https://github.com/StanGirard/quivr) | 26032 |\\n| [OpenBB-finance/OpenBBTerminal](https://github.com/OpenBB-finance/OpenBBTerminal) | 24946 |\\n| [run-llama/llama\\\\_index](https://github.com/run-llama/llama_index) | 24859 |\\n| [jmorganca/ollama](https://github.com/jmorganca/ollama) | 20849 |\\n| [openai/chatgpt-retrieval-plugin](https://github.com/openai/chatgpt-retrieval-plugin) | 20249 |\\n| [chatchat-space/Langchain-Chatchat](https://github.com/chatchat-space/Langchain-Chatchat) | 19305 |\\n| [mindsdb/mindsdb](https://github.com/mindsdb/mindsdb) | 19172 |\\n| [PromtEngineer/localGPT](https://github.com/PromtEngineer/localGPT) | 17528 |\\n| [cube-js/cube](https://github.com/cube-js/cube) | 16575 |\\n| [mlflow/mlflow](https://github.com/mlflow/mlflow) | 16000 |\\n| [mudler/LocalAI](https://github.com/mudler/LocalAI) | 14067 |\\n| [logspace-ai/langflow](https://github.com/logspace-ai/langflow) | 13679 |\\n| [GaiZhenbiao/ChuanhuChatGPT](https://github.com/GaiZhenbiao/ChuanhuChatGPT) | 13648 |\\n| [arc53/DocsGPT](https://github.com/arc53/DocsGPT) | 13423 |\\n| [openai/evals](https://github.com/openai/evals) | 12649 |\\n| [airbytehq/airbyte](https://github.com/airbytehq/airbyte) | 12460 |\\n| [langgenius/dify](https://github.com/langgenius/dify) | 11859 |\\n| [databrickslabs/dolly](https://github.com/databrickslabs/dolly) | 10672 |\\n| [AIGC-Audio/AudioGPT](https://github.com/AIGC-Audio/AudioGPT) | 9437 |\\n| [langchain-ai/langchainjs](https://github.com/langchain-ai/langchainjs) | 9227 |\\n| [gventuri/pandas-ai](https://github.com/gventuri/pandas-ai) | 9203 |\\n| [aws/amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) | 9079 |\\n| [h2oai/h2ogpt](https://github.com/h2oai/h2ogpt) | 8945 |\\n| [PipedreamHQ/pipedream](https://github.com/PipedreamHQ/pipedream) | 7550 |\\n| [bentoml/OpenLLM](https://github.com/bentoml/OpenLLM) | 6957 |\\n| [THUDM/ChatGLM3](https://github.com/THUDM/ChatGLM3) | 6801 |\\n| [microsoft/promptflow](https://github.com/microsoft/promptflow) | 6776 |\\n| [cpacker/MemGPT](https://github.com/cpacker/MemGPT) | 6642 |\\n| [joshpxyne/gpt-migrate](https://github.com/joshpxyne/gpt-migrate) | 6482 |\\n| [zauberzeug/nicegui](https://github.com/zauberzeug/nicegui) | 6037 |\\n| [embedchain/embedchain](https://github.com/embedchain/embedchain) | 6023 |\\n| [mage-ai/mage-ai](https://github.com/mage-ai/mage-ai) | 6019 |\\n| [assafelovic/gpt-researcher](https://github.com/assafelovic/gpt-researcher) | 5936 |\\n| [sweepai/sweep](https://github.com/sweepai/sweep) | 5855 |\\n| [wenda-LLM/wenda](https://github.com/wenda-LLM/wenda) | 5766 |\\n| [zilliztech/GPTCache](https://github.com/zilliztech/GPTCache) | 5710 |\\n| [pdm-project/pdm](https://github.com/pdm-project/pdm) | 5665 |\\n| [GreyDGL/PentestGPT](https://github.com/GreyDGL/PentestGPT) | 5568 |\\n| [gkamradt/langchain-tutorials](https://github.com/gkamradt/langchain-tutorials) | 5507 |\\n| [Shaunwei/RealChar](https://github.com/Shaunwei/RealChar) | 5501 |\\n| [facebookresearch/llama-recipes](https://github.com/facebookresearch/llama-recipes) | 5477 |\\n| [serge-chat/serge](https://github.com/serge-chat/serge) | 5221 |\\n| [run-llama/rags](https://github.com/run-llama/rags) | 4916 |\\n| [openchatai/OpenChat](https://github.com/openchatai/OpenChat) | 4870 |\\n| [danswer-ai/danswer](https://github.com/danswer-ai/danswer) | 4774 |\\n| [langchain-ai/opengpts](https://github.com/langchain-ai/opengpts) | 4709 |\\n| [postgresml/postgresml](https://github.com/postgresml/postgresml) | 4639 |\\n| [MineDojo/Voyager](https://github.com/MineDojo/Voyager) | 4582 |\\n| [intel-analytics/BigDL](https://github.com/intel-analytics/BigDL) | 4581 |\\n| [yihong0618/xiaogpt](https://github.com/yihong0618/xiaogpt) | 4359 |\\n| [RayVentura/ShortGPT](https://github.com/RayVentura/ShortGPT) | 4357 |\\n| [Azure-Samples/azure-search-openai-demo](https://github.com/Azure-Samples/azure-search-openai-demo) | 4317 |\\n| [madawei2699/myGPTReader](https://github.com/madawei2699/myGPTReader) | 4289 |\\n| [apache/nifi](https://github.com/apache/nifi) | 4098 |\\n| [langchain-ai/chat-langchain](https://github.com/langchain-ai/chat-langchain) | 4091 |\\n| [aiwaves-cn/agents](https://github.com/aiwaves-cn/agents) | 4073 |\\n| [krishnaik06/The-Grand-Complete-Data-Science-Materials](https://github.com/krishnaik06/The-Grand-Complete-Data-Science-Materials) | 4065 |\\n| [khoj-ai/khoj](https://github.com/khoj-ai/khoj) | 4016 |\\n| [Azure/azure-sdk-for-python](https://github.com/Azure/azure-sdk-for-python) | 3941 |\\n| [PrefectHQ/marvin](https://github.com/PrefectHQ/marvin) | 3915 |\\n| [OpenBMB/ToolBench](https://github.com/OpenBMB/ToolBench) | 3799 |\\n| [marqo-ai/marqo](https://github.com/marqo-ai/marqo) | 3771 |\\n| [kyegomez/tree-of-thoughts](https://github.com/kyegomez/tree-of-thoughts) | 3688 |\\n| [Unstructured-IO/unstructured](https://github.com/Unstructured-IO/unstructured) | 3543 |\\n| [llm-workflow-engine/llm-workflow-engine](https://github.com/llm-workflow-engine/llm-workflow-engine) | 3515 |\\n| [shroominic/codeinterpreter-api](https://github.com/shroominic/codeinterpreter-api) | 3425 |\\n| [openchatai/OpenCopilot](https://github.com/openchatai/OpenCopilot) | 3418 |\\n| [josStorer/RWKV-Runner](https://github.com/josStorer/RWKV-Runner) | 3297 |\\n| [whitead/paper-qa](https://github.com/whitead/paper-qa) | 3280 |\\n| [homanp/superagent](https://github.com/homanp/superagent) | 3258 |\\n| [ParisNeo/lollms-webui](https://github.com/ParisNeo/lollms-webui) | 3199 |\\n| [OpenBMB/AgentVerse](https://github.com/OpenBMB/AgentVerse) | 3099 |\\n| [project-baize/baize-chatbot](https://github.com/project-baize/baize-chatbot) | 3090 |\\n| [OpenGVLab/InternGPT](https://github.com/OpenGVLab/InternGPT) | 2989 |\\n| [xlang-ai/OpenAgents](https://github.com/xlang-ai/OpenAgents) | 2825 |\\n| [dataelement/bisheng](https://github.com/dataelement/bisheng) | 2797 |\\n| [Mintplex-Labs/anything-llm](https://github.com/Mintplex-Labs/anything-llm) | 2784 |\\n| [OpenBMB/BMTools](https://github.com/OpenBMB/BMTools) | 2734 |\\n| [run-llama/llama-hub](https://github.com/run-llama/llama-hub) | 2721 |\\n| [SamurAIGPT/EmbedAI](https://github.com/SamurAIGPT/EmbedAI) | 2647 |\\n| [NVIDIA/NeMo-Guardrails](https://github.com/NVIDIA/NeMo-Guardrails) | 2637 |\\n| [X-D-Lab/LangChain-ChatGLM-Webui](https://github.com/X-D-Lab/LangChain-ChatGLM-Webui) | 2532 |\\n| [GerevAI/gerev](https://github.com/GerevAI/gerev) | 2517 |\\n| [keephq/keep](https://github.com/keephq/keep) | 2448 |\\n| [yanqiangmiffy/Chinese-LangChain](https://github.com/yanqiangmiffy/Chinese-LangChain) | 2397 |\\n| [OpenGVLab/Ask-Anything](https://github.com/OpenGVLab/Ask-Anything) | 2324 |\\n| [IntelligenzaArtificiale/Free-Auto-GPT](https://github.com/IntelligenzaArtificiale/Free-Auto-GPT) | 2241 |\\n| [YiVal/YiVal](https://github.com/YiVal/YiVal) | 2232 |\\n| [jupyterlab/jupyter-ai](https://github.com/jupyterlab/jupyter-ai) | 2189 |\\n| [Farama-Foundation/PettingZoo](https://github.com/Farama-Foundation/PettingZoo) | 2136 |\\n| [microsoft/TaskWeaver](https://github.com/microsoft/TaskWeaver) | 2126 |\\n| [hwchase17/notion-qa](https://github.com/hwchase17/notion-qa) | 2083 |\\n| [FlagOpen/FlagEmbedding](https://github.com/FlagOpen/FlagEmbedding) | 2053 |\\n| [paulpierre/RasaGPT](https://github.com/paulpierre/RasaGPT) | 1999 |\\n| [hegelai/prompttools](https://github.com/hegelai/prompttools) | 1984 |\\n| [mckinsey/vizro](https://github.com/mckinsey/vizro) | 1951 |\\n| [vocodedev/vocode-python](https://github.com/vocodedev/vocode-python) | 1868 |\\n| [dot-agent/openAMS](https://github.com/dot-agent/openAMS) | 1796 |\\n| [explodinggradients/ragas](https://github.com/explodinggradients/ragas) | 1766 |\\n| [AI-Citizen/SolidGPT](https://github.com/AI-Citizen/SolidGPT) | 1761 |\\n| [Kav-K/GPTDiscord](https://github.com/Kav-K/GPTDiscord) | 1696 |\\n| [run-llama/sec-insights](https://github.com/run-llama/sec-insights) | 1654 |\\n| [avinashkranjan/Amazing-Python-Scripts](https://github.com/avinashkranjan/Amazing-Python-Scripts) | 1635 |\\n| [microsoft/WhatTheHack](https://github.com/microsoft/WhatTheHack) | 1629 |\\n| [noahshinn/reflexion](https://github.com/noahshinn/reflexion) | 1625 |\\n| [psychic-api/psychic](https://github.com/psychic-api/psychic) | 1618 |\\n| [Forethought-Technologies/AutoChain](https://github.com/Forethought-Technologies/AutoChain) | 1611 |\\n| [pinterest/querybook](https://github.com/pinterest/querybook) | 1586 |\\n| [refuel-ai/autolabel](https://github.com/refuel-ai/autolabel) | 1553 |\\n| [jina-ai/langchain-serve](https://github.com/jina-ai/langchain-serve) | 1537 |\\n| [jina-ai/dev-gpt](https://github.com/jina-ai/dev-gpt) | 1522 |\\n| [agiresearch/OpenAGI](https://github.com/agiresearch/OpenAGI) | 1493 |\\n| [ttengwang/Caption-Anything](https://github.com/ttengwang/Caption-Anything) | 1484 |\\n| [greshake/llm-security](https://github.com/greshake/llm-security) | 1483 |\\n| [promptfoo/promptfoo](https://github.com/promptfoo/promptfoo) | 1480 |\\n| [milvus-io/bootcamp](https://github.com/milvus-io/bootcamp) | 1477 |\\n| [richardyc/Chrome-GPT](https://github.com/richardyc/Chrome-GPT) | 1475 |\\n| [melih-unsal/DemoGPT](https://github.com/melih-unsal/DemoGPT) | 1428 |\\n| [YORG-AI/Open-Assistant](https://github.com/YORG-AI/Open-Assistant) | 1419 |\\n| [101dotxyz/GPTeam](https://github.com/101dotxyz/GPTeam) | 1416 |\\n| [jina-ai/thinkgpt](https://github.com/jina-ai/thinkgpt) | 1408 |\\n| [mmz-001/knowledge\\\\_gpt](https://github.com/mmz-001/knowledge_gpt) | 1398 |\\n| [intel/intel-extension-for-transformers](https://github.com/intel/intel-extension-for-transformers) | 1387 |\\n| [Azure/azureml-examples](https://github.com/Azure/azureml-examples) | 1385 |\\n| [lunasec-io/lunasec](https://github.com/lunasec-io/lunasec) | 1367 |\\n| [eyurtsev/kor](https://github.com/eyurtsev/kor) | 1355 |\\n| [xusenlinzy/api-for-open-llm](https://github.com/xusenlinzy/api-for-open-llm) | 1325 |\\n| [griptape-ai/griptape](https://github.com/griptape-ai/griptape) | 1323 |\\n| [SuperDuperDB/superduperdb](https://github.com/SuperDuperDB/superduperdb) | 1290 |\\n| [cofactoryai/textbase](https://github.com/cofactoryai/textbase) | 1284 |\\n| [psychic-api/rag-stack](https://github.com/psychic-api/rag-stack) | 1260 |\\n| [filip-michalsky/SalesGPT](https://github.com/filip-michalsky/SalesGPT) | 1250 |\\n| [nod-ai/SHARK](https://github.com/nod-ai/SHARK) | 1237 |\\n| [pluralsh/plural](https://github.com/pluralsh/plural) | 1234 |\\n| [cheshire-cat-ai/core](https://github.com/cheshire-cat-ai/core) | 1194 |\\n| [LC1332/Chat-Haruhi-Suzumiya](https://github.com/LC1332/Chat-Haruhi-Suzumiya) | 1184 |\\n| [poe-platform/server-bot-quick-start](https://github.com/poe-platform/server-bot-quick-start) | 1182 |\\n| [microsoft/X-Decoder](https://github.com/microsoft/X-Decoder) | 1180 |\\n| [juncongmoo/chatllama](https://github.com/juncongmoo/chatllama) | 1171 |\\n| [visual-openllm/visual-openllm](https://github.com/visual-openllm/visual-openllm) | 1156 |\\n| [alejandro-ao/ask-multiple-pdfs](https://github.com/alejandro-ao/ask-multiple-pdfs) | 1153 |\\n| [ThousandBirdsInc/chidori](https://github.com/ThousandBirdsInc/chidori) | 1152 |\\n| [irgolic/AutoPR](https://github.com/irgolic/AutoPR) | 1137 |\\n| [SamurAIGPT/Camel-AutoGPT](https://github.com/SamurAIGPT/Camel-AutoGPT) | 1083 |\\n| [ray-project/llm-applications](https://github.com/ray-project/llm-applications) | 1080 |\\n| [run-llama/llama-lab](https://github.com/run-llama/llama-lab) | 1072 |\\n| [jiran214/GPT-vup](https://github.com/jiran214/GPT-vup) | 1041 |\\n| [MetaGLM/FinGLM](https://github.com/MetaGLM/FinGLM) | 1035 |\\n| [peterw/Chat-with-Github-Repo](https://github.com/peterw/Chat-with-Github-Repo) | 1020 |\\n| [Anil-matcha/ChatPDF](https://github.com/Anil-matcha/ChatPDF) | 991 |\\n| [langchain-ai/langserve](https://github.com/langchain-ai/langserve) | 983 |\\n| [THUDM/AgentTuning](https://github.com/THUDM/AgentTuning) | 976 |\\n| [rlancemartin/auto-evaluator](https://github.com/rlancemartin/auto-evaluator) | 975 |\\n| [codeacme17/examor](https://github.com/codeacme17/examor) | 964 |\\n| [all-in-aigc/gpts-works](https://github.com/all-in-aigc/gpts-works) | 946 |\\n| [Ikaros-521/AI-Vtuber](https://github.com/Ikaros-521/AI-Vtuber) | 946 |\\n| [microsoft/Llama-2-Onnx](https://github.com/microsoft/Llama-2-Onnx) | 898 |\\n| [cirediatpl/FigmaChain](https://github.com/cirediatpl/FigmaChain) | 895 |\\n| [ricklamers/shell-ai](https://github.com/ricklamers/shell-ai) | 893 |\\n| [modelscope/modelscope-agent](https://github.com/modelscope/modelscope-agent) | 893 |\\n| [seanpixel/Teenage-AGI](https://github.com/seanpixel/Teenage-AGI) | 886 |\\n| [ajndkr/lanarky](https://github.com/ajndkr/lanarky) | 880 |\\n| [kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference](https://github.com/kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference) | 872 |\\n| [corca-ai/EVAL](https://github.com/corca-ai/EVAL) | 846 |\\n| [hwchase17/chat-your-data](https://github.com/hwchase17/chat-your-data) | 841 |\\n| [kreneskyp/ix](https://github.com/kreneskyp/ix) | 821 |\\n| [Link-AGI/AutoAgents](https://github.com/Link-AGI/AutoAgents) | 820 |\\n| [truera/trulens](https://github.com/truera/trulens) | 794 |\\n| [Dataherald/dataherald](https://github.com/Dataherald/dataherald) | 788 |\\n| [sunlabuiuc/PyHealth](https://github.com/sunlabuiuc/PyHealth) | 783 |\\n| [jondurbin/airoboros](https://github.com/jondurbin/airoboros) | 783 |\\n| [pyspark-ai/pyspark-ai](https://github.com/pyspark-ai/pyspark-ai) | 782 |\\n| [confident-ai/deepeval](https://github.com/confident-ai/deepeval) | 780 |\\n| [billxbf/ReWOO](https://github.com/billxbf/ReWOO) | 777 |\\n| [langchain-ai/streamlit-agent](https://github.com/langchain-ai/streamlit-agent) | 776 |\\n| [akshata29/entaoai](https://github.com/akshata29/entaoai) | 771 |\\n| [LambdaLabsML/examples](https://github.com/LambdaLabsML/examples) | 770 |\\n| [getmetal/motorhead](https://github.com/getmetal/motorhead) | 768 |\\n| [Dicklesworthstone/swiss\\\\_army\\\\_llama](https://github.com/Dicklesworthstone/swiss_army_llama) | 757 |\\n| [ruoccofabrizio/azure-open-ai-embeddings-qna](https://github.com/ruoccofabrizio/azure-open-ai-embeddings-qna) | 757 |\\n| [msoedov/langcorn](https://github.com/msoedov/langcorn) | 754 |\\n| [e-johnstonn/BriefGPT](https://github.com/e-johnstonn/BriefGPT) | 753 |\\n| [microsoft/sample-app-aoai-chatGPT](https://github.com/microsoft/sample-app-aoai-chatGPT) | 749 |\\n| [explosion/spacy-llm](https://github.com/explosion/spacy-llm) | 731 |\\n| [MiuLab/Taiwan-LLM](https://github.com/MiuLab/Taiwan-LLM) | 716 |\\n| [whyiyhw/chatgpt-wechat](https://github.com/whyiyhw/chatgpt-wechat) | 702 |\\n| [Azure-Samples/openai](https://github.com/Azure-Samples/openai) | 692 |\\n| [iusztinpaul/hands-on-llms](https://github.com/iusztinpaul/hands-on-llms) | 687 |\\n| [safevideo/autollm](https://github.com/safevideo/autollm) | 682 |\\n| [OpenGenerativeAI/GenossGPT](https://github.com/OpenGenerativeAI/GenossGPT) | 669 |\\n| [NoDataFound/hackGPT](https://github.com/NoDataFound/hackGPT) | 663 |\\n| [AILab-CVC/GPT4Tools](https://github.com/AILab-CVC/GPT4Tools) | 662 |\\n| [langchain-ai/auto-evaluator](https://github.com/langchain-ai/auto-evaluator) | 657 |\\n| [yvann-ba/Robby-chatbot](https://github.com/yvann-ba/Robby-chatbot) | 639 |\\n| [alexanderatallah/window.ai](https://github.com/alexanderatallah/window.ai) | 635 |\\n| [amosjyng/langchain-visualizer](https://github.com/amosjyng/langchain-visualizer) | 630 |\\n| [microsoft/PodcastCopilot](https://github.com/microsoft/PodcastCopilot) | 621 |\\n| [aws-samples/aws-genai-llm-chatbot](https://github.com/aws-samples/aws-genai-llm-chatbot) | 616 |\\n| [NeumTry/NeumAI](https://github.com/NeumTry/NeumAI) | 605 |\\n| [namuan/dr-doc-search](https://github.com/namuan/dr-doc-search) | 599 |\\n| [plastic-labs/tutor-gpt](https://github.com/plastic-labs/tutor-gpt) | 595 |\\n| [marimo-team/marimo](https://github.com/marimo-team/marimo) | 591 |\\n| [yakami129/VirtualWife](https://github.com/yakami129/VirtualWife) | 586 |\\n| [xuwenhao/geektime-ai-course](https://github.com/xuwenhao/geektime-ai-course) | 584 |\\n| [jonra1993/fastapi-alembic-sqlmodel-async](https://github.com/jonra1993/fastapi-alembic-sqlmodel-async) | 573 |\\n| [dgarnitz/vectorflow](https://github.com/dgarnitz/vectorflow) | 568 |\\n| [yeagerai/yeagerai-agent](https://github.com/yeagerai/yeagerai-agent) | 564 |\\n| [daveebbelaar/langchain-experiments](https://github.com/daveebbelaar/langchain-experiments) | 563 |\\n| [traceloop/openllmetry](https://github.com/traceloop/openllmetry) | 559 |\\n| [Agenta-AI/agenta](https://github.com/Agenta-AI/agenta) | 546 |\\n| [michaelthwan/searchGPT](https://github.com/michaelthwan/searchGPT) | 545 |\\n| [jina-ai/agentchain](https://github.com/jina-ai/agentchain) | 544 |\\n| [mckaywrigley/repo-chat](https://github.com/mckaywrigley/repo-chat) | 533 |\\n| [marella/chatdocs](https://github.com/marella/chatdocs) | 532 |\\n| [opentensor/bittensor](https://github.com/opentensor/bittensor) | 532 |\\n| [DjangoPeng/openai-quickstart](https://github.com/DjangoPeng/openai-quickstart) | 527 |\\n| [freddyaboulton/gradio-tools](https://github.com/freddyaboulton/gradio-tools) | 517 |\\n| [sidhq/Multi-GPT](https://github.com/sidhq/Multi-GPT) | 515 |\\n| [alejandro-ao/langchain-ask-pdf](https://github.com/alejandro-ao/langchain-ask-pdf) | 514 |\\n| [sajjadium/ctf-archives](https://github.com/sajjadium/ctf-archives) | 507 |\\n| [continuum-llms/chatgpt-memory](https://github.com/continuum-llms/chatgpt-memory) | 502 |\\n| [steamship-core/steamship-langchain](https://github.com/steamship-core/steamship-langchain) | 494 |\\n| [mpaepper/content-chatbot](https://github.com/mpaepper/content-chatbot) | 493 |\\n| [langchain-ai/langchain-aiplugin](https://github.com/langchain-ai/langchain-aiplugin) | 492 |\\n| [logan-markewich/llama\\\\_index\\\\_starter\\\\_pack](https://github.com/logan-markewich/llama_index_starter_pack) | 483 |\\n| [datawhalechina/llm-universe](https://github.com/datawhalechina/llm-universe) | 475 |\\n| [leondz/garak](https://github.com/leondz/garak) | 464 |\\n| [RedisVentures/ArXivChatGuru](https://github.com/RedisVentures/ArXivChatGuru) | 461 |\\n| [Anil-matcha/Chatbase](https://github.com/Anil-matcha/Chatbase) | 455 |\\n| [Aiyu-awa/luna-ai](https://github.com/Aiyu-awa/luna-ai) | 450 |\\n| [DataDog/dd-trace-py](https://github.com/DataDog/dd-trace-py) | 450 |\\n| [Azure-Samples/miyagi](https://github.com/Azure-Samples/miyagi) | 449 |\\n| [poe-platform/poe-protocol](https://github.com/poe-platform/poe-protocol) | 447 |\\n| [onlyphantom/llm-python](https://github.com/onlyphantom/llm-python) | 446 |\\n| [junruxiong/IncarnaMind](https://github.com/junruxiong/IncarnaMind) | 441 |\\n| [CarperAI/OpenELM](https://github.com/CarperAI/OpenELM) | 441 |\\n| [daodao97/chatdoc](https://github.com/daodao97/chatdoc) | 437 |\\n| [showlab/VLog](https://github.com/showlab/VLog) | 436 |\\n| [wandb/weave](https://github.com/wandb/weave) | 420 |\\n| [QwenLM/Qwen-Agent](https://github.com/QwenLM/Qwen-Agent) | 419 |\\n| [huchenxucs/ChatDB](https://github.com/huchenxucs/ChatDB) | 416 |\\n| [jerlendds/osintbuddy](https://github.com/jerlendds/osintbuddy) | 411 |\\n| [monarch-initiative/ontogpt](https://github.com/monarch-initiative/ontogpt) | 408 |\\n| [mallorbc/Finetune\\\\_LLMs](https://github.com/mallorbc/Finetune_LLMs) | 406 |\\n| [JayZeeDesign/researcher-gpt](https://github.com/JayZeeDesign/researcher-gpt) | 405 |\\n| [rsaryev/talk-codebase](https://github.com/rsaryev/talk-codebase) | 401 |\\n| [langchain-ai/langsmith-cookbook](https://github.com/langchain-ai/langsmith-cookbook) | 398 |\\n| [mtenenholtz/chat-twitter](https://github.com/mtenenholtz/chat-twitter) | 398 |\\n| [morpheuslord/GPT\\\\_Vuln-analyzer](https://github.com/morpheuslord/GPT_Vuln-analyzer) | 391 |\\n| [MagnivOrg/prompt-layer-library](https://github.com/MagnivOrg/prompt-layer-library) | 387 |\\n| [JohnSnowLabs/langtest](https://github.com/JohnSnowLabs/langtest) | 384 |\\n| [mrwadams/attackgen](https://github.com/mrwadams/attackgen) | 381 |\\n| [codefuse-ai/Test-Agent](https://github.com/codefuse-ai/Test-Agent) | 380 |\\n| [personoids/personoids-lite](https://github.com/personoids/personoids-lite) | 379 |\\n| [mosaicml/examples](https://github.com/mosaicml/examples) | 378 |\\n| [steamship-packages/langchain-production-starter](https://github.com/steamship-packages/langchain-production-starter) | 370 |\\n| [FlagAI-Open/Aquila2](https://github.com/FlagAI-Open/Aquila2) | 365 |\\n| [Mintplex-Labs/vector-admin](https://github.com/Mintplex-Labs/vector-admin) | 365 |\\n| [NimbleBoxAI/ChainFury](https://github.com/NimbleBoxAI/ChainFury) | 357 |\\n| [BlackHC/llm-strategy](https://github.com/BlackHC/llm-strategy) | 354 |\\n| [lilacai/lilac](https://github.com/lilacai/lilac) | 352 |\\n| [preset-io/promptimize](https://github.com/preset-io/promptimize) | 351 |\\n| [yuanjie-ai/ChatLLM](https://github.com/yuanjie-ai/ChatLLM) | 347 |\\n| [andylokandy/gpt-4-search](https://github.com/andylokandy/gpt-4-search) | 346 |\\n| [zhoudaquan/ChatAnything](https://github.com/zhoudaquan/ChatAnything) | 343 |\\n| [rgomezcasas/dotfiles](https://github.com/rgomezcasas/dotfiles) | 343 |\\n| [tigerlab-ai/tiger](https://github.com/tigerlab-ai/tiger) | 342 |\\n| [HumanSignal/label-studio-ml-backend](https://github.com/HumanSignal/label-studio-ml-backend) | 334 |\\n| [nasa-petal/bidara](https://github.com/nasa-petal/bidara) | 334 |\\n| [momegas/megabots](https://github.com/momegas/megabots) | 334 |\\n| [Cheems-Seminar/grounded-segment-any-parts](https://github.com/Cheems-Seminar/grounded-segment-any-parts) | 330 |\\n| [CambioML/pykoi](https://github.com/CambioML/pykoi) | 326 |\\n| [Nuggt-dev/Nuggt](https://github.com/Nuggt-dev/Nuggt) | 326 |\\n| [wandb/edu](https://github.com/wandb/edu) | 326 |\\n| [Haste171/langchain-chatbot](https://github.com/Haste171/langchain-chatbot) | 324 |\\n| [sugarforever/LangChain-Tutorials](https://github.com/sugarforever/LangChain-Tutorials) | 322 |\\n| [liangwq/Chatglm\\\\_lora\\\\_multi-gpu](https://github.com/liangwq/Chatglm_lora_multi-gpu) | 321 |\\n| [ur-whitelab/chemcrow-public](https://github.com/ur-whitelab/chemcrow-public) | 320 |\\n| [itamargol/openai](https://github.com/itamargol/openai) | 318 |\\n| [gia-guar/JARVIS-ChatGPT](https://github.com/gia-guar/JARVIS-ChatGPT) | 304 |\\n| [SpecterOps/Nemesis](https://github.com/SpecterOps/Nemesis) | 302 |\\n| [facebookresearch/personal-timeline](https://github.com/facebookresearch/personal-timeline) | 302 |\\n| [hnawaz007/pythondataanalysis](https://github.com/hnawaz007/pythondataanalysis) | 301 |\\n| [Chainlit/cookbook](https://github.com/Chainlit/cookbook) | 300 |\\n| [airobotlab/KoChatGPT](https://github.com/airobotlab/KoChatGPT) | 300 |\\n| [GPT-Fathom/GPT-Fathom](https://github.com/GPT-Fathom/GPT-Fathom) | 299 |\\n| [kaarthik108/snowChat](https://github.com/kaarthik108/snowChat) | 299 |\\n| [kyegomez/swarms](https://github.com/kyegomez/swarms) | 296 |\\n| [LangStream/langstream](https://github.com/LangStream/langstream) | 295 |\\n| [genia-dev/GeniA](https://github.com/genia-dev/GeniA) | 294 |\\n| [shamspias/customizable-gpt-chatbot](https://github.com/shamspias/customizable-gpt-chatbot) | 291 |\\n| [TsinghuaDatabaseGroup/DB-GPT](https://github.com/TsinghuaDatabaseGroup/DB-GPT) | 290 |\\n| [conceptofmind/toolformer](https://github.com/conceptofmind/toolformer) | 283 |\\n| [sullivan-sean/chat-langchainjs](https://github.com/sullivan-sean/chat-langchainjs) | 283 |\\n| [AutoPackAI/beebot](https://github.com/AutoPackAI/beebot) | 282 |\\n| [pablomarin/GPT-Azure-Search-Engine](https://github.com/pablomarin/GPT-Azure-Search-Engine) | 282 |\\n| [gkamradt/LLMTest\\\\_NeedleInAHaystack](https://github.com/gkamradt/LLMTest_NeedleInAHaystack) | 280 |\\n| [gustavz/DataChad](https://github.com/gustavz/DataChad) | 280 |\\n| [Safiullah-Rahu/CSV-AI](https://github.com/Safiullah-Rahu/CSV-AI) | 278 |\\n| [hwchase17/chroma-langchain](https://github.com/hwchase17/chroma-langchain) | 275 |\\n| [AkshitIreddy/Interactive-LLM-Powered-NPCs](https://github.com/AkshitIreddy/Interactive-LLM-Powered-NPCs) | 268 |\\n| [ennucore/clippinator](https://github.com/ennucore/clippinator) | 267 |\\n| [artitw/text2text](https://github.com/artitw/text2text) | 264 |\\n| [anarchy-ai/LLM-VM](https://github.com/anarchy-ai/LLM-VM) | 263 |\\n| [wpydcr/LLM-Kit](https://github.com/wpydcr/LLM-Kit) | 262 |\\n| [streamlit/llm-examples](https://github.com/streamlit/llm-examples) | 262 |\\n| [paolorechia/learn-langchain](https://github.com/paolorechia/learn-langchain) | 262 |\\n| [yym68686/ChatGPT-Telegram-Bot](https://github.com/yym68686/ChatGPT-Telegram-Bot) | 261 |\\n| [PradipNichite/Youtube-Tutorials](https://github.com/PradipNichite/Youtube-Tutorials) | 259 |\\n| [radi-cho/datasetGPT](https://github.com/radi-cho/datasetGPT) | 259 |\\n| [ur-whitelab/exmol](https://github.com/ur-whitelab/exmol) | 259 |\\n| [ml6team/fondant](https://github.com/ml6team/fondant) | 254 |\\n| [bborn/howdoi.ai](https://github.com/bborn/howdoi.ai) | 254 |\\n| [rahulnyk/knowledge\\\\_graph](https://github.com/rahulnyk/knowledge_graph) | 253 |\\n| [recalign/RecAlign](https://github.com/recalign/RecAlign) | 248 |\\n| [hwchase17/langchain-streamlit-template](https://github.com/hwchase17/langchain-streamlit-template) | 248 |\\n| [fetchai/uAgents](https://github.com/fetchai/uAgents) | 247 |\\n| [arthur-ai/bench](https://github.com/arthur-ai/bench) | 247 |\\n| [miaoshouai/miaoshouai-assistant](https://github.com/miaoshouai/miaoshouai-assistant) | 246 |\\n| [RoboCoachTechnologies/GPT-Synthesizer](https://github.com/RoboCoachTechnologies/GPT-Synthesizer) | 244 |\\n| [langchain-ai/web-explorer](https://github.com/langchain-ai/web-explorer) | 242 |\\n| [kaleido-lab/dolphin](https://github.com/kaleido-lab/dolphin) | 242 |\\n| [PJLab-ADG/DriveLikeAHuman](https://github.com/PJLab-ADG/DriveLikeAHuman) | 241 |\\n| [stepanogil/autonomous-hr-chatbot](https://github.com/stepanogil/autonomous-hr-chatbot) | 238 |\\n| [WongSaang/chatgpt-ui-server](https://github.com/WongSaang/chatgpt-ui-server) | 236 |\\n| [nexus-stc/stc](https://github.com/nexus-stc/stc) | 235 |\\n| [yeagerai/genworlds](https://github.com/yeagerai/genworlds) | 235 |\\n| [Gentopia-AI/Gentopia](https://github.com/Gentopia-AI/Gentopia) | 235 |\\n| [alphasecio/langchain-examples](https://github.com/alphasecio/langchain-examples) | 235 |\\n| [grumpyp/aixplora](https://github.com/grumpyp/aixplora) | 232 |\\n| [shaman-ai/agent-actors](https://github.com/shaman-ai/agent-actors) | 232 |\\n| [darrenburns/elia](https://github.com/darrenburns/elia) | 231 |\\n| [orgexyz/BlockAGI](https://github.com/orgexyz/BlockAGI) | 231 |\\n| [handrew/browserpilot](https://github.com/handrew/browserpilot) | 226 |\\n| [su77ungr/CASALIOY](https://github.com/su77ungr/CASALIOY) | 225 |\\n| [nicknochnack/LangchainDocuments](https://github.com/nicknochnack/LangchainDocuments) | 225 |\\n| [dbpunk-labs/octogen](https://github.com/dbpunk-labs/octogen) | 224 |\\n| [langchain-ai/weblangchain](https://github.com/langchain-ai/weblangchain) | 222 |\\n| [CL-lau/SQL-GPT](https://github.com/CL-lau/SQL-GPT) | 222 |\\n| [alvarosevilla95/autolang](https://github.com/alvarosevilla95/autolang) | 221 |\\n| [showlab/UniVTG](https://github.com/showlab/UniVTG) | 220 |\\n| [edreisMD/plugnplai](https://github.com/edreisMD/plugnplai) | 219 |\\n| [hardbyte/qabot](https://github.com/hardbyte/qabot) | 216 |\\n| [microsoft/azure-openai-in-a-day-workshop](https://github.com/microsoft/azure-openai-in-a-day-workshop) | 215 |\\n| [Azure-Samples/chat-with-your-data-solution-accelerator](https://github.com/Azure-Samples/chat-with-your-data-solution-accelerator) | 214 |\\n| [amadad/agentcy](https://github.com/amadad/agentcy) | 213 |\\n| [snexus/llm-search](https://github.com/snexus/llm-search) | 212 |\\n| [afaqueumer/DocQA](https://github.com/afaqueumer/DocQA) | 206 |\\n| [plchld/InsightFlow](https://github.com/plchld/InsightFlow) | 205 |\\n| [yasyf/compress-gpt](https://github.com/yasyf/compress-gpt) | 205 |\\n| [benthecoder/ClassGPT](https://github.com/benthecoder/ClassGPT) | 205 |\\n| [voxel51/voxelgpt](https://github.com/voxel51/voxelgpt) | 204 |\\n| [jbrukh/gpt-jargon](https://github.com/jbrukh/gpt-jargon) | 204 |\\n| [emarco177/ice\\\\_breaker](https://github.com/emarco177/ice_breaker) | 204 |\\n| [tencentmusic/supersonic](https://github.com/tencentmusic/supersonic) | 202 |\\n| [Azure-Samples/azure-search-power-skills](https://github.com/Azure-Samples/azure-search-power-skills) | 202 |\\n| [blob42/Instrukt](https://github.com/blob42/Instrukt) | 201 |\\n| [langchain-ai/langsmith-sdk](https://github.com/langchain-ai/langsmith-sdk) | 200 |\\n| [SamPink/dev-gpt](https://github.com/SamPink/dev-gpt) | 200 |\\n| [ju-bezdek/langchain-decorators](https://github.com/ju-bezdek/langchain-decorators) | 198 |\\n| [KMnO4-zx/huanhuan-chat](https://github.com/KMnO4-zx/huanhuan-chat) | 196 |\\n| [Azure-Samples/jp-azureopenai-samples](https://github.com/Azure-Samples/jp-azureopenai-samples) | 192 |\\n| [hongbo-miao/hongbomiao.com](https://github.com/hongbo-miao/hongbomiao.com) | 190 |\\n| [CakeCrusher/openplugin](https://github.com/CakeCrusher/openplugin) | 190 |\\n| [PaddlePaddle/ERNIE-Bot-SDK](https://github.com/PaddlePaddle/ERNIE-Bot-SDK) | 189 |\\n| [retr0reg/Ret2GPT](https://github.com/retr0reg/Ret2GPT) | 189 |\\n| [AmineDiro/cria](https://github.com/AmineDiro/cria) | 187 |\\n| [lancedb/vectordb-recipes](https://github.com/lancedb/vectordb-recipes) | 186 |\\n| [vaibkumr/prompt-optimizer](https://github.com/vaibkumr/prompt-optimizer) | 185 |\\n| [aws-ia/ecs-blueprints](https://github.com/aws-ia/ecs-blueprints) | 184 |\\n| [ethanyanjiali/minChatGPT](https://github.com/ethanyanjiali/minChatGPT) | 183 |\\n| [MuhammadMoinFaisal/LargeLanguageModelsProjects](https://github.com/MuhammadMoinFaisal/LargeLanguageModelsProjects) | 182 |\\n| [shauryr/S2QA](https://github.com/shauryr/S2QA) | 181 |\\n| [summarizepaper/summarizepaper](https://github.com/summarizepaper/summarizepaper) | 180 |\\n| [NomaDamas/RAGchain](https://github.com/NomaDamas/RAGchain) | 179 |\\n| [pnkvalavala/repochat](https://github.com/pnkvalavala/repochat) | 179 |\\n| [ibiscp/LLM-IMDB](https://github.com/ibiscp/LLM-IMDB) | 177 |\\n| [fengyuli-dev/multimedia-gpt](https://github.com/fengyuli-dev/multimedia-gpt) | 177 |\\n| [langchain-ai/text-split-explorer](https://github.com/langchain-ai/text-split-explorer) | 175 |\\n| [iMagist486/ElasticSearch-Langchain-Chatglm2](https://github.com/iMagist486/ElasticSearch-Langchain-Chatglm2) | 175 |\\n| [limaoyi1/Auto-PPT](https://github.com/limaoyi1/Auto-PPT) | 175 |\\n| [Open-Swarm-Net/GPT-Swarm](https://github.com/Open-Swarm-Net/GPT-Swarm) | 175 |\\n| [morpheuslord/HackBot](https://github.com/morpheuslord/HackBot) | 174 |\\n| [v7labs/benchllm](https://github.com/v7labs/benchllm) | 174 |\\n| [Coding-Crashkurse/Langchain-Full-Course](https://github.com/Coding-Crashkurse/Langchain-Full-Course) | 174 |\\n| [dongyh20/Octopus](https://github.com/dongyh20/Octopus) | 173 |\\n| [kimtth/azure-openai-llm-vector-langchain](https://github.com/kimtth/azure-openai-llm-vector-langchain) | 173 |\\n| [mayooear/private-chatbot-mpt30b-langchain](https://github.com/mayooear/private-chatbot-mpt30b-langchain) | 173 |\\n| [zilliztech/akcio](https://github.com/zilliztech/akcio) | 172 |\\n| [jmpaz/promptlib](https://github.com/jmpaz/promptlib) | 172 |\\n| [ccurme/yolopandas](https://github.com/ccurme/yolopandas) | 172 |\\n| [joaomdmoura/CrewAI](https://github.com/joaomdmoura/CrewAI) | 170 |\\n| [katanaml/llm-mistral-invoice-cpu](https://github.com/katanaml/llm-mistral-invoice-cpu) | 170 |\\n| [chakkaradeep/pyCodeAGI](https://github.com/chakkaradeep/pyCodeAGI) | 170 |\\n| [mudler/LocalAGI](https://github.com/mudler/LocalAGI) | 167 |\\n| [dssjon/biblos](https://github.com/dssjon/biblos) | 165 |\\n| [kjappelbaum/gptchem](https://github.com/kjappelbaum/gptchem) | 165 |\\n| [xxw1995/chatglm3-finetune](https://github.com/xxw1995/chatglm3-finetune) | 164 |\\n| [ArjanCodes/examples](https://github.com/ArjanCodes/examples) | 163 |\\n| [AIAnytime/Llama2-Medical-Chatbot](https://github.com/AIAnytime/Llama2-Medical-Chatbot) | 163 |\\n| [RCGAI/SimplyRetrieve](https://github.com/RCGAI/SimplyRetrieve) | 162 |\\n| [langchain-ai/langchain-teacher](https://github.com/langchain-ai/langchain-teacher) | 162 |\\n| [menloparklab/falcon-langchain](https://github.com/menloparklab/falcon-langchain) | 162 |\\n| [flurb18/AgentOoba](https://github.com/flurb18/AgentOoba) | 162 |\\n| [homanp/vercel-langchain](https://github.com/homanp/vercel-langchain) | 161 |\\n| [jiran214/langup-ai](https://github.com/jiran214/langup-ai) | 160 |\\n| [JorisdeJong123/7-Days-of-LangChain](https://github.com/JorisdeJong123/7-Days-of-LangChain) | 160 |\\n| [GoogleCloudPlatform/data-analytics-golden-demo](https://github.com/GoogleCloudPlatform/data-analytics-golden-demo) | 159 |\\n| [positive666/Prompt-Can-Anything](https://github.com/positive666/Prompt-Can-Anything) | 159 |\\n| [luisroque/large\\\\_laguage\\\\_models](https://github.com/luisroque/large_laguage_models) | 159 |\\n| [mlops-for-all/mlops-for-all.github.io](https://github.com/mlops-for-all/mlops-for-all.github.io) | 158 |\\n| [wandb/wandbot](https://github.com/wandb/wandbot) | 158 |\\n| [elastic/elasticsearch-labs](https://github.com/elastic/elasticsearch-labs) | 157 |\\n| [shroominic/funcchain](https://github.com/shroominic/funcchain) | 157 |\\n| [deeppavlov/dream](https://github.com/deeppavlov/dream) | 156 |\\n| [mluogh/eastworld](https://github.com/mluogh/eastworld) | 154 |\\n| [georgesung/llm\\\\_qlora](https://github.com/georgesung/llm_qlora) | 154 |\\n| [RUC-GSAI/YuLan-Rec](https://github.com/RUC-GSAI/YuLan-Rec) | 153 |\\n| [KylinC/ChatFinance](https://github.com/KylinC/ChatFinance) | 152 |\\n| [Dicklesworthstone/llama2\\\\_aided\\\\_tesseract](https://github.com/Dicklesworthstone/llama2_aided_tesseract) | 152 |\\n| [c0sogi/LLMChat](https://github.com/c0sogi/LLMChat) | 152 |\\n| [eunomia-bpf/GPTtrace](https://github.com/eunomia-bpf/GPTtrace) | 152 |\\n| [ErikBjare/gptme](https://github.com/ErikBjare/gptme) | 152 |\\n| [Klingefjord/chatgpt-telegram](https://github.com/Klingefjord/chatgpt-telegram) | 152 |\\n| [RoboCoachTechnologies/ROScribe](https://github.com/RoboCoachTechnologies/ROScribe) | 151 |\\n| [Aggregate-Intellect/sherpa](https://github.com/Aggregate-Intellect/sherpa) | 151 |\\n| [3Alan/DocsMind](https://github.com/3Alan/DocsMind) | 151 |\\n| [tangqiaoyu/ToolAlpaca](https://github.com/tangqiaoyu/ToolAlpaca) | 150 |\\n| [kulltc/chatgpt-sql](https://github.com/kulltc/chatgpt-sql) | 150 |\\n| [mallahyari/drqa](https://github.com/mallahyari/drqa) | 150 |\\n| [MedalCollector/Orator](https://github.com/MedalCollector/Orator) | 149 |\\n| [Teahouse-Studios/akari-bot](https://github.com/Teahouse-Studios/akari-bot) | 149 |\\n| [realminchoi/babyagi-ui](https://github.com/realminchoi/babyagi-ui) | 148 |\\n| [ssheng/BentoChain](https://github.com/ssheng/BentoChain) | 148 |\\n| [solana-labs/chatgpt-plugin](https://github.com/solana-labs/chatgpt-plugin) | 147 |\\n| [aurelio-labs/arxiv-bot](https://github.com/aurelio-labs/arxiv-bot) | 147 |\\n| [Jaseci-Labs/jaseci](https://github.com/Jaseci-Labs/jaseci) | 146 |\\n| [menloparklab/langchain-cohere-qdrant-doc-retrieval](https://github.com/menloparklab/langchain-cohere-qdrant-doc-retrieval) | 146 |\\n| [trancethehuman/entities-extraction-web-scraper](https://github.com/trancethehuman/entities-extraction-web-scraper) | 144 |\\n| [peterw/StoryStorm](https://github.com/peterw/StoryStorm) | 144 |\\n| [grumpyp/chroma-langchain-tutorial](https://github.com/grumpyp/chroma-langchain-tutorial) | 144 |\\n| [gh18l/CrawlGPT](https://github.com/gh18l/CrawlGPT) | 142 |\\n| [langchain-ai/langchain-aws-template](https://github.com/langchain-ai/langchain-aws-template) | 142 |\\n| [yasyf/summ](https://github.com/yasyf/summ) | 141 |\\n| [petehunt/langchain-github-bot](https://github.com/petehunt/langchain-github-bot) | 141 |\\n| [hirokidaichi/wanna](https://github.com/hirokidaichi/wanna) | 140 |\\n| [jina-ai/fastapi-serve](https://github.com/jina-ai/fastapi-serve) | 139 |\\n| [zenml-io/zenml-projects](https://github.com/zenml-io/zenml-projects) | 139 |\\n| [jlonge4/local\\\\_llama](https://github.com/jlonge4/local_llama) | 139 |\\n| [smyja/blackmaria](https://github.com/smyja/blackmaria) | 138 |\\n| [ChuloAI/BrainChulo](https://github.com/ChuloAI/BrainChulo) | 137 |\\n| [log1stics/voice-generator-webui](https://github.com/log1stics/voice-generator-webui) | 137 |\\n| [davila7/file-gpt](https://github.com/davila7/file-gpt) | 137 |\\n| [dcaribou/transfermarkt-datasets](https://github.com/dcaribou/transfermarkt-datasets) | 136 |\\n| [ciare-robotics/world-creator](https://github.com/ciare-robotics/world-creator) | 135 |\\n| [Undertone0809/promptulate](https://github.com/Undertone0809/promptulate) | 134 |\\n| [fixie-ai/fixie-examples](https://github.com/fixie-ai/fixie-examples) | 134 |\\n| [run-llama/ai-engineer-workshop](https://github.com/run-llama/ai-engineer-workshop) | 133 |\\n| [definitive-io/code-indexer-loop](https://github.com/definitive-io/code-indexer-loop) | 131 |\\n| [mortium91/langchain-assistant](https://github.com/mortium91/langchain-assistant) | 131 |\\n| [baidubce/bce-qianfan-sdk](https://github.com/baidubce/bce-qianfan-sdk) | 130 |\\n| [Ngonie-x/langchain\\\\_csv](https://github.com/Ngonie-x/langchain_csv) | 130 |\\n| [IvanIsCoding/ResuLLMe](https://github.com/IvanIsCoding/ResuLLMe) | 130 |\\n| [AnchoringAI/anchoring-ai](https://github.com/AnchoringAI/anchoring-ai) | 129 |\\n| [Azure/business-process-automation](https://github.com/Azure/business-process-automation) | 128 |\\n| [athina-ai/athina-sdk](https://github.com/athina-ai/athina-sdk) | 126 |\\n| [thunlp/ChatEval](https://github.com/thunlp/ChatEval) | 126 |\\n| [prof-frink-lab/slangchain](https://github.com/prof-frink-lab/slangchain) | 126 |\\n| [vietanhdev/pautobot](https://github.com/vietanhdev/pautobot) | 125 |\\n| [awslabs/generative-ai-cdk-constructs](https://github.com/awslabs/generative-ai-cdk-constructs) | 124 |\\n| [sdaaron/QueryGPT](https://github.com/sdaaron/QueryGPT) | 124 |\\n| [rabbitmetrics/langchain-13-min](https://github.com/rabbitmetrics/langchain-13-min) | 124 |\\n| [AutoLLM/AutoAgents](https://github.com/AutoLLM/AutoAgents) | 122 |\\n| [nicknochnack/Nopenai](https://github.com/nicknochnack/Nopenai) | 122 |\\n| [wombyz/HormoziGPT](https://github.com/wombyz/HormoziGPT) | 122 |\\n| [dotvignesh/PDFChat](https://github.com/dotvignesh/PDFChat) | 122 |\\n| [topoteretes/PromethAI-Backend](https://github.com/topoteretes/PromethAI-Backend) | 121 |\\n| [nftblackmagic/flask-langchain](https://github.com/nftblackmagic/flask-langchain) | 121 |\\n| [vishwasg217/finsight](https://github.com/vishwasg217/finsight) | 120 |\\n| [snap-stanford/MLAgentBench](https://github.com/snap-stanford/MLAgentBench) | 120 |\\n| [Azure/app-service-linux-docs](https://github.com/Azure/app-service-linux-docs) | 120 |\\n| [nyanp/chat2plot](https://github.com/nyanp/chat2plot) | 120 |\\n| [ant4g0nist/polar](https://github.com/ant4g0nist/polar) | 119 |\\n| [aws-samples/cdk-eks-blueprints-patterns](https://github.com/aws-samples/cdk-eks-blueprints-patterns) | 119 |\\n| [aws-samples/amazon-kendra-langchain-extensions](https://github.com/aws-samples/amazon-kendra-langchain-extensions) | 119 |\\n| [Xueheng-Li/SynologyChatbotGPT](https://github.com/Xueheng-Li/SynologyChatbotGPT) | 119 |\\n| [CodeAlchemyAI/ViLT-GPT](https://github.com/CodeAlchemyAI/ViLT-GPT) | 117 |\\n| [Lin-jun-xiang/docGPT-langchain](https://github.com/Lin-jun-xiang/docGPT-langchain) | 117 |\\n| [ademakdogan/ChatSQL](https://github.com/ademakdogan/ChatSQL) | 116 |\\n| [aniketmaurya/llm-inference](https://github.com/aniketmaurya/llm-inference) | 115 |\\n| [xuwenhao/mactalk-ai-course](https://github.com/xuwenhao/mactalk-ai-course) | 115 |\\n| [cmooredev/RepoReader](https://github.com/cmooredev/RepoReader) | 115 |\\n| [abi/autocommit](https://github.com/abi/autocommit) | 115 |\\n| [MIDORIBIN/langchain-gpt4free](https://github.com/MIDORIBIN/langchain-gpt4free) | 114 |\\n| [finaldie/auto-news](https://github.com/finaldie/auto-news) | 114 |\\n| [Anil-matcha/Youtube-to-chatbot](https://github.com/Anil-matcha/Youtube-to-chatbot) | 114 |\\n| [avrabyt/MemoryBot](https://github.com/avrabyt/MemoryBot) | 114 |\\n| [Capsize-Games/airunner](https://github.com/Capsize-Games/airunner) | 113 |\\n| [atisharma/llama\\\\_farm](https://github.com/atisharma/llama_farm) | 113 |\\n| [mbchang/data-driven-characters](https://github.com/mbchang/data-driven-characters) | 112 |\\n| [fiddler-labs/fiddler-auditor](https://github.com/fiddler-labs/fiddler-auditor) | 112 |\\n| [dirkjbreeuwer/gpt-automated-web-scraper](https://github.com/dirkjbreeuwer/gpt-automated-web-scraper) | 111 |\\n| [Appointat/Chat-with-Document-s-using-ChatGPT-API-and-Text-Embedding](https://github.com/Appointat/Chat-with-Document-s-using-ChatGPT-API-and-Text-Embedding) | 111 |\\n| [hwchase17/langchain-gradio-template](https://github.com/hwchase17/langchain-gradio-template) | 111 |\\n| [artas728/spelltest](https://github.com/artas728/spelltest) | 110 |\\n| [NVIDIA/GenerativeAIExamples](https://github.com/NVIDIA/GenerativeAIExamples) | 109 |\\n| [Azure/aistudio-copilot-sample](https://github.com/Azure/aistudio-copilot-sample) | 108 |\\n| [codefuse-ai/codefuse-chatbot](https://github.com/codefuse-ai/codefuse-chatbot) | 108 |\\n| [apirrone/Memento](https://github.com/apirrone/Memento) | 108 |\\n| [e-johnstonn/GPT-Doc-Summarizer](https://github.com/e-johnstonn/GPT-Doc-Summarizer) | 108 |\\n| [salesforce/BOLAA](https://github.com/salesforce/BOLAA) | 107 |\\n| [Erol444/gpt4-openai-api](https://github.com/Erol444/gpt4-openai-api) | 106 |\\n| [linjungz/chat-with-your-doc](https://github.com/linjungz/chat-with-your-doc) | 106 |\\n| [crosleythomas/MirrorGPT](https://github.com/crosleythomas/MirrorGPT) | 106 |\\n| [panaverse/learn-generative-ai](https://github.com/panaverse/learn-generative-ai) | 105 |\\n| [Azure/azure-sdk-tools](https://github.com/Azure/azure-sdk-tools) | 105 |\\n| [malywut/gpt\\\\_examples](https://github.com/malywut/gpt_examples) | 105 |\\n| [ritun16/chain-of-verification](https://github.com/ritun16/chain-of-verification) | 104 |\\n| [langchain-ai/langchain-benchmarks](https://github.com/langchain-ai/langchain-benchmarks) | 104 |\\n| [lightninglabs/LangChainBitcoin](https://github.com/lightninglabs/LangChainBitcoin) | 104 |\\n| [flepied/second-brain-agent](https://github.com/flepied/second-brain-agent) | 103 |\\n| [llmapp/openai.mini](https://github.com/llmapp/openai.mini) | 102 |\\n| [gimlet-ai/tddGPT](https://github.com/gimlet-ai/tddGPT) | 102 |\\n| [jlonge4/gpt\\\\_chatwithPDF](https://github.com/jlonge4/gpt_chatwithPDF) | 102 |\\n| [agentification/RAFA\\\\_code](https://github.com/agentification/RAFA_code) | 101 |\\n| [pacman100/DHS-LLM-Workshop](https://github.com/pacman100/DHS-LLM-Workshop) | 101 |\\n| [aws-samples/private-llm-qa-bot](https://github.com/aws-samples/private-llm-qa-bot) | 101 |\\n\\n_Generated by [github-dependents-info](https://github.com/nvuillam/github-dependents-info)\\n_\\n\\n`github-dependents-info --repo \"langchain-ai/langchain\" --markdownfile dependents.md --minstars 100 --sort stars`\\n\\n[Edit this page](https://github.com/langchain-ai/langchain/edit/master/docs/docs/additional_resources/dependents.mdx)\\n\\n* * *\\n\\n#### Was this page helpful?\\n\\n \\n\\n#### You can also leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchain/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E)\\n.\\n\\nCommunity\\n\\n* [Discord](https://discord.gg/cU2adEyC7w)\\n \\n* [Twitter](https://twitter.com/LangChainAI)\\n \\n\\nGitHub\\n\\n* [Organization](https://github.com/langchain-ai)\\n \\n* [Python](https://github.com/langchain-ai/langchain)\\n \\n* [JS/TS](https://github.com/langchain-ai/langchainjs)\\n \\n\\nMore\\n\\n* [Homepage](https://langchain.com)\\n \\n* [Blog](https://blog.langchain.dev)\\n \\n* [YouTube](https://www.youtube.com/@LangChain)\\n \\n\\nCopyright © 2024 LangChain, Inc.', 'metadata': {'ogLocaleAlternate': [], 'sourceURL': 'https://python.langchain.com/v0.2/docs/additional_resources/dependents/', 'pageStatusCode': 200}}, {'markdown': '[Skip to main content](#__docusaurus_skipToContent_fallback)\\n\\nLangChain 0.2 is out! Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchain/discussions/21716)\\n. You can view the v0.1 docs [here](/v0.1/docs/get_started/introduction/)\\n.\\n\\n[![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark.png)![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark-dark.png)](/v0.2/)\\n[Integrations](/v0.2/docs/integrations/platforms/)\\n[API Reference](https://api.python.langchain.com)\\n\\n[More](#)\\n\\n* [People](/v0.2/docs/people/)\\n \\n* [Contributing](/v0.2/docs/contributing/)\\n \\n* [Templates](/v0.2/docs/templates/)\\n \\n* [Cookbooks](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)\\n \\n* [3rd party tutorials](/v0.2/docs/additional_resources/tutorials/)\\n \\n* [YouTube](/v0.2/docs/additional_resources/youtube/)\\n \\n* [arXiv](/v0.2/docs/additional_resources/arxiv_references/)\\n \\n\\n[v0.2](#)\\n\\n* [v0.2](/v0.2/docs/introduction/)\\n \\n* [v0.1](https://python.langchain.com/v0.1/docs/get_started/introduction)\\n \\n\\n[🦜️🔗](#)\\n\\n* [LangSmith](https://smith.langchain.com)\\n \\n* [LangSmith Docs](https://docs.smith.langchain.com/)\\n \\n* [LangServe GitHub](https://github.com/langchain-ai/langserve)\\n \\n* [Templates GitHub](https://github.com/langchain-ai/langchain/tree/master/templates)\\n \\n* [Templates Hub](https://templates.langchain.com)\\n \\n* [LangChain Hub](https://smith.langchain.com/hub)\\n \\n* [JS/TS Docs](https://js.langchain.com)\\n \\n\\n[💬](https://chat.langchain.com)\\n[](https://github.com/langchain-ai/langchain)\\n\\nSearch\\n\\nOn this page\\n\\n3rd Party Tutorials\\n===================\\n\\nTutorials[\\u200b](#tutorials \"Direct link to Tutorials\")\\n\\n----------------------------------------------------\\n\\n### [LangChain v 0.1 by LangChain.ai](https://www.youtube.com/playlist?list=PLfaIDFEXuae0gBSJ9T0w7cu7iJZbH3T31)\\n[\\u200b](#langchain-v-01-by-langchainai \"Direct link to langchain-v-01-by-langchainai\")\\n\\n### [Build with Langchain - Advanced by LangChain.ai](https://www.youtube.com/playlist?list=PLfaIDFEXuae06tclDATrMYY0idsTdLg9v)\\n[\\u200b](#build-with-langchain---advanced-by-langchainai \"Direct link to build-with-langchain---advanced-by-langchainai\")\\n\\n### [LangGraph by LangChain.ai](https://www.youtube.com/playlist?list=PLfaIDFEXuae16n2TWUkKq5PgJ0w6Pkwtg)\\n[\\u200b](#langgraph-by-langchainai \"Direct link to langgraph-by-langchainai\")\\n\\n### [by Greg Kamradt](https://www.youtube.com/playlist?list=PLqZXAkvF1bPNQER9mLmDbntNfSpzdDIU5)\\n[\\u200b](#by-greg-kamradt \"Direct link to by-greg-kamradt\")\\n\\n### [by Sam Witteveen](https://www.youtube.com/playlist?list=PL8motc6AQftk1Bs42EW45kwYbyJ4jOdiZ)\\n[\\u200b](#by-sam-witteveen \"Direct link to by-sam-witteveen\")\\n\\n### [by James Briggs](https://www.youtube.com/playlist?list=PLIUOU7oqGTLieV9uTIFMm6_4PXg-hlN6F)\\n[\\u200b](#by-james-briggs \"Direct link to by-james-briggs\")\\n\\n### [by Prompt Engineering](https://www.youtube.com/playlist?list=PLVEEucA9MYhOu89CX8H3MBZqayTbcCTMr)\\n[\\u200b](#by-prompt-engineering \"Direct link to by-prompt-engineering\")\\n\\n### [by Mayo Oshin](https://www.youtube.com/@chatwithdata/search?query=langchain)\\n[\\u200b](#by-mayo-oshin \"Direct link to by-mayo-oshin\")\\n\\n### [by 1 little Coder](https://www.youtube.com/playlist?list=PLpdmBGJ6ELUK-v0MK-t4wZmVEbxM5xk6L)\\n[\\u200b](#by-1-little-coder \"Direct link to by-1-little-coder\")\\n\\n### [by BobLin (Chinese language)](https://www.youtube.com/playlist?list=PLbd7ntv6PxC3QMFQvtWfk55p-Op_syO1C)\\n[\\u200b](#by-boblin-chinese-language \"Direct link to by-boblin-chinese-language\")\\n\\nCourses[\\u200b](#courses \"Direct link to Courses\")\\n\\n----------------------------------------------\\n\\n### Featured courses on Deeplearning.AI[\\u200b](#featured-courses-on-deeplearningai \"Direct link to Featured courses on Deeplearning.AI\")\\n\\n* [LangChain for LLM Application Development](https://www.deeplearning.ai/short-courses/langchain-for-llm-application-development/)\\n \\n* [LangChain Chat with Your Data](https://www.deeplearning.ai/short-courses/langchain-chat-with-your-data/)\\n \\n* [Functions, Tools and Agents with LangChain](https://www.deeplearning.ai/short-courses/functions-tools-agents-langchain/)\\n \\n* [Build LLM Apps with LangChain.js](https://www.deeplearning.ai/short-courses/build-llm-apps-with-langchain-js/)\\n \\n\\n### Online courses[\\u200b](#online-courses \"Direct link to Online courses\")\\n\\n* [Udemy](https://www.udemy.com/courses/search/?q=langchain)\\n \\n* [DataCamp](https://www.datacamp.com/courses/developing-llm-applications-with-langchain)\\n \\n* [Pluralsight](https://www.pluralsight.com/search?q=langchain)\\n \\n* [Coursera](https://www.coursera.org/search?query=langchain)\\n \\n* [Maven](https://maven.com/courses?query=langchain)\\n \\n* [Udacity](https://www.udacity.com/catalog/all/any-price/any-school/any-skill/any-difficulty/any-duration/any-type/relevance/page-1?searchValue=langchain)\\n \\n* [LinkedIn Learning](https://www.linkedin.com/search/results/learning/?keywords=langchain)\\n \\n* [edX](https://www.edx.org/search?q=langchain)\\n \\n* [freeCodeCamp](https://www.youtube.com/@freecodecamp/search?query=langchain)\\n \\n\\nShort Tutorials[\\u200b](#short-tutorials \"Direct link to Short Tutorials\")\\n\\n----------------------------------------------------------------------\\n\\n* [by Nicholas Renotte](https://youtu.be/MlK6SIjcjE8)\\n \\n* [by Patrick Loeber](https://youtu.be/LbT1yp6quS8)\\n \\n* [by Rabbitmetrics](https://youtu.be/aywZrzNaKjs)\\n \\n* [by Ivan Reznikov](https://medium.com/@ivanreznikov/langchain-101-course-updated-668f7b41d6cb)\\n \\n\\nBooks and Handbooks[\\u200b](#books-and-handbooks \"Direct link to Books and Handbooks\")\\n\\n----------------------------------------------------------------------------------\\n\\n* [Generative AI with LangChain](https://www.amazon.com/Generative-AI-LangChain-language-ChatGPT/dp/1835083463/ref=sr_1_1?crid=1GMOMH0G7GLR&keywords=generative+ai+with+langchain&qid=1703247181&sprefix=%2Caps%2C298&sr=8-1)\\n by [Ben Auffrath](https://www.amazon.com/stores/Ben-Auffarth/author/B08JQKSZ7D?ref=ap_rdr&store_ref=ap_rdr&isDramIntegrated=true&shoppingPortalEnabled=true)\\n , ©️ 2023 Packt Publishing\\n* [LangChain AI Handbook](https://www.pinecone.io/learn/langchain/)\\n By **James Briggs** and **Francisco Ingham**\\n* [LangChain Cheatsheet](https://pub.towardsai.net/langchain-cheatsheet-all-secrets-on-a-single-page-8be26b721cde)\\n by **Ivan Reznikov**\\n* [Dive into Langchain (Chinese language)](https://langchain.boblin.app/)\\n \\n\\n* * *\\n\\n[Edit this page](https://github.com/langchain-ai/langchain/edit/master/docs/docs/additional_resources/tutorials.mdx)\\n\\n* * *\\n\\n#### Was this page helpful?\\n\\n \\n\\n#### You can also leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchain/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E)\\n.\\n\\n* [Tutorials](#tutorials)\\n * [LangChain v 0.1 by LangChain.ai](#langchain-v-01-by-langchainai)\\n \\n * [Build with Langchain - Advanced by LangChain.ai](#build-with-langchain---advanced-by-langchainai)\\n \\n * [LangGraph by LangChain.ai](#langgraph-by-langchainai)\\n \\n * [by Greg Kamradt](#by-greg-kamradt)\\n \\n * [by Sam Witteveen](#by-sam-witteveen)\\n \\n * [by James Briggs](#by-james-briggs)\\n \\n * [by Prompt Engineering](#by-prompt-engineering)\\n \\n * [by Mayo Oshin](#by-mayo-oshin)\\n \\n * [by 1 little Coder](#by-1-little-coder)\\n \\n * [by BobLin (Chinese language)](#by-boblin-chinese-language)\\n \\n* [Courses](#courses)\\n * [Featured courses on Deeplearning.AI](#featured-courses-on-deeplearningai)\\n \\n * [Online courses](#online-courses)\\n \\n* [Short Tutorials](#short-tutorials)\\n \\n* [Books and Handbooks](#books-and-handbooks)\\n \\n\\nCommunity\\n\\n* [Discord](https://discord.gg/cU2adEyC7w)\\n \\n* [Twitter](https://twitter.com/LangChainAI)\\n \\n\\nGitHub\\n\\n* [Organization](https://github.com/langchain-ai)\\n \\n* [Python](https://github.com/langchain-ai/langchain)\\n \\n* [JS/TS](https://github.com/langchain-ai/langchainjs)\\n \\n\\nMore\\n\\n* [Homepage](https://langchain.com)\\n \\n* [Blog](https://blog.langchain.dev)\\n \\n* [YouTube](https://www.youtube.com/@LangChain)\\n \\n\\nCopyright © 2024 LangChain, Inc.', 'metadata': {'ogLocaleAlternate': [], 'sourceURL': 'https://python.langchain.com/v0.2/docs/additional_resources/tutorials/', 'pageStatusCode': 200}}, {'markdown': '[Skip to main content](#__docusaurus_skipToContent_fallback)\\n\\nLangChain 0.2 is out! Leave feedback on the v0.2 docs [here](https://github.com/langchain-ai/langchain/discussions/21716)\\n. You can view the v0.1 docs [here](/v0.1/docs/get_started/introduction/)\\n.\\n\\n[![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark.png)![🦜️🔗 LangChain](https://python.langchain.com/v0.2/img/brand/wordmark-dark.png)](/v0.2/)\\n[Integrations](/v0.2/docs/integrations/platforms/)\\n[API Reference](https://api.python.langchain.com)\\n\\n[More](#)\\n\\n* [People](/v0.2/docs/people/)\\n \\n* [Contributing](/v0.2/docs/contributing/)\\n \\n* [Templates](/v0.2/docs/templates/)\\n \\n* [Cookbooks](https://github.com/langchain-ai/langchain/blob/master/cookbook/README.md)\\n \\n* [3rd party tutorials](/v0.2/docs/additional_resources/tutorials/)\\n \\n* [YouTube](/v0.2/docs/additional_resources/youtube/)\\n \\n* [arXiv](/v0.2/docs/additional_resources/arxiv_references/)\\n \\n\\n[v0.2](#)\\n\\n* [v0.2](/v0.2/docs/introduction/)\\n \\n* [v0.1](https://python.langchain.com/v0.1/docs/get_started/introduction)\\n \\n\\n[🦜️🔗](#)\\n\\n* [LangSmith](https://smith.langchain.com)\\n \\n* [LangSmith Docs](https://docs.smith.langchain.com/)\\n \\n* [LangServe GitHub](https://github.com/langchain-ai/langserve)\\n \\n* [Templates GitHub](https://github.com/langchain-ai/langchain/tree/master/templates)\\n \\n* [Templates Hub](https://templates.langchain.com)\\n \\n* [LangChain Hub](https://smith.langchain.com/hub)\\n \\n* [JS/TS Docs](https://js.langchain.com)\\n \\n\\n[💬](https://chat.langchain.com)\\n[](https://github.com/langchain-ai/langchain)\\n\\nSearch\\n\\nOn this page\\n\\nYouTube videos\\n==============\\n\\n\\\\[Updated 2024-05-16\\\\]\\n\\n### [Official LangChain YouTube channel](https://www.youtube.com/@LangChain)\\n[\\u200b](#official-langchain-youtube-channel \"Direct link to official-langchain-youtube-channel\")\\n\\n### [Tutorials on YouTube](/v0.2/docs/additional_resources/tutorials/#tutorials)\\n[\\u200b](#tutorials-on-youtube \"Direct link to tutorials-on-youtube\")\\n\\nVideos (sorted by views)[\\u200b](#videos-sorted-by-views \"Direct link to Videos (sorted by views)\")\\n\\n-----------------------------------------------------------------------------------------------\\n\\nOnly videos with 40K+ views:\\n\\n* [Using `ChatGPT` with YOUR OWN Data. This is magical. (LangChain `OpenAI API`)](https://youtu.be/9AXP7tCI9PI)\\n \\n* [Chat with Multiple `PDFs` | LangChain App Tutorial in Python (Free LLMs and Embeddings)](https://youtu.be/dXxQ0LR-3Hg?si=pjXKhsHRzn10vOqX)\\n \\n* [`Hugging Face` + Langchain in 5 mins | Access 200k+ FREE AI models for your AI apps](https://youtu.be/_j7JEDWuqLE?si=psimQscN3qo2dOa9)\\n \\n* [LangChain Crash Course For Beginners | LangChain Tutorial](https://youtu.be/nAmC7SoVLd8?si=qJdvyG5-rnjqfdj1)\\n \\n* [Vector Embeddings Tutorial – Code Your Own AI Assistant with GPT-4 API + LangChain + NLP](https://youtu.be/yfHHvmaMkcA?si=UBP3yw50cLm3a2nj)\\n \\n* [Development with Large Language Models Tutorial – `OpenAI`, Langchain, Agents, `Chroma`](https://youtu.be/xZDB1naRUlk?si=v8J1q6oFHRyTkf7Y)\\n \\n* [Langchain: `PDF` Chat App (GUI) | ChatGPT for Your PDF FILES | Step-by-Step Tutorial](https://youtu.be/RIWbalZ7sTo?si=LbKsCcuyv0BtnrTY)\\n \\n* [Vector Search `RAG` Tutorial – Combine Your Data with LLMs with Advanced Search](https://youtu.be/JEBDfGqrAUA?si=pD7oxpfwWeJCxfBt)\\n \\n* [LangChain Crash Course for Beginners](https://youtu.be/lG7Uxts9SXs?si=Yte4S5afN7KNCw0F)\\n \\n* [Learn `RAG` From Scratch – Python AI Tutorial from a LangChain Engineer](https://youtu.be/sVcwVQRHIc8?si=_LN4g0vOgSdtlB3S)\\n \\n* [`Llama 2` in LangChain — FIRST Open Source Conversational Agent!](https://youtu.be/6iHVJyX2e50?si=rtq1maPrzWKHbwVV)\\n \\n* [LangChain Tutorial for Beginners | Generative AI Series](https://youtu.be/cQUUkZnyoD0?si=KYz-bvcocdqGh9f_)\\n \\n* [Chatbots with `RAG`: LangChain Full Walkthrough](https://youtu.be/LhnCsygAvzY?si=yS7T98VLfcWdkDek)\\n \\n* [LangChain Explained In 15 Minutes - A MUST Learn For Python Programmers](https://youtu.be/mrjq3lFz23s?si=wkQGcSKUJjuiiEPf)\\n \\n* [LLM Project | End to End LLM Project Using Langchain, `OpenAI` in Finance Domain](https://youtu.be/MoqgmWV1fm8?si=oVl-5kJVgd3a07Y_)\\n \\n* [What is LangChain?](https://youtu.be/1bUy-1hGZpI?si=NZ0D51VM5y-DhjGe)\\n \\n* [`RAG` + Langchain Python Project: Easy AI/Chat For Your Doc](https://youtu.be/tcqEUSNCn8I?si=RLcWPBVLIErRqdmU)\\n \\n* [Getting Started With LangChain In 20 Minutes- Build Celebrity Search Application](https://youtu.be/_FpT1cwcSLg?si=X9qVazlXYucN_JBP)\\n \\n* [LangChain GEN AI Tutorial – 6 End-to-End Projects using OpenAI, Google `Gemini Pro`, `LLAMA2`](https://youtu.be/x0AnCE9SE4A?si=_92gJYm7kb-V2bi0)\\n \\n* [Complete Langchain GEN AI Crash Course With 6 End To End LLM Projects With OPENAI, `LLAMA2`, `Gemini Pro`](https://youtu.be/aWKrL4z5H6w?si=NVLi7Yiq0ccE7xXE)\\n \\n* [AI Leader Reveals The Future of AI AGENTS (LangChain CEO)](https://youtu.be/9ZhbA0FHZYc?si=1r4P6kRvKVvEhRgE)\\n \\n* [Learn How To Query Pdf using Langchain Open AI in 5 min](https://youtu.be/5Ghv-F1wF_0?si=ZZRjrWfeiFOVrcvu)\\n \\n* [Reliable, fully local RAG agents with `LLaMA3`](https://youtu.be/-ROS6gfYIts?si=75CXA8W_BbnkIxcV)\\n \\n* [Learn `LangChain.js` - Build LLM apps with JavaScript and `OpenAI`](https://youtu.be/HSZ_uaif57o?si=Icj-RAhwMT-vHaYA)\\n \\n* [LLM Project | End to End LLM Project Using LangChain, Google Palm In Ed-Tech Industry](https://youtu.be/AjQPRomyd-k?si=eC3NT6kn02Lhpz-_)\\n \\n* [Chatbot Answering from Your Own Knowledge Base: Langchain, `ChatGPT`, `Pinecone`, and `Streamlit`: | Code](https://youtu.be/nAKhxQ3hcMA?si=9Zd_Nd_jiYhtml5w)\\n \\n* [LangChain is AMAZING | Quick Python Tutorial](https://youtu.be/I4mFqyqFkxg?si=aJ66qh558OfNAczD)\\n \\n* [`GirlfriendGPT` - AI girlfriend with LangChain](https://youtu.be/LiN3D1QZGQw?si=kZR-lnJwixeVrjmh)\\n \\n* [Using NEW `MPT-7B` in `Hugging Face` and LangChain](https://youtu.be/DXpk9K7DgMo?si=99JDpV_ueimwJhMi)\\n \\n* [LangChain - COMPLETE TUTORIAL - Basics to advanced concept!](https://youtu.be/a89vqgK-Qcs?si=0aVO2EOqsw7GE5e3)\\n \\n* [LangChain Agents: Simply Explained!](https://youtu.be/Xi9Ui-9qcPw?si=DCuG7nGx8dxcfhkx)\\n \\n* [Chat With Multiple `PDF` Documents With Langchain And Google `Gemini Pro`](https://youtu.be/uus5eLz6smA?si=YUwvHtaZsGeIl0WD)\\n \\n* [LLM Project | End to end LLM project Using Langchain, `Google Palm` in Retail Industry](https://youtu.be/4wtrl4hnPT8?si=_eOKPpdLfWu5UXMQ)\\n \\n* [Tutorial | Chat with any Website using Python and Langchain](https://youtu.be/bupx08ZgSFg?si=KRrjYZFnuLsstGwW)\\n \\n* [Prompt Engineering And LLM\\'s With LangChain In One Shot-Generative AI](https://youtu.be/t2bSApmPzU4?si=87vPQQtYEWTyu2Kx)\\n \\n* [Build a Custom Chatbot with `OpenAI`: `GPT-Index` & LangChain | Step-by-Step Tutorial](https://youtu.be/FIDv6nc4CgU?si=gR1u3DUG9lvzBIKK)\\n \\n* [Search Your `PDF` App using Langchain, `ChromaDB`, and Open Source LLM: No OpenAI API (Runs on CPU)](https://youtu.be/rIV1EseKwU4?si=UxZEoXSiPai8fXgl)\\n \\n* [Building a `RAG` application from scratch using Python, LangChain, and the `OpenAI API`](https://youtu.be/BrsocJb-fAo?si=hvkh9iTGzJ-LnsX-)\\n \\n* [Function Calling via `ChatGPT API` - First Look With LangChain](https://youtu.be/0-zlUy7VUjg?si=Vc6LFseckEc6qvuk)\\n \\n* [Private GPT, free deployment! Langchain-Chachat helps you easily play with major mainstream AI models! | Zero Degree Commentary](https://youtu.be/3LLUyaHP-3I?si=AZumEeFXsvqaLl0f)\\n \\n* [Create a ChatGPT clone using `Streamlit` and LangChain](https://youtu.be/IaTiyQ2oYUQ?si=WbgsYmqPDnMidSUK)\\n \\n* [What\\'s next for AI agents ft. LangChain\\'s Harrison Chase](https://youtu.be/pBBe1pk8hf4?si=H4vdBF9nmkNZxiHt)\\n \\n* [`LangFlow`: Build Chatbots without Writing Code - LangChain](https://youtu.be/KJ-ux3hre4s?si=TJuDu4bAlva1myNL)\\n \\n* [Building a LangChain Custom Medical Agent with Memory](https://youtu.be/6UFtRwWnHws?si=wymYad26VgigRkHy)\\n \\n* [`Ollama` meets LangChain](https://youtu.be/k_1pOF1mj8k?si=RlBiCrmaR3s7SnMK)\\n \\n* [End To End LLM Langchain Project using `Pinecone` Vector Database](https://youtu.be/erUfLIi9OFM?si=aHpuHXdIEmAfS4eF)\\n \\n* [`LLaMA2` with LangChain - Basics | LangChain TUTORIAL](https://youtu.be/cIRzwSXB4Rc?si=FUs0OLVJpzKhut0h)\\n \\n* [Understanding `ReACT` with LangChain](https://youtu.be/Eug2clsLtFs?si=imgj534ggxlypS0d)\\n \\n\\n* * *\\n\\n\\\\[Updated 2024-05-16\\\\]\\n\\n[Edit this page](https://github.com/langchain-ai/langchain/edit/master/docs/docs/additional_resources/youtube.mdx)\\n\\n* * *\\n\\n#### Was this page helpful?\\n\\n \\n\\n#### You can also leave detailed feedback [on GitHub](https://github.com/langchain-ai/langchain/issues/new?assignees=&labels=03+-+Documentation&projects=&template=documentation.yml&title=DOC%3A+%3CPlease+write+a+comprehensive+title+after+the+%27DOC%3A+%27+prefix%3E)\\n.\\n\\n* [Official LangChain YouTube channel](#official-langchain-youtube-channel)\\n \\n* [Tutorials on YouTube](#tutorials-on-youtube)\\n \\n* [Videos (sorted by views)](#videos-sorted-by-views)\\n \\n\\nCommunity\\n\\n* [Discord](https://discord.gg/cU2adEyC7w)\\n \\n* [Twitter](https://twitter.com/LangChainAI)\\n \\n\\nGitHub\\n\\n* [Organization](https://github.com/langchain-ai)\\n \\n* [Python](https://github.com/langchain-ai/langchain)\\n \\n* [JS/TS](https://github.com/langchain-ai/langchainjs)\\n \\n\\nMore\\n\\n* [Homepage](https://langchain.com)\\n \\n* [Blog](https://blog.langchain.dev)\\n \\n* [YouTube](https://www.youtube.com/@LangChain)\\n \\n\\nCopyright © 2024 LangChain, Inc.', 'metadata': {'ogLocaleAlternate': [], 'sourceURL': 'https://python.langchain.com/v0.2/docs/additional_resources/youtube/', 'pageStatusCode': 200}}]\n", + "==================================================\n", + "\n", + "Initial Response:\n", + "Stop Reason: tool_use\n", + "Content: [TextBlock(text='Based on the crawl results, here are the most common topics related to LangChain, along with their counts:\\n\\n1. Tutorials and Courses (30+)\\n2. Integration with other tools/platforms (20+)\\n - OpenAI/ChatGPT (10+)\\n - Hugging Face (5+)\\n - Google (Gemini, PaLM) (5+)\\n - Llama models (5+)\\n3. RAG (Retrieval Augmented Generation) (10+)\\n4. PDF processing/chat (10+)\\n5. Agents and autonomous systems (8+)\\n6. Vector databases/embeddings (7+)\\n - Pinecone (2)\\n - Chroma (2)\\n7. Prompt engineering (5+)\\n8. LLM applications/projects (5+)\\n9. Conversational AI/Chatbots (5+)\\n10. Code-related applications (4+)\\n\\nLet me visualize this data for you using a bar chart.', type='text'), ToolUseBlock(id='toolu_01LRPwF6JRobktpyjHt5Dv5a', input={'code': \"import matplotlib.pyplot as plt\\n\\ntopics = [\\n 'Tutorials/Courses', 'Integrations', 'RAG', 'PDF processing', \\n 'Agents', 'Vector DBs', 'Prompt engineering', 'LLM projects', \\n 'Chatbots', 'Code applications'\\n]\\ncounts = [30, 20, 10, 10, 8, 7, 5, 5, 5, 4]\\n\\nplt.figure(figsize=(12, 6))\\nplt.bar(topics, counts)\\nplt.title('Most Common LangChain Topics')\\nplt.xlabel('Topics')\\nplt.ylabel('Approximate Count')\\nplt.xticks(rotation=45, ha='right')\\nplt.tight_layout()\\nplt.show()\"}, name='execute_python', type='tool_use')]\n", + "\n", + "Tool Used: execute_python\n", + "Tool Input: {'code': \"import matplotlib.pyplot as plt\\n\\ntopics = [\\n 'Tutorials/Courses', 'Integrations', 'RAG', 'PDF processing', \\n 'Agents', 'Vector DBs', 'Prompt engineering', 'LLM projects', \\n 'Chatbots', 'Code applications'\\n]\\ncounts = [30, 20, 10, 10, 8, 7, 5, 5, 5, 4]\\n\\nplt.figure(figsize=(12, 6))\\nplt.bar(topics, counts)\\nplt.title('Most Common LangChain Topics')\\nplt.xlabel('Topics')\\nplt.ylabel('Approximate Count')\\nplt.xticks(rotation=45, ha='right')\\nplt.tight_layout()\\nplt.show()\"}\n", + "Running code interpreter...\n", + "Tool Result: [Result(
)]\n", + "[Result(
)]\n" + ] + } + ], + "source": [ + "from e2b_code_interpreter import CodeInterpreter\n", + "\n", + "with CodeInterpreter(api_key=e2b_api_key) as code_interpreter:\n", + " code_interpreter_results = chat_with_claude(\n", + " code_interpreter,\n", + " \"Use python to identify the most common topics in the crawl results. For each topic, count the number of times it appears in the crawl results and plot them. Here is the crawl results: \" + str(cleaned_crawl_result),\n", + " )\n", + "print(code_interpreter_results)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "
\n" + ] + }, + { + "data": { + "image/png": "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Z059++23evXVV1W7dm3VqFFDDx48+EfPF177k2YH/GtbQECApMfBWHT65ptv5Ovrq/Xr16tDhw6qW7euatSoEa2/45/Ili2bjh8/Hinse9p+/+v/y5J07NgxlxkM/ypXrlwKCwuLdAvok5QtW1YjR47Unj17NG/ePB0+fFgLFy58hr8EAID/DYRSAADEUkmTJtW0adP07rvvOsOBJ6lXr55CQ0P18ccfu7RPmjRJDodDdevWlSTduHEj0rZFixaVJOdtQUmSJJEk3bp165lq7N+/v5IkSaJOnTo9ccaxkydPOmctq1evniRp8uTJLutMnDhRklS/fv1n+p3uUK9ePe3evdslbLt7964+++wzZc+e/W9vvYpu4T2CIvYA+umnn54pCHySjBkzqmDBgpozZ45Lr5stW7ZE6hFVrlw51alTR1988YWWLVsW6bkePnyofv36RbkGb29vORwOlx56p0+ffuLvcKd69erp0qVLWrRokbMtJCREU6ZMUdKkSVW5cmWX9ZctW6bz5887H+/evVs//fST85h7ksaNG8vLy0sjRoyIFH6F7+ObN29G6vH112MVAIC4IIGnCwAAAE/Xtm3b/7pOQECAqlatqsGDB+v06dMqUqSIvvvuOy1fvly9e/dWrly5JEkjRozQ1q1bVb9+fWXLlk1XrlzRJ598osyZMzsH9M6VK5dSpEih6dOnK1myZEqSJInKlCmjHDlyPPF358qVS/Pnz1eLFi2UP39+vfbaaypYsKAePnyoHTt26Ouvv1a7du0kSUWKFFHbtm312Wef6datW6pcubJ2796t2bNnq3HjxqpatWr0vGjRYMCAAVqwYIHq1q2rnj17KlWqVJo9e7ZOnTqlb775JtKYQ//Wl19+qXXr1kVq79Wrlxo0aKBvv/1WTZo0Uf369XXq1ClNnz5dBQoU+Me3co0aNUqNGjXSiy++qPbt2+vmzZv6+OOPVbBgwUjPOWfOHNWqVUtNmzZVQECAqlevriRJkuj48eNauHChLl68qPHjx0fp99evX18TJ05UnTp11Lp1a125ckVTp05V7ty5dfDgwX/0N0WHLl266NNPP1W7du20d+9eZc+eXUuWLNH27ds1efLkSOO25c6dWxUqVNAbb7yh4OBgTZ48WalTp1b//v2f+jty586twYMH67333lPFihXVtGlT+fj46Oeff1bGjBk1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eLCmTZum119/3bkfcuXKpY4dO+rXX39V06ZNtWbNGvZRDDEz3b17V926dVP69Omd12kbN26Un5+fVqxYoZ9++knJkydXmTJlnNv9dQw9xAyHw6ErV66oVatWqlWrltKnT6/27dtr5cqVql+/vrp06aIDBw6ofv36ateunfLly6d79+5p8uTJSpEihafLjzcinuM2btyoBAkSKGnSpCpRooS2b9+ur776Svnz59eLL74oX19fhYWFqWDBgkqcOLGHK8czMeD/Cw0Ndf67S5cuVrNmTUuRIoW9+eabtnPnTjMze/DggXOdixcvWpEiRaxPnz5urzW+iriPwv3xxx/WsGFDy58/v/n5+dkbb7xhixYtshs3bljBggVt0qRJ7i80HgsLC7OwsDCrXLmytWnTxtlmZnb79m3nemfOnLGSJUta06ZNPVJnfBLxuFmxYoXNmzfPfvjhBzMzu3v3rjVp0sTKly9v06ZNs2vXrtm1a9esYcOGNmTIEJsyZYplz57dTp486any44Xg4GCrW7eupUmTxpIlS2a//vqry/J79+65rFunTh2rW7eu89hCzNq/f7/5+fnZwIED7c6dO/bTTz9ZggQJbO3atU9c/9atWzZkyBBLlSqVHTlyxM3Vxj8Rz3ErV660GTNmOK/bbt68ae3atbMqVarYuHHj7MGDB3bx4kULCAiwwYMH25w5cyx79ux2+PBhT5UfbwQGBlqmTJnM29vbPv/88yeuc+fOHTt9+rTVqVPHihYtao8ePXJzlfFXnz59LHfu3JYgQQKbNm2ay7KHDx+6PB46dKjlyJHDzpw5484S462I7/V9+/a1dOnSWdq0aa1YsWL2wQcfuKx77949O3funNWvX9+KFStmISEh7i4X/wChFCJ5+eWXLV++fLZ+/XpbunSpZcqUyerXr2/Xr183M7PTp0/b1KlTrVixYtagQQPndnw4iFkRLzo3b95sS5YssYsXL5rZ42BqxYoVtnnzZucFzL1796xUqVL21VdfeaTe+Cr8OBg+fLglT57cvv/+e+eykJAQ5/K7d+9a8+bNbfLkyR6pMz56++23LWnSpPbCCy+Yw+Gwt99+28wefwh45ZVXrEiRIpYkSRLLnz+/5c2b18zMdu/ebTly5LDjx497svR4YfDgweZwOCx9+vRPDDLu3r1rH3/8sdWsWdOKFCni/JDwpLAe0efIkSPm7e1to0ePNrP/e71r1qxpgwYNsjfffNM++ugj5/rr1q2zxo0bW/bs2W3fvn0eqTm+evvtty1JkiRWoEABczgcNnDgQLt7965duXLF/vOf/1iePHksWbJklidPHitQoICZme3YscOyZ89ux44d83D1cVP48RIaGmrnzp2zYsWKWb58+ax27dq2YcMG53rh126TJ0+2cuXKWeXKlZ3nOD5Ux6zwfbR7925LkSKFZc2a1caNG2c3btxwWW5m9vXXX9vrr79uadKk4fzmJhE/Xx4+fNiKFi1q+/bts+3bt9uwYcMsa9asNnToUOc6s2fPtvLly9uLL77IMfQ/hNv34GLr1q367bfftG7dOmXLlk1ffPGFgoKC1LdvX6VKlUqhoaHy9fXV7t27VatWLY0ZM0YSg2m7Q/jr+9Zbb2nWrFmSpESJEmnQoEFq1aqVAgICJD0eA+zPP/9Uz549FRYWplatWnmq5HjHItyiUq1aNc2ePVvvv/++fHx8VKFCBeetsWamUaNGaf/+/Ro7dqwnS47TIp6Xjh07pk2bNmnz5s3KkiWLtmzZotatWysoKEhTp07Vl19+qRMnTmjHjh1KkyaNGjRoIEmaM2eO0qVLxyyjMcD+cktX165d1bRpUw0bNkzVq1fX8uXLVaJECefyR48eKUGCBMqcObPWrFmjBAkSKCQkxGViB0SvsLAwrV69WmFhYSpUqJCkx+9Fo0ePdk4CcOTIEf3+++86cOCAvvjiC+XOnVu1a9fWuHHjnLNTIWZEPMft379fP/74ozZu3KhixYpp8eLFeuONN3Tv3j29//77mjhxoq5evaq1a9cqY8aMqlOnjiRp0aJFypgxo3NmZUSfiPtn+fLlqlChgvbt26erV6+qdu3azmvoGjVqOM9j3bt3V7Zs2RQQECBvb2/OcW4Qvo9SpEihVatWadmyZVq4cKHu37+vHj16KEWKFM59GRgYqJCQEG3dulX58+f3cOXxQ/h1wowZM7RhwwZVrFhRxYoVk/R4chpfX1998skn8vLy0rBhw1S+fHk9evRI7dq14xj6X+LhUAyxzJYtW6xUqVJmZjZy5EhLmTKlrVu3zszMLl26ZPPmzbOwsDALDAx0bsO31DEr4jcEmzZtsjJlytjWrVvt2rVr1r17dytQoICNHj3arly5YmZmU6dOtbp16/INgZscPnzYunfvbidOnLCbN2+6LJs+fbo999xzVrhwYZsxY4adOXPGVq9ebZ07d7ZkyZLxLVsM+es3/qNGjbK2bdtax44dXc5Xy5cvtwQJEliPHj3szp07Ltts27bNunfvbilSpLD9+/e7pe74JOJ+OH36tJ06dcr5+P79+1arVi3LlCmTy2s/cuRIO3funPMx5zX3uH79ur311lvm7e1tmzZtsilTpljKlClt1apVZmYWFBRkb775pqVJk8Z5CxjXBTFr7969Lo/HjBljHTt2tE6dOrlcM8ydO9eSJk1qffr0sbNnz7pss3v3buvVq5f5+/tzjosBEfdD//79LVOmTPbOO+84b+M/ffq0FStWzGrXrm1r1qyxR48eWfny5e29995zbsc5LmaF76MrV67YzZs3Xa7hevXqZcWLF7eRI0c627/88ks7fvy43b9/3wPVxm/Xr1+3zp07W9q0aa1Ro0Yuyy5dumSjR4+2bNmy2VtvveWyjGPofwehVDz2pAN106ZNljFjRuvfv7+lTZvWVq9e7Vy2bNkya9y4sR09etTZxi177jNnzhzr1auX9e3b16W9X79+VqBAARszZozdu3fPjh49anPnznXuX8YjiDkhISFWqlQpczgcVq1aNWvbtq0tXLjQ5diaM2eOVa1a1by9vS1p0qSWK1cuq169uh08eNCDlcddL7/8srVs2dKlbdy4ceZwOKx48eLODwTh567ly5ebj4+PtW3b1oKCgpzbfPPNN1anTp1IYxsheg0cONAKFSpk/v7+1q9fP2dQGxwcbLVr17bnnnvOpk6dalWqVLGCBQtygekhN2/etN69e5vD4TBvb2/76aefzOz/riMWLlxoWbNmtT/++MOTZcYLr732mnXt2tWlbfjw4eZwOKxw4cJ26dIll2Xz5s2zFClSWKdOnVyWzZ8/35o3b845LoZNmDDBUqdObXv37nV+oRt+3Jw5c8bKli1rBQsWtLx581rBggUtODjYk+XGG+HXAMuWLbNy5cpZrly5rFSpUi7jE/Xu3dtKly5tr776qvXs2dMcDof99ttvnio5XnnS58vDhw9br169LGnSpDZ16lSXZZcuXbJBgwZZ48aN+Wz6P4pQKp6KeGE/YsQI+/TTT52P27VrZw6Hw+bMmeNsO3/+vBUrVsy6devm1jrxf+rXr28Oh8OqV6/uMuC82eNgqmDBgvbOO+/Y3bt3ne18gIt5s2fPtqFDh9ry5ctt/PjxlixZMnv11Vft3Xffdb4x3rlzx3bv3m3ffPON/fbbb5F6VCH63Lt3z3lRf+nSJec++OKLL8zhcNjo0aOdbeH/XbRokVWsWDFS746IIRWiR8TXeO7cuZYlSxabP3++TZw40XLkyGEtWrSwH3/80blOq1atrGzZsla/fn3GkHKToKAgO3v2rK1bt862bt3qbL97964NGzbMvLy8bMWKFWb2f/uiX79+VqFCBefYk4g5586dc57jIoaAn3zyiTkcDhs1apTLpBpmZp9//rnVrFkz0oc1znExKzg42Jo3b+4MOsKPl4jXZufPn7eZM2fa1KlTnV8i8mWie6xbt858fHxs/PjxNn36dBs+fLiz93S4ESNGOCdDOXDggAerjT8ivsdfvnzZJUw/ffq09ezZ0/LmzWvTp0932e7GjRuRru/wv4NQKh6KeKA2atTIihQpYnPmzLFr166ZmdmhQ4esevXqlixZMhs0aJD17t3bChYsaPXr13/icyD6Pe317dSpk2XKlMk+//zzSLcbde7c2Vq3bs2+cbMtW7ZY7ty5bffu3WZmdurUKfv000/N4XBYhQoVbOTIkQwg6yYRL/Q//vhjy5Ejh+3du9d5THz00UfmcDhs3LhxT71wCQ0N5Rhyg+3bt9tbb71ls2fPdrZt2rTJihQpYi+//LJt27bN2X7hwgXnPuHDWsw6cuSINW3a1AoXLmze3t7OXqDr16+30NBQe/DggfXu3du8vb1tyZIlZmb2zjvvWOLEibkFzA0izgA2Y8YMK168uH333XfOtrFjx5rD4bCxY8dGCqbCcY5zn6CgIMuePbsNGjTI2Rb+2ofPEBaxzYwvE90lNDTUectrRMuWLTNvb2+XmauDg4MjXXMjZkQ8Ft59910rWrSo5cyZ04oWLWrr1q2zsLAwO3PmjPXs2dPy5ctnn3322d8+B/53EErFY3379rX8+fPbhQsXnG3hFzzXrl2zwYMHW5UqVax169Y2cuRI5zp8Sx2zIr6+Z8+etYsXL9rly5edbS+//LLlz5/fZs6c6dIrysz4hsBD+vbta1WqVHHuj5YtW1ru3Lnt9ddft1q1apnD4bD33nsv0pTCiD5/PS/dvn3bsmfPbqVKlbJ9+/a5BFPe3t42YcIEjhMPCAsLs8OHD5ufn58lSJDAxo0b57I8PJhq1aqVy8yV4dsi5uzfv9/Sp09v3bp1sxUrVthvv/1mixcvtpw5c1qWLFlsyZIlFhYWZnfu3LF+/fqZr6+v1alTx5IkSWJ79uzxdPlxXsT//3/66Se7evWqFSxY0OrUqeMyi9sHH3xgXl5eNn78eLt165YnSo2XnnRtfO/ePWvZsqW9/PLLdv78eZdlP/30kzVr1szlGhzu8/DhQ3vxxRetffv2zrbwQLB///5WtWpVu3nzJu87HjJixAhLnTq1zZ4925YsWWLNmze35557zhlCHTt2zPr06WMpUqSwZcuWebhaRAdCqXjkr9++1K5d26ZMmWJmZrt27bIJEyZY3rx5rXLlys7puP86mB+BVMyK+OY3dOhQK1WqlKVNm9aqVKliEydOdC576aWXrECBAjZ79uxI3e95A405f/75p33xxRf22WefufTk2LRpk9WuXdsuX75sbdu2tXTp0jnHHbh27Zp9+umnzgGAEf0inpe2bNliv//+u5k9/pY6T548Vrx4cZdgasqUKeZwOGz+/PkeqTe+eVJYvnTpUsuQIYM1bNgw0rGxefNmS58+vQ0ZMsStdcZnBw8etMSJE9s777wT6T3k2rVr9vzzz1v+/Pnt5MmTZmZ269Yt5weCvw66jegXcZ8MGTLEkiZNanfu3LE//vjDihQpYjVr1nQJpsLH0Zs3b54nyo13Ir4HHT161Pbt2+e8TX/16tWWMGFCe+edd5zHz7Vr16xRo0ZWs2ZNrqs9aMyYMfbCCy/YL7/84tL+wQcfWNGiRRnfy03OnDnj8vjGjRtWsmRJl6FlzMx69OhhqVOndo7J+uuvv9rkyZPpXRhHEErFExEvaN588007cOCAtW/f3goVKmRvv/22lS5d2gICAmzChAlWrFgxq1SpUqTtCDtizl9f2xEjRliqVKns22+/tZkzZ9rbb79tPj4+NnToUOc6rVq1slSpUtmaNWvcXW68dODAAcuWLZuVLl3aUqdObbly5bLFixc7l1eqVMm8vLwsS5YsjDvgRhGPnQEDBlixYsXs888/d34gCAoKsty5c0cKpr7++mtuBXODiB+4bt68aYGBgc4LyMWLF1umTJnsP//5jzNIDLdv3z4uNN3k3Llz5nA4rE2bNs628OMkfB8cP37cOYtbuBs3bjhv+4d77N2719q1a+cy1tfTgql58+ZxjnODiO9BgwcPtvz581u2bNksT548NnjwYAsNDbXZs2dbhgwZrFSpUla6dGkrVaqUFS5cmHHy3CT89b127ZpLz7Sff/7ZKlSoYB06dHAJpnr16mV16tThlj03aNSokcvdOGaPxwPNli2b8xo7YgeJsmXL2muvvRbpebhe+N9HKBUPRHyzGzx4sBUsWNBOnjxpGzdutC5duliBAgXsq6++suPHj5uZ2YcffmgtW7bkYsZN/noxcuvWLatWrZrLfdJBQUE2bdo0S5o0qcs3n8OGDeNE7AYHDhywxIkT24ABA+zu3bu2YcMGy5Qpk9WvX985bseuXbssb968NnPmTM8WG08NHTrU0qRJY5s3b450W2tgYKDlyZPHSpUq5Zw1LBznuZgT8dw2duxYq1atmpUpU8Zq1KjhnJ4+YjAV3kM3Is5v7lGwYEErVKiQbd++PdJrHn6MvPzyy1a/fv1IE23APRYvXmwlS5a0okWLOm/pDw81/vjjDytatKjVqVPHVq1a5bId5zj3GDt2rKVLl84ZDDZv3tzSpk3rHG/yxx9/tM8//9x69+5t06ZNY1DzGDZ37lyXAOqbb76xfPnyWZYsWaxEiRI2ZcoUCw4OtlWrVlnFihUtd+7c1qRJE2vUqJElT56cMfLcZP369c4eaREnyqhYsaLVrFnT+Th8nTZt2kQaBwxxA6FUPLJ69Wp75ZVXXAbFNHt8z3u4a9eu2QsvvGBvvfWWu8uLl5o1a2YdO3Z0abtx44alTZvWxowZ49J+8+ZNa9SokfXp0yfShwY+uMWcP//809KkSWMvvfSSS3upUqXs+eefd47ZcefOHStbtqwNHDjQzOhZ6E7Hjx+3IkWK2Pr1683s8WwtP//8sw0ZMsQWLVpkZo+DqWTJkrmMHwH3GDRokKVNm9ZmzpxpmzZtskyZMlmhQoWcvWwWL15s2bJls1atWkXqxo+YFfG9o2TJkpYnTx7bvn27M1CMeB4LCAiwevXqub1GPLZw4UKrWLGi+fn52aZNm8zs8f4JDzX++OMPy5Ahg/Xu3duDVcYPp0+fdv47LCzM7t+/b3Xr1rVp06aZ2ePr7eTJkztnBwsODn5ibyiu3WLGjRs3LFmyZFaxYkW7du2a7dmzx1KkSGEjRoywlStXWrt27ax48eLWq1cvCw4Otv3799vHH39sjRs3tn79+jHcgptEfH+ZNGmSvfLKK/brr7+amdl3331n+fLls3bt2rls8+KLL1q/fv3cWifcg1Aqnpg9e7ZlzpzZ0qZNazt27DAz1zfDixcv2vz5861gwYIWEBDgbOeDdcw6dOiQM/2P+Fp36tTJmjZt6uy9Fq5du3bWuHFjt9YY3506dcpKlSplDRs2dE5VP2rUKHM4HM7bXtu2bWuLFi2ymTNnmsPhYIyVGPbXi/tr165ZgQIFbOLEibZr1y5r27atFSpUyEqWLGkOh8NmzZplZo8DeD4EuNfp06etRIkSzsBw5cqV5u/vb5988onLejNnzrTGjRtzG4sHROypUbJkSXv++eddgqnQ0FC7ePGi1a9f37nfuDaIWU87Dr777jsrX768VapUybZv3+5sD9+HFy5c4BwXwxo1amTvvfeeS1tQUJCVLl3aTpw4YZs2bbKkSZM6A6kHDx7Yxx9/bPv27fNEufHW0aNHLVeuXFazZk1bvHix9e/f32X5uHHjrEiRIvb5558723j/8YyQkBBbsmSJpUuXzrp3724nT560kJAQmzFjhuXKlcsKFChgLVu2tLJly1r+/PnpXRhHeQlxUlhYmMvj1157Ta1bt1ZISIi+/PJL3bx5U97e3s71jh49qp9//lm1a9fWihUrnM/hcDjcXnt88sILLyhRokSaMmWKihYtqtDQUElSlSpV9Ntvv2nGjBk6duyYJCkoKEinT59Wrly5PFlyvJM9e3bNmzdPDx8+1NixY9W5c2dNmjRJixcv1tdff60OHTooV65c6tatm6ZPny5J8vf393DVcVdYWJi8vB6/df300086deqUkiRJosqVK2v27NmqUKGCUqRIoTFjxmj37t2qX7++fv/9d5mZ/Pz85O3t7TzOEPNu3Lihc+fOqVatWlqzZo1atWqlDz74QG+88Ybu3LmjKVOmKCQkRO3atdPSpUvl5eUV6f0LMStBggQKCQmRJP38889Knjy52rVrp127djmPtylTpujUqVOqV6+eJHFtEIMinuO++eYbffrppxo+fLiuXbummjVr6t1335Wvr6/ef/997dq1S9LjfRgaGqoMGTJwjoth3bt3V//+/SVJ169flyQlTZpUadOmVePGjRUQEKApU6aoa9eukh6fA7/++msdOHDAYzXHNyEhIXr++ee1du1anTx5Ui1atNCJEydc1unXr5/y5cunL7/80tkWftwhZq1evVp//vmnJGnQoEEaOXKk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rVy5crZ06VIze9zz8O2337bXXnvNZVwCvqWOnSLeRgb3+PXXXy1z5sz22WefPXH53r17LXfu3JY9e3bLnDmz/fzzz26uMP75ay+nY8eOWdmyZS1Xrlx27tw5MzO7du2affzxx5Y6dWp7++23PVEmzPWc1bp1a3vuuefsiy++cA63YGa2YsUKK1CggJ09+//au/O4nNL3D+Cfp1UkNWIINRhKtjCTdQwxYxnKMhHDMNnSQhhFlrFkz5Js2UJEllEY+z5ZBhGikbEObbJUilJdvz/6daYs853vd3ie6PN+veYl5znnzPU8Ofdzn+vc9339qakwi5WHDx9KixYtZNiwYYW2F/ze9/f3F5VKJdOnTy+0LhGp18WLF8Xe3l7MzMzk0qVLIpK3jp6fn5/UqVNHXFxclH1f7hewn0B/h0mpIubmzZvSsmVLZUG/8PBwKV26tHTo0EGOHDkiInnTXqKioqR27dpvXCCT3q27d+/KJ598Ihs2bCi0vUOHDlKhQgXZvXu3MpXv3LlzvKGmYiv/BiA3N1du3boltWrVkp9//ll5PTk5Wbp06SKNGzd+47oQ7MgQ/SUsLExq164tcXFxyraXkyKZmZly+PDhQvvQuxcREaG0eTdv3pQWLVqIhYVFocTUkiVLRKVSyeLFizUZarGW/52SnZ0tnTp1krp168rcuXPlzz//lFu3bomdnZ20adOG04zU5MqVK1K9enU5duzYK21ZTk6O8ntYuHChaGtry7hx45iYUrOC18KFCxfemJiqV6+euLu7aypMeo8xKVUEbd68WYyNjSUqKkpERLZt2yYmJiZiZGQktWrVkjp16kidOnXE0dFROYZrEajX7du3pUKFCnLgwAER+au86bNnz6RmzZpSp04d2bt3b6FGnIkpKm4Ktks5OTkSHx8vFhYWsmPHDhH567p58uSJlCtX7pXywkT0l/zradmyZVK1alVlnaiCSdsTJ07IxYsXNRJfcVSwjbt8+bKoVCqZP3++sv3GjRuvJKaSkpJk27ZtTLarwd9VzMv//F+8eCEODg6iq6srVapUke7du0unTp2UB4vsX797GzZsEB0dHaXP/LrPPD09XRISEmTlypVibGzMog1q8qZ//xcvXpROnTq9kpiaN2+elC9fXubOnavOMOkDwDWlNOx16wd8++236N27N7Zs2YLMzEx069YNFy9exIQJ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r18fbdq0Qd26deHo6IgVK1Yo0/qIiIiIigompYiIiIjeQwYGBm98TVtbGwcOHMCePXtgbW2NgIAAWFpa4tatW2qMkIiIiOjvMSlFRERE9A4ZGRnBzMwMJ06cKLT9xIkTsLa2LrTt9OnTys/Z2dmIjIxErVq1XnveevXq4dChQ2/8/6pUKjRv3hyTJ0/GhQsXoKenh+3bt/+Ld0JERET0duloOgAiIiKiD93o0aPx008/oXr16rCxsUFQUBCioqKwYcOGQvstXrwYNWrUQK1atTB//nw8fvwYzs7Orz3n2LFjUbduXbi6usLFxQV6eno4cuQIHB0dcePGDRw6dAhff/01ypcvj99++w0PHjx4Y4KLiIiISBOYlCIiIiJ6x4YNG4aUlBSMGjUKSUlJsLa2xo4dO1CjRo1C+82cORMzZ85EVFQUPv30U+zYsQOmpqavPWfNmjWxf/9++Pj4wNbWFgYGBmjcuDF69eoFIyMjHD9+HAsWLEBqaiosLCwwd+5cdOjQQR1vl4iIiOgfYfU9IiIiIg3Lr7534cIF2NjYaDocIiIiIrXgmlJERERERERERKR2TEoREREREREREZHacfoeERERERERERGpHUdKERERERERERGR2jEpRUREREREREREasekFBERERERERERqR2TUkREREREREREpHZMShERERERERERkdoxKUVERERERERERGrHpBQREREREREREakdk1JERERERERERKR2TEoREREREREREZHa/R9REDnQU4pyKQAAAABJRU5ErkJggg==", + "text/plain": [ + "Result(
)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result = code_interpreter_results[0]\n", + "print(result)\n", + "\n", + "result" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/web-data-extraction-using-llms.mdx b/examples/web_data_extraction/web-data-extraction-using-llms.mdx similarity index 100% rename from examples/web-data-extraction-using-llms.mdx rename to examples/web_data_extraction/web-data-extraction-using-llms.mdx diff --git a/examples/web-data-rag--with-llama3.mdx b/examples/web_data_rag_with_llama3/web-data-rag--with-llama3.mdx similarity index 100% rename from examples/web-data-rag--with-llama3.mdx rename to examples/web_data_rag_with_llama3/web-data-rag--with-llama3.mdx