From be8b3433aaabb066558f1194361da2bad9ddaaec Mon Sep 17 00:00:00 2001 From: bracesproul Date: Tue, 26 Mar 2024 09:14:15 -0700 Subject: [PATCH] docs[minor]: Format --- docs/.eslintrc.js | 53 + docs/.gitignore | 1 + docs/.prettierignore | 7 + docs/docs/_templates/integration.mdx | 25 +- docs/docs/additional_resources/dependents.mdx | 1085 ++++++++--------- docs/docs/additional_resources/tutorials.mdx | 21 +- docs/docs/additional_resources/youtube.mdx | 11 +- docs/docs/changelog/langchain.mdx | 6 +- docs/docs/contributing/code.mdx | 23 +- docs/docs/contributing/documentation.mdx | 19 +- docs/docs/contributing/faq.mdx | 3 +- docs/docs/contributing/index.mdx | 3 +- docs/docs/contributing/integrations.mdx | 27 +- docs/docs/contributing/repo_structure.mdx | 5 +- docs/docs/contributing/testing.mdx | 9 +- .../expression_language/cookbook/index.mdx | 2 +- .../docs/expression_language/how_to/index.mdx | 2 +- docs/docs/get_started/installation.mdx | 15 +- docs/docs/get_started/introduction.mdx | 23 +- docs/docs/get_started/quickstart.mdx | 34 +- docs/docs/guides/debugging.md | 109 +- docs/docs/guides/deployments/index.mdx | 20 +- .../guides/deployments/template_repos.mdx | 4 +- .../guides/evaluation/comparison/index.mdx | 4 +- .../docs/guides/evaluation/examples/index.mdx | 3 +- docs/docs/guides/evaluation/index.mdx | 5 +- docs/docs/guides/evaluation/string/index.mdx | 3 +- .../guides/evaluation/trajectory/index.mdx | 2 +- docs/docs/guides/pydantic_compatibility.md | 21 +- .../guides/safety/constitutional_chain.mdx | 22 +- docs/docs/guides/safety/index.mdx | 2 +- .../guides/safety/logical_fallacy_chain.mdx | 10 +- docs/docs/guides/safety/moderation.mdx | 35 +- docs/docs/integrations/callbacks/llmonitor.md | 4 +- .../docs/integrations/platforms/anthropic.mdx | 4 +- docs/docs/integrations/platforms/aws.mdx | 99 +- docs/docs/integrations/platforms/google.mdx | 81 +- .../integrations/platforms/huggingface.mdx | 31 +- docs/docs/integrations/platforms/index.mdx | 1 - .../docs/integrations/platforms/microsoft.mdx | 80 +- docs/docs/integrations/platforms/openai.mdx | 29 +- .../providers/activeloop_deeplake.mdx | 4 +- docs/docs/integrations/providers/ai21.mdx | 6 +- .../docs/integrations/providers/ainetwork.mdx | 8 +- docs/docs/integrations/providers/airbyte.mdx | 3 +- docs/docs/integrations/providers/airtable.md | 15 +- .../integrations/providers/aleph_alpha.mdx | 5 +- .../integrations/providers/alibaba_cloud.mdx | 13 +- .../integrations/providers/analyticdb.mdx | 16 +- docs/docs/integrations/providers/annoy.mdx | 9 +- docs/docs/integrations/providers/anyscale.mdx | 6 +- .../integrations/providers/apache_doris.mdx | 8 +- docs/docs/integrations/providers/apify.mdx | 10 +- docs/docs/integrations/providers/arangodb.mdx | 4 +- docs/docs/integrations/providers/arcee.mdx | 12 +- docs/docs/integrations/providers/argilla.mdx | 7 +- docs/docs/integrations/providers/arxiv.mdx | 5 +- docs/docs/integrations/providers/astradb.mdx | 4 +- docs/docs/integrations/providers/atlas.mdx | 6 +- docs/docs/integrations/providers/awadb.md | 4 +- docs/docs/integrations/providers/azlyrics.mdx | 3 +- docs/docs/integrations/providers/bageldb.mdx | 7 +- docs/docs/integrations/providers/baichuan.mdx | 3 +- docs/docs/integrations/providers/baidu.mdx | 5 +- .../docs/integrations/providers/bananadev.mdx | 10 +- docs/docs/integrations/providers/baseten.md | 20 +- docs/docs/integrations/providers/beam.mdx | 4 +- .../integrations/providers/beautiful_soup.mdx | 6 +- docs/docs/integrations/providers/bilibili.mdx | 2 +- .../docs/integrations/providers/bittensor.mdx | 5 +- .../integrations/providers/blackboard.mdx | 12 +- .../integrations/providers/brave_search.mdx | 26 +- docs/docs/integrations/providers/breebs.md | 13 +- .../docs/integrations/providers/cassandra.mdx | 7 +- .../integrations/providers/cerebriumai.mdx | 9 +- .../docs/integrations/providers/chaindesk.mdx | 5 +- docs/docs/integrations/providers/chroma.mdx | 3 +- docs/docs/integrations/providers/clarifai.mdx | 10 +- .../integrations/providers/clickhouse.mdx | 10 +- .../integrations/providers/cloudflare.mdx | 8 +- docs/docs/integrations/providers/cnosdb.mdx | 27 +- docs/docs/integrations/providers/cohere.mdx | 20 +- .../providers/college_confidential.mdx | 3 +- .../docs/integrations/providers/confident.mdx | 4 +- .../integrations/providers/confluence.mdx | 6 +- docs/docs/integrations/providers/context.mdx | 5 +- .../integrations/providers/ctranslate2.mdx | 12 +- .../integrations/providers/dashvector.mdx | 7 +- .../docs/integrations/providers/databricks.md | 28 +- docs/docs/integrations/providers/datadog.mdx | 7 +- .../integrations/providers/datadog_logs.mdx | 2 +- .../integrations/providers/dataforseo.mdx | 5 +- .../docs/integrations/providers/deepinfra.mdx | 9 +- .../integrations/providers/deepsparse.mdx | 1 - docs/docs/integrations/providers/diffbot.mdx | 6 +- docs/docs/integrations/providers/dingo.mdx | 2 + docs/docs/integrations/providers/discord.mdx | 10 +- docs/docs/integrations/providers/docarray.mdx | 7 +- docs/docs/integrations/providers/doctran.mdx | 9 +- docs/docs/integrations/providers/docugami.mdx | 5 +- docs/docs/integrations/providers/duckdb.mdx | 2 +- docs/docs/integrations/providers/edenai.mdx | 26 +- .../integrations/providers/elasticsearch.mdx | 1 - .../integrations/providers/elevenlabs.mdx | 8 +- docs/docs/integrations/providers/epsilla.mdx | 2 +- docs/docs/integrations/providers/evernote.mdx | 2 +- docs/docs/integrations/providers/facebook.mdx | 26 +- docs/docs/integrations/providers/fiddler.md | 11 +- docs/docs/integrations/providers/figma.mdx | 4 +- docs/docs/integrations/providers/fireworks.md | 4 +- .../integrations/providers/forefrontai.mdx | 6 +- docs/docs/integrations/providers/git.mdx | 2 +- docs/docs/integrations/providers/gitbook.mdx | 2 +- docs/docs/integrations/providers/golden.mdx | 8 +- .../integrations/providers/google_serper.mdx | 5 +- docs/docs/integrations/providers/gooseai.mdx | 6 +- docs/docs/integrations/providers/gradient.mdx | 11 +- .../integrations/providers/graphsignal.mdx | 2 +- docs/docs/integrations/providers/grobid.mdx | 7 +- docs/docs/integrations/providers/groq.mdx | 9 +- .../docs/integrations/providers/gutenberg.mdx | 2 +- .../integrations/providers/hacker_news.mdx | 6 +- .../integrations/providers/hazy_research.mdx | 4 +- docs/docs/integrations/providers/hologres.mdx | 8 +- .../docs/integrations/providers/html2text.mdx | 2 +- docs/docs/integrations/providers/ibm.mdx | 11 +- docs/docs/integrations/providers/ifixit.mdx | 2 +- docs/docs/integrations/providers/imsdb.mdx | 5 +- .../integrations/providers/infinispanvs.mdx | 1 + docs/docs/integrations/providers/infinity.mdx | 6 +- docs/docs/integrations/providers/infino.mdx | 13 +- docs/docs/integrations/providers/jaguar.mdx | 3 - .../providers/javelin_ai_gateway.mdx | 10 +- docs/docs/integrations/providers/jina.mdx | 3 +- .../integrations/providers/johnsnowlabs.mdx | 39 +- docs/docs/integrations/providers/kdbai.mdx | 4 +- docs/docs/integrations/providers/kinetica.mdx | 1 - docs/docs/integrations/providers/konko.mdx | 15 +- .../integrations/providers/labelstudio.mdx | 6 +- .../providers/langchain_decorators.mdx | 100 +- docs/docs/integrations/providers/lantern.mdx | 4 +- docs/docs/integrations/providers/llamacpp.mdx | 9 +- .../docs/integrations/providers/llmonitor.mdx | 3 +- docs/docs/integrations/providers/marqo.md | 4 +- .../integrations/providers/mediawikidump.mdx | 7 +- .../integrations/providers/meilisearch.mdx | 10 +- docs/docs/integrations/providers/metal.mdx | 2 +- docs/docs/integrations/providers/milvus.mdx | 4 +- docs/docs/integrations/providers/minimax.mdx | 5 +- docs/docs/integrations/providers/mlflow.mdx | 4 +- .../providers/mlflow_ai_gateway.mdx | 12 +- docs/docs/integrations/providers/modal.mdx | 5 +- .../integrations/providers/modelscope.mdx | 6 +- .../providers/modern_treasury.mdx | 10 +- .../integrations/providers/mongodb_atlas.mdx | 15 +- .../integrations/providers/motherduck.mdx | 5 +- .../docs/integrations/providers/motorhead.mdx | 3 +- docs/docs/integrations/providers/myscale.mdx | 25 +- docs/docs/integrations/providers/neo4j.mdx | 13 +- docs/docs/integrations/providers/nlpcloud.mdx | 4 +- docs/docs/integrations/providers/notion.mdx | 6 +- docs/docs/integrations/providers/nuclia.mdx | 12 +- docs/docs/integrations/providers/nvidia.mdx | 20 +- docs/docs/integrations/providers/obsidian.mdx | 7 +- docs/docs/integrations/providers/oci.mdx | 5 +- docs/docs/integrations/providers/ollama.mdx | 13 +- .../providers/ontotext_graphdb.mdx | 3 +- .../integrations/providers/opensearch.mdx | 7 +- .../integrations/providers/openweathermap.mdx | 17 +- .../integrations/providers/optimum_intel.mdx | 6 +- docs/docs/integrations/providers/petals.mdx | 4 +- .../integrations/providers/pg_embedding.mdx | 1 - docs/docs/integrations/providers/pgvector.mdx | 6 +- docs/docs/integrations/providers/pinecone.mdx | 4 +- .../integrations/providers/portkey/index.md | 82 +- docs/docs/integrations/providers/predibase.md | 5 +- .../providers/predictionguard.mdx | 21 +- docs/docs/integrations/providers/premai.md | 56 +- .../integrations/providers/promptlayer.mdx | 11 +- docs/docs/integrations/providers/psychic.mdx | 15 +- docs/docs/integrations/providers/pubmed.md | 5 +- .../integrations/providers/pygmalionai.mdx | 6 +- docs/docs/integrations/providers/qdrant.mdx | 7 +- docs/docs/integrations/providers/reddit.mdx | 3 +- docs/docs/integrations/providers/redis.mdx | 24 +- .../integrations/providers/remembrall.mdx | 8 +- .../docs/integrations/providers/replicate.mdx | 5 +- docs/docs/integrations/providers/roam.mdx | 6 +- docs/docs/integrations/providers/robocorp.mdx | 5 +- docs/docs/integrations/providers/rockset.mdx | 8 +- docs/docs/integrations/providers/runhouse.mdx | 6 +- docs/docs/integrations/providers/rwkv.mdx | 8 +- .../integrations/providers/salute_devices.mdx | 2 +- .../docs/integrations/providers/searchapi.mdx | 12 +- docs/docs/integrations/providers/searx.mdx | 20 +- docs/docs/integrations/providers/semadb.mdx | 4 +- docs/docs/integrations/providers/serpapi.mdx | 2 + .../integrations/providers/shaleprotocol.md | 10 +- .../integrations/providers/singlestoredb.mdx | 4 +- docs/docs/integrations/providers/sklearn.mdx | 3 +- docs/docs/integrations/providers/slack.mdx | 6 +- docs/docs/integrations/providers/spacy.mdx | 7 +- docs/docs/integrations/providers/sparkllm.mdx | 9 +- docs/docs/integrations/providers/spreedly.mdx | 4 +- docs/docs/integrations/providers/sqlite.mdx | 8 +- .../integrations/providers/stackexchange.mdx | 11 +- .../docs/integrations/providers/starrocks.mdx | 7 +- .../integrations/providers/stochasticai.mdx | 6 +- .../docs/integrations/providers/streamlit.mdx | 9 +- docs/docs/integrations/providers/stripe.mdx | 3 +- docs/docs/integrations/providers/supabase.mdx | 9 +- .../integrations/providers/symblai_nebula.mdx | 1 + docs/docs/integrations/providers/telegram.mdx | 3 +- docs/docs/integrations/providers/tencent.mdx | 44 +- .../providers/tensorflow_datasets.mdx | 13 +- docs/docs/integrations/providers/tidb.mdx | 3 +- .../integrations/providers/tigergraph.mdx | 2 +- docs/docs/integrations/providers/tigris.mdx | 1 - .../integrations/providers/tomarkdown.mdx | 3 +- docs/docs/integrations/providers/trello.mdx | 6 +- docs/docs/integrations/providers/trubrics.mdx | 10 +- docs/docs/integrations/providers/trulens.mdx | 2 +- docs/docs/integrations/providers/twitter.mdx | 4 +- .../docs/integrations/providers/typesense.mdx | 7 +- .../integrations/providers/unstructured.mdx | 25 +- docs/docs/integrations/providers/upstash.mdx | 6 +- docs/docs/integrations/providers/usearch.mdx | 14 +- .../integrations/providers/vectara/index.mdx | 55 +- docs/docs/integrations/providers/vespa.mdx | 7 +- docs/docs/integrations/providers/voyageai.mdx | 4 +- docs/docs/integrations/providers/weather.mdx | 4 +- docs/docs/integrations/providers/weaviate.mdx | 8 +- docs/docs/integrations/providers/whatsapp.mdx | 5 +- .../docs/integrations/providers/wikipedia.mdx | 5 +- .../integrations/providers/wolfram_alpha.mdx | 9 +- docs/docs/integrations/providers/writer.mdx | 6 +- docs/docs/integrations/providers/xata.mdx | 13 +- .../integrations/providers/xinference.mdx | 30 +- docs/docs/integrations/providers/yandex.mdx | 4 +- docs/docs/integrations/providers/yeagerai.mdx | 20 +- docs/docs/integrations/providers/youtube.mdx | 4 +- docs/docs/integrations/providers/zep.mdx | 31 +- docs/docs/integrations/providers/zilliz.mdx | 4 +- docs/docs/integrations/stores/index.mdx | 2 +- docs/docs/langsmith/index.md | 1 - .../docs/modules/agents/agent_types/index.mdx | 18 +- docs/docs/modules/agents/concepts.mdx | 4 +- docs/docs/modules/agents/tools/toolkits.mdx | 2 +- docs/docs/modules/callbacks/index.mdx | 13 +- .../data_connection/document_loaders/csv.mdx | 7 +- .../document_loaders/file_directory.mdx | 26 +- .../data_connection/document_loaders/html.mdx | 9 +- .../document_loaders/index.mdx | 1 + .../data_connection/document_loaders/json.mdx | 54 +- .../document_loaders/markdown.mdx | 9 +- .../data_connection/document_loaders/pdf.mdx | 51 +- .../document_transformers/index.mdx | 27 +- docs/docs/modules/data_connection/index.mdx | 8 +- .../data_connection/retrievers/index.mdx | 27 +- .../data_connection/text_embedding/index.mdx | 10 +- .../data_connection/vectorstores/index.mdx | 10 +- docs/docs/modules/index.mdx | 11 + .../modules/memory/chat_messages/index.mdx | 2 +- docs/docs/modules/memory/index.mdx | 20 +- docs/docs/modules/memory/types/buffer.mdx | 9 +- .../modules/memory/types/buffer_window.mdx | 9 +- .../memory/types/entity_summary_memory.mdx | 17 +- docs/docs/modules/memory/types/index.mdx | 1 + docs/docs/modules/memory/types/summary.mdx | 13 +- .../types/vectorstore_retriever_memory.mdx | 8 +- .../model_io/chat/function_calling.mdx | 85 +- docs/docs/modules/model_io/concepts.mdx | 10 +- docs/docs/modules/model_io/index.mdx | 1 - docs/docs/modules/model_io/llms/index.mdx | 1 - .../modules/model_io/output_parsers/index.mdx | 31 +- .../prompts/example_selector_types/index.mdx | 4 +- docs/docs/modules/model_io/prompts/index.mdx | 1 + docs/docs/modules/model_io/quick_start.mdx | 15 +- docs/docs/packages.mdx | 3 +- docs/docs/people.mdx | 2 +- docs/docs/security.md | 19 +- .../question_answering/quickstart.mdx | 156 ++- docs/docusaurus.config.js | 17 +- docs/package.json | 3 +- docs/sidebars.js | 244 +++- docs/src/theme/ChatModelTabs.js | 39 +- docs/src/theme/CodeBlock/index.js | 2 +- docs/src/theme/Columns.js | 27 +- docs/src/theme/People.js | 66 +- 289 files changed, 2491 insertions(+), 2451 deletions(-) create mode 100644 docs/.eslintrc.js create mode 100644 docs/.prettierignore diff --git a/docs/.eslintrc.js b/docs/.eslintrc.js new file mode 100644 index 00000000000..1de3985e663 --- /dev/null +++ b/docs/.eslintrc.js @@ -0,0 +1,53 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @format + */ + +const OFF = 0; +const WARNING = 1; +const ERROR = 2; + +module.exports = { + root: true, + env: { + browser: true, + commonjs: true, + jest: true, + node: true, + }, + parser: "@babel/eslint-parser", + parserOptions: { + allowImportExportEverywhere: true, + }, + extends: ["airbnb", "prettier"], + plugins: ["react-hooks", "header"], + ignorePatterns: [ + "build", + "docs/api", + "node_modules", + "docs/_static", + "static", + ], + rules: { + // Ignore certain webpack alias because it can't be resolved + "import/no-unresolved": [ + ERROR, + { ignore: ["^@theme", "^@docusaurus", "^@generated"] }, + ], + "import/extensions": OFF, + "react/jsx-filename-extension": OFF, + "react-hooks/rules-of-hooks": ERROR, + "react/prop-types": OFF, // PropTypes aren't used much these days. + "react/function-component-definition": [ + WARNING, + { + namedComponents: "function-declaration", + unnamedComponents: "arrow-function", + }, + ], + }, +}; diff --git a/docs/.gitignore b/docs/.gitignore index 505adfc3ded..884377725f9 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1,2 +1,3 @@ /.quarto/ src/supabase.d.ts +.eslintcache \ No newline at end of file diff --git a/docs/.prettierignore b/docs/.prettierignore new file mode 100644 index 00000000000..96b946f4486 --- /dev/null +++ b/docs/.prettierignore @@ -0,0 +1,7 @@ +node_modules +build +.docusaurus +docs/api +docs/_static +static +quarto-1.3.450 \ No newline at end of file diff --git a/docs/docs/_templates/integration.mdx b/docs/docs/_templates/integration.mdx index 5e686ad3fc1..953c31412b2 100644 --- a/docs/docs/_templates/integration.mdx +++ b/docs/docs/_templates/integration.mdx @@ -1,31 +1,30 @@ -[comment: Please, a reference example here "docs/integrations/arxiv.md"]:: -[comment: Use this template to create a new .md file in "docs/integrations/"]:: +[comment: Please, a reference example here "docs/integrations/arxiv.md"]: : +[comment: Use this template to create a new .md file in "docs/integrations/"]: : # Title_REPLACE_ME -[comment: Only one Tile/H1 is allowed!]:: +[comment: Only one Tile/H1 is allowed!]: : -> -[comment: Description: After reading this description, a reader should decide if this integration is good enough to try/follow reading OR]:: -[comment: go to read the next integration doc. ]:: -[comment: Description should include a link to the source for follow reading.]:: +> [comment: Description: After reading this description, a reader should decide if this integration is good enough to try/follow reading OR]: : +> [comment: go to read the next integration doc. ]: : +> [comment: Description should include a link to the source for follow reading.]: : ## Installation and Setup -[comment: Installation and Setup: All necessary additional package installations and setups for Tokens, etc]:: +[comment: Installation and Setup: All necessary additional package installations and setups for Tokens, etc]: : ```bash pip install package_name_REPLACE_ME ``` -[comment: OR this text:]:: +[comment: OR this text:]: : There isn't any special setup for it. -[comment: The next H2/## sections with names of the integration modules, like "LLM", "Text Embedding Models", etc]:: -[comment: see "Modules" in the "index.html" page]:: -[comment: Each H2 section should include a link to an example(s) and a Python code with the import of the integration class]:: -[comment: Below are several example sections. Remove all unnecessary sections. Add all necessary sections not provided here.]:: +[comment: The next H2/## sections with names of the integration modules, like "LLM", "Text Embedding Models", etc]: : +[comment: see "Modules" in the "index.html" page]: : +[comment: Each H2 section should include a link to an example(s) and a Python code with the import of the integration class]: : +[comment: Below are several example sections. Remove all unnecessary sections. Add all necessary sections not provided here.]: : ## LLM diff --git a/docs/docs/additional_resources/dependents.mdx b/docs/docs/additional_resources/dependents.mdx index b19e05a85a3..7403a6c3e43 100644 --- a/docs/docs/additional_resources/dependents.mdx +++ b/docs/docs/additional_resources/dependents.mdx @@ -3,553 +3,550 @@ Dependents stats for `langchain-ai/langchain` [![](https://img.shields.io/static/v1?label=Used%20by&message=41717&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents) -[![](https://img.shields.io/static/v1?label=Used%20by%20(public)&message=538&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents) -[![](https://img.shields.io/static/v1?label=Used%20by%20(private)&message=41179&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents) - +[![]()](https://github.com/langchain-ai/langchain/network/dependents) +[![]()](https://github.com/langchain-ai/langchain/network/dependents) [update: `2023-12-08`; only dependent repositories with Stars > 100] - -| Repository | Stars | -| :-------- | -----: | -|[AntonOsika/gpt-engineer](https://github.com/AntonOsika/gpt-engineer) | 46514 | -|[imartinez/privateGPT](https://github.com/imartinez/privateGPT) | 44439 | -|[LAION-AI/Open-Assistant](https://github.com/LAION-AI/Open-Assistant) | 35906 | -|[hpcaitech/ColossalAI](https://github.com/hpcaitech/ColossalAI) | 35528 | -|[moymix/TaskMatrix](https://github.com/moymix/TaskMatrix) | 34342 | -|[geekan/MetaGPT](https://github.com/geekan/MetaGPT) | 31126 | -|[streamlit/streamlit](https://github.com/streamlit/streamlit) | 28911 | -|[reworkd/AgentGPT](https://github.com/reworkd/AgentGPT) | 27833 | -|[StanGirard/quivr](https://github.com/StanGirard/quivr) | 26032 | -|[OpenBB-finance/OpenBBTerminal](https://github.com/OpenBB-finance/OpenBBTerminal) | 24946 | -|[run-llama/llama_index](https://github.com/run-llama/llama_index) | 24859 | -|[jmorganca/ollama](https://github.com/jmorganca/ollama) | 20849 | -|[openai/chatgpt-retrieval-plugin](https://github.com/openai/chatgpt-retrieval-plugin) | 20249 | -|[chatchat-space/Langchain-Chatchat](https://github.com/chatchat-space/Langchain-Chatchat) | 19305 | -|[mindsdb/mindsdb](https://github.com/mindsdb/mindsdb) | 19172 | -|[PromtEngineer/localGPT](https://github.com/PromtEngineer/localGPT) | 17528 | -|[cube-js/cube](https://github.com/cube-js/cube) | 16575 | -|[mlflow/mlflow](https://github.com/mlflow/mlflow) | 16000 | -|[mudler/LocalAI](https://github.com/mudler/LocalAI) | 14067 | -|[logspace-ai/langflow](https://github.com/logspace-ai/langflow) | 13679 | -|[GaiZhenbiao/ChuanhuChatGPT](https://github.com/GaiZhenbiao/ChuanhuChatGPT) | 13648 | -|[arc53/DocsGPT](https://github.com/arc53/DocsGPT) | 13423 | -|[openai/evals](https://github.com/openai/evals) | 12649 | -|[airbytehq/airbyte](https://github.com/airbytehq/airbyte) | 12460 | -|[langgenius/dify](https://github.com/langgenius/dify) | 11859 | -|[databrickslabs/dolly](https://github.com/databrickslabs/dolly) | 10672 | -|[AIGC-Audio/AudioGPT](https://github.com/AIGC-Audio/AudioGPT) | 9437 | -|[langchain-ai/langchainjs](https://github.com/langchain-ai/langchainjs) | 9227 | -|[gventuri/pandas-ai](https://github.com/gventuri/pandas-ai) | 9203 | -|[aws/amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) | 9079 | -|[h2oai/h2ogpt](https://github.com/h2oai/h2ogpt) | 8945 | -|[PipedreamHQ/pipedream](https://github.com/PipedreamHQ/pipedream) | 7550 | -|[bentoml/OpenLLM](https://github.com/bentoml/OpenLLM) | 6957 | -|[THUDM/ChatGLM3](https://github.com/THUDM/ChatGLM3) | 6801 | -|[microsoft/promptflow](https://github.com/microsoft/promptflow) | 6776 | -|[cpacker/MemGPT](https://github.com/cpacker/MemGPT) | 6642 | -|[joshpxyne/gpt-migrate](https://github.com/joshpxyne/gpt-migrate) | 6482 | -|[zauberzeug/nicegui](https://github.com/zauberzeug/nicegui) | 6037 | -|[embedchain/embedchain](https://github.com/embedchain/embedchain) | 6023 | -|[mage-ai/mage-ai](https://github.com/mage-ai/mage-ai) | 6019 | -|[assafelovic/gpt-researcher](https://github.com/assafelovic/gpt-researcher) | 5936 | -|[sweepai/sweep](https://github.com/sweepai/sweep) | 5855 | -|[wenda-LLM/wenda](https://github.com/wenda-LLM/wenda) | 5766 | -|[zilliztech/GPTCache](https://github.com/zilliztech/GPTCache) | 5710 | -|[pdm-project/pdm](https://github.com/pdm-project/pdm) | 5665 | -|[GreyDGL/PentestGPT](https://github.com/GreyDGL/PentestGPT) | 5568 | -|[gkamradt/langchain-tutorials](https://github.com/gkamradt/langchain-tutorials) | 5507 | -|[Shaunwei/RealChar](https://github.com/Shaunwei/RealChar) | 5501 | -|[facebookresearch/llama-recipes](https://github.com/facebookresearch/llama-recipes) | 5477 | -|[serge-chat/serge](https://github.com/serge-chat/serge) | 5221 | -|[run-llama/rags](https://github.com/run-llama/rags) | 4916 | -|[openchatai/OpenChat](https://github.com/openchatai/OpenChat) | 4870 | -|[danswer-ai/danswer](https://github.com/danswer-ai/danswer) | 4774 | -|[langchain-ai/opengpts](https://github.com/langchain-ai/opengpts) | 4709 | -|[postgresml/postgresml](https://github.com/postgresml/postgresml) | 4639 | -|[MineDojo/Voyager](https://github.com/MineDojo/Voyager) | 4582 | -|[intel-analytics/BigDL](https://github.com/intel-analytics/BigDL) | 4581 | -|[yihong0618/xiaogpt](https://github.com/yihong0618/xiaogpt) | 4359 | -|[RayVentura/ShortGPT](https://github.com/RayVentura/ShortGPT) | 4357 | -|[Azure-Samples/azure-search-openai-demo](https://github.com/Azure-Samples/azure-search-openai-demo) | 4317 | -|[madawei2699/myGPTReader](https://github.com/madawei2699/myGPTReader) | 4289 | -|[apache/nifi](https://github.com/apache/nifi) | 4098 | -|[langchain-ai/chat-langchain](https://github.com/langchain-ai/chat-langchain) | 4091 | -|[aiwaves-cn/agents](https://github.com/aiwaves-cn/agents) | 4073 | -|[krishnaik06/The-Grand-Complete-Data-Science-Materials](https://github.com/krishnaik06/The-Grand-Complete-Data-Science-Materials) | 4065 | -|[khoj-ai/khoj](https://github.com/khoj-ai/khoj) | 4016 | -|[Azure/azure-sdk-for-python](https://github.com/Azure/azure-sdk-for-python) | 3941 | -|[PrefectHQ/marvin](https://github.com/PrefectHQ/marvin) | 3915 | -|[OpenBMB/ToolBench](https://github.com/OpenBMB/ToolBench) | 3799 | -|[marqo-ai/marqo](https://github.com/marqo-ai/marqo) | 3771 | -|[kyegomez/tree-of-thoughts](https://github.com/kyegomez/tree-of-thoughts) | 3688 | -|[Unstructured-IO/unstructured](https://github.com/Unstructured-IO/unstructured) | 3543 | -|[llm-workflow-engine/llm-workflow-engine](https://github.com/llm-workflow-engine/llm-workflow-engine) | 3515 | -|[shroominic/codeinterpreter-api](https://github.com/shroominic/codeinterpreter-api) | 3425 | -|[openchatai/OpenCopilot](https://github.com/openchatai/OpenCopilot) | 3418 | -|[josStorer/RWKV-Runner](https://github.com/josStorer/RWKV-Runner) | 3297 | -|[whitead/paper-qa](https://github.com/whitead/paper-qa) | 3280 | -|[homanp/superagent](https://github.com/homanp/superagent) | 3258 | -|[ParisNeo/lollms-webui](https://github.com/ParisNeo/lollms-webui) | 3199 | -|[OpenBMB/AgentVerse](https://github.com/OpenBMB/AgentVerse) | 3099 | -|[project-baize/baize-chatbot](https://github.com/project-baize/baize-chatbot) | 3090 | -|[OpenGVLab/InternGPT](https://github.com/OpenGVLab/InternGPT) | 2989 | -|[xlang-ai/OpenAgents](https://github.com/xlang-ai/OpenAgents) | 2825 | -|[dataelement/bisheng](https://github.com/dataelement/bisheng) | 2797 | -|[Mintplex-Labs/anything-llm](https://github.com/Mintplex-Labs/anything-llm) | 2784 | -|[OpenBMB/BMTools](https://github.com/OpenBMB/BMTools) | 2734 | -|[run-llama/llama-hub](https://github.com/run-llama/llama-hub) | 2721 | -|[SamurAIGPT/EmbedAI](https://github.com/SamurAIGPT/EmbedAI) | 2647 | -|[NVIDIA/NeMo-Guardrails](https://github.com/NVIDIA/NeMo-Guardrails) | 2637 | -|[X-D-Lab/LangChain-ChatGLM-Webui](https://github.com/X-D-Lab/LangChain-ChatGLM-Webui) | 2532 | -|[GerevAI/gerev](https://github.com/GerevAI/gerev) | 2517 | -|[keephq/keep](https://github.com/keephq/keep) | 2448 | -|[yanqiangmiffy/Chinese-LangChain](https://github.com/yanqiangmiffy/Chinese-LangChain) | 2397 | -|[OpenGVLab/Ask-Anything](https://github.com/OpenGVLab/Ask-Anything) | 2324 | -|[IntelligenzaArtificiale/Free-Auto-GPT](https://github.com/IntelligenzaArtificiale/Free-Auto-GPT) | 2241 | -|[YiVal/YiVal](https://github.com/YiVal/YiVal) | 2232 | -|[jupyterlab/jupyter-ai](https://github.com/jupyterlab/jupyter-ai) | 2189 | -|[Farama-Foundation/PettingZoo](https://github.com/Farama-Foundation/PettingZoo) | 2136 | -|[microsoft/TaskWeaver](https://github.com/microsoft/TaskWeaver) | 2126 | -|[hwchase17/notion-qa](https://github.com/hwchase17/notion-qa) | 2083 | -|[FlagOpen/FlagEmbedding](https://github.com/FlagOpen/FlagEmbedding) | 2053 | -|[paulpierre/RasaGPT](https://github.com/paulpierre/RasaGPT) | 1999 | -|[hegelai/prompttools](https://github.com/hegelai/prompttools) | 1984 | -|[mckinsey/vizro](https://github.com/mckinsey/vizro) | 1951 | -|[vocodedev/vocode-python](https://github.com/vocodedev/vocode-python) | 1868 | -|[dot-agent/openAMS](https://github.com/dot-agent/openAMS) | 1796 | -|[explodinggradients/ragas](https://github.com/explodinggradients/ragas) | 1766 | -|[AI-Citizen/SolidGPT](https://github.com/AI-Citizen/SolidGPT) | 1761 | -|[Kav-K/GPTDiscord](https://github.com/Kav-K/GPTDiscord) | 1696 | -|[run-llama/sec-insights](https://github.com/run-llama/sec-insights) | 1654 | -|[avinashkranjan/Amazing-Python-Scripts](https://github.com/avinashkranjan/Amazing-Python-Scripts) | 1635 | -|[microsoft/WhatTheHack](https://github.com/microsoft/WhatTheHack) | 1629 | -|[noahshinn/reflexion](https://github.com/noahshinn/reflexion) | 1625 | -|[psychic-api/psychic](https://github.com/psychic-api/psychic) | 1618 | -|[Forethought-Technologies/AutoChain](https://github.com/Forethought-Technologies/AutoChain) | 1611 | -|[pinterest/querybook](https://github.com/pinterest/querybook) | 1586 | -|[refuel-ai/autolabel](https://github.com/refuel-ai/autolabel) | 1553 | -|[jina-ai/langchain-serve](https://github.com/jina-ai/langchain-serve) | 1537 | -|[jina-ai/dev-gpt](https://github.com/jina-ai/dev-gpt) | 1522 | -|[agiresearch/OpenAGI](https://github.com/agiresearch/OpenAGI) | 1493 | -|[ttengwang/Caption-Anything](https://github.com/ttengwang/Caption-Anything) | 1484 | -|[greshake/llm-security](https://github.com/greshake/llm-security) | 1483 | -|[promptfoo/promptfoo](https://github.com/promptfoo/promptfoo) | 1480 | -|[milvus-io/bootcamp](https://github.com/milvus-io/bootcamp) | 1477 | -|[richardyc/Chrome-GPT](https://github.com/richardyc/Chrome-GPT) | 1475 | -|[melih-unsal/DemoGPT](https://github.com/melih-unsal/DemoGPT) | 1428 | -|[YORG-AI/Open-Assistant](https://github.com/YORG-AI/Open-Assistant) | 1419 | -|[101dotxyz/GPTeam](https://github.com/101dotxyz/GPTeam) | 1416 | -|[jina-ai/thinkgpt](https://github.com/jina-ai/thinkgpt) | 1408 | -|[mmz-001/knowledge_gpt](https://github.com/mmz-001/knowledge_gpt) | 1398 | -|[intel/intel-extension-for-transformers](https://github.com/intel/intel-extension-for-transformers) | 1387 | -|[Azure/azureml-examples](https://github.com/Azure/azureml-examples) | 1385 | -|[lunasec-io/lunasec](https://github.com/lunasec-io/lunasec) | 1367 | -|[eyurtsev/kor](https://github.com/eyurtsev/kor) | 1355 | -|[xusenlinzy/api-for-open-llm](https://github.com/xusenlinzy/api-for-open-llm) | 1325 | -|[griptape-ai/griptape](https://github.com/griptape-ai/griptape) | 1323 | -|[SuperDuperDB/superduperdb](https://github.com/SuperDuperDB/superduperdb) | 1290 | -|[cofactoryai/textbase](https://github.com/cofactoryai/textbase) | 1284 | -|[psychic-api/rag-stack](https://github.com/psychic-api/rag-stack) | 1260 | -|[filip-michalsky/SalesGPT](https://github.com/filip-michalsky/SalesGPT) | 1250 | -|[nod-ai/SHARK](https://github.com/nod-ai/SHARK) | 1237 | -|[pluralsh/plural](https://github.com/pluralsh/plural) | 1234 | -|[cheshire-cat-ai/core](https://github.com/cheshire-cat-ai/core) | 1194 | -|[LC1332/Chat-Haruhi-Suzumiya](https://github.com/LC1332/Chat-Haruhi-Suzumiya) | 1184 | -|[poe-platform/server-bot-quick-start](https://github.com/poe-platform/server-bot-quick-start) | 1182 | -|[microsoft/X-Decoder](https://github.com/microsoft/X-Decoder) | 1180 | -|[juncongmoo/chatllama](https://github.com/juncongmoo/chatllama) | 1171 | -|[visual-openllm/visual-openllm](https://github.com/visual-openllm/visual-openllm) | 1156 | -|[alejandro-ao/ask-multiple-pdfs](https://github.com/alejandro-ao/ask-multiple-pdfs) | 1153 | -|[ThousandBirdsInc/chidori](https://github.com/ThousandBirdsInc/chidori) | 1152 | -|[irgolic/AutoPR](https://github.com/irgolic/AutoPR) | 1137 | -|[SamurAIGPT/Camel-AutoGPT](https://github.com/SamurAIGPT/Camel-AutoGPT) | 1083 | -|[ray-project/llm-applications](https://github.com/ray-project/llm-applications) | 1080 | -|[run-llama/llama-lab](https://github.com/run-llama/llama-lab) | 1072 | -|[jiran214/GPT-vup](https://github.com/jiran214/GPT-vup) | 1041 | -|[MetaGLM/FinGLM](https://github.com/MetaGLM/FinGLM) | 1035 | -|[peterw/Chat-with-Github-Repo](https://github.com/peterw/Chat-with-Github-Repo) | 1020 | -|[Anil-matcha/ChatPDF](https://github.com/Anil-matcha/ChatPDF) | 991 | -|[langchain-ai/langserve](https://github.com/langchain-ai/langserve) | 983 | -|[THUDM/AgentTuning](https://github.com/THUDM/AgentTuning) | 976 | -|[rlancemartin/auto-evaluator](https://github.com/rlancemartin/auto-evaluator) | 975 | -|[codeacme17/examor](https://github.com/codeacme17/examor) | 964 | -|[all-in-aigc/gpts-works](https://github.com/all-in-aigc/gpts-works) | 946 | -|[Ikaros-521/AI-Vtuber](https://github.com/Ikaros-521/AI-Vtuber) | 946 | -|[microsoft/Llama-2-Onnx](https://github.com/microsoft/Llama-2-Onnx) | 898 | -|[cirediatpl/FigmaChain](https://github.com/cirediatpl/FigmaChain) | 895 | -|[ricklamers/shell-ai](https://github.com/ricklamers/shell-ai) | 893 | -|[modelscope/modelscope-agent](https://github.com/modelscope/modelscope-agent) | 893 | -|[seanpixel/Teenage-AGI](https://github.com/seanpixel/Teenage-AGI) | 886 | -|[ajndkr/lanarky](https://github.com/ajndkr/lanarky) | 880 | -|[kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference](https://github.com/kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference) | 872 | -|[corca-ai/EVAL](https://github.com/corca-ai/EVAL) | 846 | -|[hwchase17/chat-your-data](https://github.com/hwchase17/chat-your-data) | 841 | -|[kreneskyp/ix](https://github.com/kreneskyp/ix) | 821 | -|[Link-AGI/AutoAgents](https://github.com/Link-AGI/AutoAgents) | 820 | -|[truera/trulens](https://github.com/truera/trulens) | 794 | -|[Dataherald/dataherald](https://github.com/Dataherald/dataherald) | 788 | -|[sunlabuiuc/PyHealth](https://github.com/sunlabuiuc/PyHealth) | 783 | -|[jondurbin/airoboros](https://github.com/jondurbin/airoboros) | 783 | -|[pyspark-ai/pyspark-ai](https://github.com/pyspark-ai/pyspark-ai) | 782 | -|[confident-ai/deepeval](https://github.com/confident-ai/deepeval) | 780 | -|[billxbf/ReWOO](https://github.com/billxbf/ReWOO) | 777 | -|[langchain-ai/streamlit-agent](https://github.com/langchain-ai/streamlit-agent) | 776 | -|[akshata29/entaoai](https://github.com/akshata29/entaoai) | 771 | -|[LambdaLabsML/examples](https://github.com/LambdaLabsML/examples) | 770 | -|[getmetal/motorhead](https://github.com/getmetal/motorhead) | 768 | -|[Dicklesworthstone/swiss_army_llama](https://github.com/Dicklesworthstone/swiss_army_llama) | 757 | -|[ruoccofabrizio/azure-open-ai-embeddings-qna](https://github.com/ruoccofabrizio/azure-open-ai-embeddings-qna) | 757 | -|[msoedov/langcorn](https://github.com/msoedov/langcorn) | 754 | -|[e-johnstonn/BriefGPT](https://github.com/e-johnstonn/BriefGPT) | 753 | -|[microsoft/sample-app-aoai-chatGPT](https://github.com/microsoft/sample-app-aoai-chatGPT) | 749 | -|[explosion/spacy-llm](https://github.com/explosion/spacy-llm) | 731 | -|[MiuLab/Taiwan-LLM](https://github.com/MiuLab/Taiwan-LLM) | 716 | -|[whyiyhw/chatgpt-wechat](https://github.com/whyiyhw/chatgpt-wechat) | 702 | -|[Azure-Samples/openai](https://github.com/Azure-Samples/openai) | 692 | -|[iusztinpaul/hands-on-llms](https://github.com/iusztinpaul/hands-on-llms) | 687 | -|[safevideo/autollm](https://github.com/safevideo/autollm) | 682 | -|[OpenGenerativeAI/GenossGPT](https://github.com/OpenGenerativeAI/GenossGPT) | 669 | -|[NoDataFound/hackGPT](https://github.com/NoDataFound/hackGPT) | 663 | -|[AILab-CVC/GPT4Tools](https://github.com/AILab-CVC/GPT4Tools) | 662 | -|[langchain-ai/auto-evaluator](https://github.com/langchain-ai/auto-evaluator) | 657 | -|[yvann-ba/Robby-chatbot](https://github.com/yvann-ba/Robby-chatbot) | 639 | -|[alexanderatallah/window.ai](https://github.com/alexanderatallah/window.ai) | 635 | -|[amosjyng/langchain-visualizer](https://github.com/amosjyng/langchain-visualizer) | 630 | -|[microsoft/PodcastCopilot](https://github.com/microsoft/PodcastCopilot) | 621 | -|[aws-samples/aws-genai-llm-chatbot](https://github.com/aws-samples/aws-genai-llm-chatbot) | 616 | -|[NeumTry/NeumAI](https://github.com/NeumTry/NeumAI) | 605 | -|[namuan/dr-doc-search](https://github.com/namuan/dr-doc-search) | 599 | -|[plastic-labs/tutor-gpt](https://github.com/plastic-labs/tutor-gpt) | 595 | -|[marimo-team/marimo](https://github.com/marimo-team/marimo) | 591 | -|[yakami129/VirtualWife](https://github.com/yakami129/VirtualWife) | 586 | -|[xuwenhao/geektime-ai-course](https://github.com/xuwenhao/geektime-ai-course) | 584 | -|[jonra1993/fastapi-alembic-sqlmodel-async](https://github.com/jonra1993/fastapi-alembic-sqlmodel-async) | 573 | -|[dgarnitz/vectorflow](https://github.com/dgarnitz/vectorflow) | 568 | -|[yeagerai/yeagerai-agent](https://github.com/yeagerai/yeagerai-agent) | 564 | -|[daveebbelaar/langchain-experiments](https://github.com/daveebbelaar/langchain-experiments) | 563 | -|[traceloop/openllmetry](https://github.com/traceloop/openllmetry) | 559 | -|[Agenta-AI/agenta](https://github.com/Agenta-AI/agenta) | 546 | -|[michaelthwan/searchGPT](https://github.com/michaelthwan/searchGPT) | 545 | -|[jina-ai/agentchain](https://github.com/jina-ai/agentchain) | 544 | -|[mckaywrigley/repo-chat](https://github.com/mckaywrigley/repo-chat) | 533 | -|[marella/chatdocs](https://github.com/marella/chatdocs) | 532 | -|[opentensor/bittensor](https://github.com/opentensor/bittensor) | 532 | -|[DjangoPeng/openai-quickstart](https://github.com/DjangoPeng/openai-quickstart) | 527 | -|[freddyaboulton/gradio-tools](https://github.com/freddyaboulton/gradio-tools) | 517 | -|[sidhq/Multi-GPT](https://github.com/sidhq/Multi-GPT) | 515 | -|[alejandro-ao/langchain-ask-pdf](https://github.com/alejandro-ao/langchain-ask-pdf) | 514 | -|[sajjadium/ctf-archives](https://github.com/sajjadium/ctf-archives) | 507 | -|[continuum-llms/chatgpt-memory](https://github.com/continuum-llms/chatgpt-memory) | 502 | -|[llmOS/opencopilot](https://github.com/llmOS/opencopilot) | 495 | -|[steamship-core/steamship-langchain](https://github.com/steamship-core/steamship-langchain) | 494 | -|[mpaepper/content-chatbot](https://github.com/mpaepper/content-chatbot) | 493 | -|[langchain-ai/langchain-aiplugin](https://github.com/langchain-ai/langchain-aiplugin) | 492 | -|[logan-markewich/llama_index_starter_pack](https://github.com/logan-markewich/llama_index_starter_pack) | 483 | -|[datawhalechina/llm-universe](https://github.com/datawhalechina/llm-universe) | 475 | -|[leondz/garak](https://github.com/leondz/garak) | 464 | -|[RedisVentures/ArXivChatGuru](https://github.com/RedisVentures/ArXivChatGuru) | 461 | -|[Anil-matcha/Chatbase](https://github.com/Anil-matcha/Chatbase) | 455 | -|[Aiyu-awa/luna-ai](https://github.com/Aiyu-awa/luna-ai) | 450 | -|[DataDog/dd-trace-py](https://github.com/DataDog/dd-trace-py) | 450 | -|[Azure-Samples/miyagi](https://github.com/Azure-Samples/miyagi) | 449 | -|[poe-platform/poe-protocol](https://github.com/poe-platform/poe-protocol) | 447 | -|[onlyphantom/llm-python](https://github.com/onlyphantom/llm-python) | 446 | -|[junruxiong/IncarnaMind](https://github.com/junruxiong/IncarnaMind) | 441 | -|[CarperAI/OpenELM](https://github.com/CarperAI/OpenELM) | 441 | -|[daodao97/chatdoc](https://github.com/daodao97/chatdoc) | 437 | -|[showlab/VLog](https://github.com/showlab/VLog) | 436 | -|[wandb/weave](https://github.com/wandb/weave) | 420 | -|[QwenLM/Qwen-Agent](https://github.com/QwenLM/Qwen-Agent) | 419 | -|[huchenxucs/ChatDB](https://github.com/huchenxucs/ChatDB) | 416 | -|[jerlendds/osintbuddy](https://github.com/jerlendds/osintbuddy) | 411 | -|[monarch-initiative/ontogpt](https://github.com/monarch-initiative/ontogpt) | 408 | -|[mallorbc/Finetune_LLMs](https://github.com/mallorbc/Finetune_LLMs) | 406 | -|[JayZeeDesign/researcher-gpt](https://github.com/JayZeeDesign/researcher-gpt) | 405 | -|[rsaryev/talk-codebase](https://github.com/rsaryev/talk-codebase) | 401 | -|[langchain-ai/langsmith-cookbook](https://github.com/langchain-ai/langsmith-cookbook) | 398 | -|[mtenenholtz/chat-twitter](https://github.com/mtenenholtz/chat-twitter) | 398 | -|[morpheuslord/GPT_Vuln-analyzer](https://github.com/morpheuslord/GPT_Vuln-analyzer) | 391 | -|[MagnivOrg/prompt-layer-library](https://github.com/MagnivOrg/prompt-layer-library) | 387 | -|[JohnSnowLabs/langtest](https://github.com/JohnSnowLabs/langtest) | 384 | -|[mrwadams/attackgen](https://github.com/mrwadams/attackgen) | 381 | -|[codefuse-ai/Test-Agent](https://github.com/codefuse-ai/Test-Agent) | 380 | -|[personoids/personoids-lite](https://github.com/personoids/personoids-lite) | 379 | -|[mosaicml/examples](https://github.com/mosaicml/examples) | 378 | -|[steamship-packages/langchain-production-starter](https://github.com/steamship-packages/langchain-production-starter) | 370 | -|[FlagAI-Open/Aquila2](https://github.com/FlagAI-Open/Aquila2) | 365 | -|[Mintplex-Labs/vector-admin](https://github.com/Mintplex-Labs/vector-admin) | 365 | -|[NimbleBoxAI/ChainFury](https://github.com/NimbleBoxAI/ChainFury) | 357 | -|[BlackHC/llm-strategy](https://github.com/BlackHC/llm-strategy) | 354 | -|[lilacai/lilac](https://github.com/lilacai/lilac) | 352 | -|[preset-io/promptimize](https://github.com/preset-io/promptimize) | 351 | -|[yuanjie-ai/ChatLLM](https://github.com/yuanjie-ai/ChatLLM) | 347 | -|[andylokandy/gpt-4-search](https://github.com/andylokandy/gpt-4-search) | 346 | -|[zhoudaquan/ChatAnything](https://github.com/zhoudaquan/ChatAnything) | 343 | -|[rgomezcasas/dotfiles](https://github.com/rgomezcasas/dotfiles) | 343 | -|[tigerlab-ai/tiger](https://github.com/tigerlab-ai/tiger) | 342 | -|[HumanSignal/label-studio-ml-backend](https://github.com/HumanSignal/label-studio-ml-backend) | 334 | -|[nasa-petal/bidara](https://github.com/nasa-petal/bidara) | 334 | -|[momegas/megabots](https://github.com/momegas/megabots) | 334 | -|[Cheems-Seminar/grounded-segment-any-parts](https://github.com/Cheems-Seminar/grounded-segment-any-parts) | 330 | -|[CambioML/pykoi](https://github.com/CambioML/pykoi) | 326 | -|[Nuggt-dev/Nuggt](https://github.com/Nuggt-dev/Nuggt) | 326 | -|[wandb/edu](https://github.com/wandb/edu) | 326 | -|[Haste171/langchain-chatbot](https://github.com/Haste171/langchain-chatbot) | 324 | -|[sugarforever/LangChain-Tutorials](https://github.com/sugarforever/LangChain-Tutorials) | 322 | -|[liangwq/Chatglm_lora_multi-gpu](https://github.com/liangwq/Chatglm_lora_multi-gpu) | 321 | -|[ur-whitelab/chemcrow-public](https://github.com/ur-whitelab/chemcrow-public) | 320 | -|[itamargol/openai](https://github.com/itamargol/openai) | 318 | -|[gia-guar/JARVIS-ChatGPT](https://github.com/gia-guar/JARVIS-ChatGPT) | 304 | -|[SpecterOps/Nemesis](https://github.com/SpecterOps/Nemesis) | 302 | -|[facebookresearch/personal-timeline](https://github.com/facebookresearch/personal-timeline) | 302 | -|[hnawaz007/pythondataanalysis](https://github.com/hnawaz007/pythondataanalysis) | 301 | -|[Chainlit/cookbook](https://github.com/Chainlit/cookbook) | 300 | -|[airobotlab/KoChatGPT](https://github.com/airobotlab/KoChatGPT) | 300 | -|[GPT-Fathom/GPT-Fathom](https://github.com/GPT-Fathom/GPT-Fathom) | 299 | -|[kaarthik108/snowChat](https://github.com/kaarthik108/snowChat) | 299 | -|[kyegomez/swarms](https://github.com/kyegomez/swarms) | 296 | -|[LangStream/langstream](https://github.com/LangStream/langstream) | 295 | -|[genia-dev/GeniA](https://github.com/genia-dev/GeniA) | 294 | -|[shamspias/customizable-gpt-chatbot](https://github.com/shamspias/customizable-gpt-chatbot) | 291 | -|[TsinghuaDatabaseGroup/DB-GPT](https://github.com/TsinghuaDatabaseGroup/DB-GPT) | 290 | -|[conceptofmind/toolformer](https://github.com/conceptofmind/toolformer) | 283 | -|[sullivan-sean/chat-langchainjs](https://github.com/sullivan-sean/chat-langchainjs) | 283 | -|[AutoPackAI/beebot](https://github.com/AutoPackAI/beebot) | 282 | -|[pablomarin/GPT-Azure-Search-Engine](https://github.com/pablomarin/GPT-Azure-Search-Engine) | 282 | -|[gkamradt/LLMTest_NeedleInAHaystack](https://github.com/gkamradt/LLMTest_NeedleInAHaystack) | 280 | -|[gustavz/DataChad](https://github.com/gustavz/DataChad) | 280 | -|[Safiullah-Rahu/CSV-AI](https://github.com/Safiullah-Rahu/CSV-AI) | 278 | -|[hwchase17/chroma-langchain](https://github.com/hwchase17/chroma-langchain) | 275 | -|[AkshitIreddy/Interactive-LLM-Powered-NPCs](https://github.com/AkshitIreddy/Interactive-LLM-Powered-NPCs) | 268 | -|[ennucore/clippinator](https://github.com/ennucore/clippinator) | 267 | -|[artitw/text2text](https://github.com/artitw/text2text) | 264 | -|[anarchy-ai/LLM-VM](https://github.com/anarchy-ai/LLM-VM) | 263 | -|[wpydcr/LLM-Kit](https://github.com/wpydcr/LLM-Kit) | 262 | -|[streamlit/llm-examples](https://github.com/streamlit/llm-examples) | 262 | -|[paolorechia/learn-langchain](https://github.com/paolorechia/learn-langchain) | 262 | -|[yym68686/ChatGPT-Telegram-Bot](https://github.com/yym68686/ChatGPT-Telegram-Bot) | 261 | -|[PradipNichite/Youtube-Tutorials](https://github.com/PradipNichite/Youtube-Tutorials) | 259 | -|[radi-cho/datasetGPT](https://github.com/radi-cho/datasetGPT) | 259 | -|[ur-whitelab/exmol](https://github.com/ur-whitelab/exmol) | 259 | -|[ml6team/fondant](https://github.com/ml6team/fondant) | 254 | -|[bborn/howdoi.ai](https://github.com/bborn/howdoi.ai) | 254 | -|[rahulnyk/knowledge_graph](https://github.com/rahulnyk/knowledge_graph) | 253 | -|[recalign/RecAlign](https://github.com/recalign/RecAlign) | 248 | -|[hwchase17/langchain-streamlit-template](https://github.com/hwchase17/langchain-streamlit-template) | 248 | -|[fetchai/uAgents](https://github.com/fetchai/uAgents) | 247 | -|[arthur-ai/bench](https://github.com/arthur-ai/bench) | 247 | -|[miaoshouai/miaoshouai-assistant](https://github.com/miaoshouai/miaoshouai-assistant) | 246 | -|[RoboCoachTechnologies/GPT-Synthesizer](https://github.com/RoboCoachTechnologies/GPT-Synthesizer) | 244 | -|[langchain-ai/web-explorer](https://github.com/langchain-ai/web-explorer) | 242 | -|[kaleido-lab/dolphin](https://github.com/kaleido-lab/dolphin) | 242 | -|[PJLab-ADG/DriveLikeAHuman](https://github.com/PJLab-ADG/DriveLikeAHuman) | 241 | -|[stepanogil/autonomous-hr-chatbot](https://github.com/stepanogil/autonomous-hr-chatbot) | 238 | -|[WongSaang/chatgpt-ui-server](https://github.com/WongSaang/chatgpt-ui-server) | 236 | -|[nexus-stc/stc](https://github.com/nexus-stc/stc) | 235 | -|[yeagerai/genworlds](https://github.com/yeagerai/genworlds) | 235 | -|[Gentopia-AI/Gentopia](https://github.com/Gentopia-AI/Gentopia) | 235 | -|[alphasecio/langchain-examples](https://github.com/alphasecio/langchain-examples) | 235 | -|[grumpyp/aixplora](https://github.com/grumpyp/aixplora) | 232 | -|[shaman-ai/agent-actors](https://github.com/shaman-ai/agent-actors) | 232 | -|[darrenburns/elia](https://github.com/darrenburns/elia) | 231 | -|[orgexyz/BlockAGI](https://github.com/orgexyz/BlockAGI) | 231 | -|[handrew/browserpilot](https://github.com/handrew/browserpilot) | 226 | -|[su77ungr/CASALIOY](https://github.com/su77ungr/CASALIOY) | 225 | -|[nicknochnack/LangchainDocuments](https://github.com/nicknochnack/LangchainDocuments) | 225 | -|[dbpunk-labs/octogen](https://github.com/dbpunk-labs/octogen) | 224 | -|[langchain-ai/weblangchain](https://github.com/langchain-ai/weblangchain) | 222 | -|[CL-lau/SQL-GPT](https://github.com/CL-lau/SQL-GPT) | 222 | -|[alvarosevilla95/autolang](https://github.com/alvarosevilla95/autolang) | 221 | -|[showlab/UniVTG](https://github.com/showlab/UniVTG) | 220 | -|[edreisMD/plugnplai](https://github.com/edreisMD/plugnplai) | 219 | -|[hardbyte/qabot](https://github.com/hardbyte/qabot) | 216 | -|[microsoft/azure-openai-in-a-day-workshop](https://github.com/microsoft/azure-openai-in-a-day-workshop) | 215 | -|[Azure-Samples/chat-with-your-data-solution-accelerator](https://github.com/Azure-Samples/chat-with-your-data-solution-accelerator) | 214 | -|[amadad/agentcy](https://github.com/amadad/agentcy) | 213 | -|[snexus/llm-search](https://github.com/snexus/llm-search) | 212 | -|[afaqueumer/DocQA](https://github.com/afaqueumer/DocQA) | 206 | -|[plchld/InsightFlow](https://github.com/plchld/InsightFlow) | 205 | -|[yasyf/compress-gpt](https://github.com/yasyf/compress-gpt) | 205 | -|[benthecoder/ClassGPT](https://github.com/benthecoder/ClassGPT) | 205 | -|[voxel51/voxelgpt](https://github.com/voxel51/voxelgpt) | 204 | -|[jbrukh/gpt-jargon](https://github.com/jbrukh/gpt-jargon) | 204 | -|[emarco177/ice_breaker](https://github.com/emarco177/ice_breaker) | 204 | -|[tencentmusic/supersonic](https://github.com/tencentmusic/supersonic) | 202 | -|[Azure-Samples/azure-search-power-skills](https://github.com/Azure-Samples/azure-search-power-skills) | 202 | -|[blob42/Instrukt](https://github.com/blob42/Instrukt) | 201 | -|[langchain-ai/langsmith-sdk](https://github.com/langchain-ai/langsmith-sdk) | 200 | -|[SamPink/dev-gpt](https://github.com/SamPink/dev-gpt) | 200 | -|[ju-bezdek/langchain-decorators](https://github.com/ju-bezdek/langchain-decorators) | 198 | -|[KMnO4-zx/huanhuan-chat](https://github.com/KMnO4-zx/huanhuan-chat) | 196 | -|[Azure-Samples/jp-azureopenai-samples](https://github.com/Azure-Samples/jp-azureopenai-samples) | 192 | -|[hongbo-miao/hongbomiao.com](https://github.com/hongbo-miao/hongbomiao.com) | 190 | -|[CakeCrusher/openplugin](https://github.com/CakeCrusher/openplugin) | 190 | -|[PaddlePaddle/ERNIE-Bot-SDK](https://github.com/PaddlePaddle/ERNIE-Bot-SDK) | 189 | -|[retr0reg/Ret2GPT](https://github.com/retr0reg/Ret2GPT) | 189 | -|[AmineDiro/cria](https://github.com/AmineDiro/cria) | 187 | -|[lancedb/vectordb-recipes](https://github.com/lancedb/vectordb-recipes) | 186 | -|[vaibkumr/prompt-optimizer](https://github.com/vaibkumr/prompt-optimizer) | 185 | -|[aws-ia/ecs-blueprints](https://github.com/aws-ia/ecs-blueprints) | 184 | -|[ethanyanjiali/minChatGPT](https://github.com/ethanyanjiali/minChatGPT) | 183 | -|[MuhammadMoinFaisal/LargeLanguageModelsProjects](https://github.com/MuhammadMoinFaisal/LargeLanguageModelsProjects) | 182 | -|[shauryr/S2QA](https://github.com/shauryr/S2QA) | 181 | -|[summarizepaper/summarizepaper](https://github.com/summarizepaper/summarizepaper) | 180 | -|[NomaDamas/RAGchain](https://github.com/NomaDamas/RAGchain) | 179 | -|[pnkvalavala/repochat](https://github.com/pnkvalavala/repochat) | 179 | -|[ibiscp/LLM-IMDB](https://github.com/ibiscp/LLM-IMDB) | 177 | -|[fengyuli-dev/multimedia-gpt](https://github.com/fengyuli-dev/multimedia-gpt) | 177 | -|[langchain-ai/text-split-explorer](https://github.com/langchain-ai/text-split-explorer) | 175 | -|[iMagist486/ElasticSearch-Langchain-Chatglm2](https://github.com/iMagist486/ElasticSearch-Langchain-Chatglm2) | 175 | -|[limaoyi1/Auto-PPT](https://github.com/limaoyi1/Auto-PPT) | 175 | -|[Open-Swarm-Net/GPT-Swarm](https://github.com/Open-Swarm-Net/GPT-Swarm) | 175 | -|[morpheuslord/HackBot](https://github.com/morpheuslord/HackBot) | 174 | -|[v7labs/benchllm](https://github.com/v7labs/benchllm) | 174 | -|[Coding-Crashkurse/Langchain-Full-Course](https://github.com/Coding-Crashkurse/Langchain-Full-Course) | 174 | -|[dongyh20/Octopus](https://github.com/dongyh20/Octopus) | 173 | -|[kimtth/azure-openai-llm-vector-langchain](https://github.com/kimtth/azure-openai-llm-vector-langchain) | 173 | -|[mayooear/private-chatbot-mpt30b-langchain](https://github.com/mayooear/private-chatbot-mpt30b-langchain) | 173 | -|[zilliztech/akcio](https://github.com/zilliztech/akcio) | 172 | -|[jmpaz/promptlib](https://github.com/jmpaz/promptlib) | 172 | -|[ccurme/yolopandas](https://github.com/ccurme/yolopandas) | 172 | -|[joaomdmoura/CrewAI](https://github.com/joaomdmoura/CrewAI) | 170 | -|[katanaml/llm-mistral-invoice-cpu](https://github.com/katanaml/llm-mistral-invoice-cpu) | 170 | -|[chakkaradeep/pyCodeAGI](https://github.com/chakkaradeep/pyCodeAGI) | 170 | -|[mudler/LocalAGI](https://github.com/mudler/LocalAGI) | 167 | -|[dssjon/biblos](https://github.com/dssjon/biblos) | 165 | -|[kjappelbaum/gptchem](https://github.com/kjappelbaum/gptchem) | 165 | -|[xxw1995/chatglm3-finetune](https://github.com/xxw1995/chatglm3-finetune) | 164 | -|[ArjanCodes/examples](https://github.com/ArjanCodes/examples) | 163 | -|[AIAnytime/Llama2-Medical-Chatbot](https://github.com/AIAnytime/Llama2-Medical-Chatbot) | 163 | -|[RCGAI/SimplyRetrieve](https://github.com/RCGAI/SimplyRetrieve) | 162 | -|[langchain-ai/langchain-teacher](https://github.com/langchain-ai/langchain-teacher) | 162 | -|[menloparklab/falcon-langchain](https://github.com/menloparklab/falcon-langchain) | 162 | -|[flurb18/AgentOoba](https://github.com/flurb18/AgentOoba) | 162 | -|[homanp/vercel-langchain](https://github.com/homanp/vercel-langchain) | 161 | -|[jiran214/langup-ai](https://github.com/jiran214/langup-ai) | 160 | -|[JorisdeJong123/7-Days-of-LangChain](https://github.com/JorisdeJong123/7-Days-of-LangChain) | 160 | -|[GoogleCloudPlatform/data-analytics-golden-demo](https://github.com/GoogleCloudPlatform/data-analytics-golden-demo) | 159 | -|[positive666/Prompt-Can-Anything](https://github.com/positive666/Prompt-Can-Anything) | 159 | -|[luisroque/large_laguage_models](https://github.com/luisroque/large_laguage_models) | 159 | -|[mlops-for-all/mlops-for-all.github.io](https://github.com/mlops-for-all/mlops-for-all.github.io) | 158 | -|[wandb/wandbot](https://github.com/wandb/wandbot) | 158 | -|[elastic/elasticsearch-labs](https://github.com/elastic/elasticsearch-labs) | 157 | -|[shroominic/funcchain](https://github.com/shroominic/funcchain) | 157 | -|[deeppavlov/dream](https://github.com/deeppavlov/dream) | 156 | -|[mluogh/eastworld](https://github.com/mluogh/eastworld) | 154 | -|[georgesung/llm_qlora](https://github.com/georgesung/llm_qlora) | 154 | -|[RUC-GSAI/YuLan-Rec](https://github.com/RUC-GSAI/YuLan-Rec) | 153 | -|[KylinC/ChatFinance](https://github.com/KylinC/ChatFinance) | 152 | -|[Dicklesworthstone/llama2_aided_tesseract](https://github.com/Dicklesworthstone/llama2_aided_tesseract) | 152 | -|[c0sogi/LLMChat](https://github.com/c0sogi/LLMChat) | 152 | -|[eunomia-bpf/GPTtrace](https://github.com/eunomia-bpf/GPTtrace) | 152 | -|[ErikBjare/gptme](https://github.com/ErikBjare/gptme) | 152 | -|[Klingefjord/chatgpt-telegram](https://github.com/Klingefjord/chatgpt-telegram) | 152 | -|[RoboCoachTechnologies/ROScribe](https://github.com/RoboCoachTechnologies/ROScribe) | 151 | -|[Aggregate-Intellect/sherpa](https://github.com/Aggregate-Intellect/sherpa) | 151 | -|[3Alan/DocsMind](https://github.com/3Alan/DocsMind) | 151 | -|[tangqiaoyu/ToolAlpaca](https://github.com/tangqiaoyu/ToolAlpaca) | 150 | -|[kulltc/chatgpt-sql](https://github.com/kulltc/chatgpt-sql) | 150 | -|[mallahyari/drqa](https://github.com/mallahyari/drqa) | 150 | -|[MedalCollector/Orator](https://github.com/MedalCollector/Orator) | 149 | -|[Teahouse-Studios/akari-bot](https://github.com/Teahouse-Studios/akari-bot) | 149 | -|[realminchoi/babyagi-ui](https://github.com/realminchoi/babyagi-ui) | 148 | -|[ssheng/BentoChain](https://github.com/ssheng/BentoChain) | 148 | -|[lmstudio-ai/examples](https://github.com/lmstudio-ai/examples) | 147 | -|[solana-labs/chatgpt-plugin](https://github.com/solana-labs/chatgpt-plugin) | 147 | -|[aurelio-labs/arxiv-bot](https://github.com/aurelio-labs/arxiv-bot) | 147 | -|[Jaseci-Labs/jaseci](https://github.com/Jaseci-Labs/jaseci) | 146 | -|[menloparklab/langchain-cohere-qdrant-doc-retrieval](https://github.com/menloparklab/langchain-cohere-qdrant-doc-retrieval) | 146 | -|[trancethehuman/entities-extraction-web-scraper](https://github.com/trancethehuman/entities-extraction-web-scraper) | 144 | -|[peterw/StoryStorm](https://github.com/peterw/StoryStorm) | 144 | -|[grumpyp/chroma-langchain-tutorial](https://github.com/grumpyp/chroma-langchain-tutorial) | 144 | -|[gh18l/CrawlGPT](https://github.com/gh18l/CrawlGPT) | 142 | -|[langchain-ai/langchain-aws-template](https://github.com/langchain-ai/langchain-aws-template) | 142 | -|[yasyf/summ](https://github.com/yasyf/summ) | 141 | -|[petehunt/langchain-github-bot](https://github.com/petehunt/langchain-github-bot) | 141 | -|[hirokidaichi/wanna](https://github.com/hirokidaichi/wanna) | 140 | -|[jina-ai/fastapi-serve](https://github.com/jina-ai/fastapi-serve) | 139 | -|[zenml-io/zenml-projects](https://github.com/zenml-io/zenml-projects) | 139 | -|[jlonge4/local_llama](https://github.com/jlonge4/local_llama) | 139 | -|[smyja/blackmaria](https://github.com/smyja/blackmaria) | 138 | -|[ChuloAI/BrainChulo](https://github.com/ChuloAI/BrainChulo) | 137 | -|[log1stics/voice-generator-webui](https://github.com/log1stics/voice-generator-webui) | 137 | -|[davila7/file-gpt](https://github.com/davila7/file-gpt) | 137 | -|[dcaribou/transfermarkt-datasets](https://github.com/dcaribou/transfermarkt-datasets) | 136 | -|[ciare-robotics/world-creator](https://github.com/ciare-robotics/world-creator) | 135 | -|[Undertone0809/promptulate](https://github.com/Undertone0809/promptulate) | 134 | -|[fixie-ai/fixie-examples](https://github.com/fixie-ai/fixie-examples) | 134 | -|[run-llama/ai-engineer-workshop](https://github.com/run-llama/ai-engineer-workshop) | 133 | -|[definitive-io/code-indexer-loop](https://github.com/definitive-io/code-indexer-loop) | 131 | -|[mortium91/langchain-assistant](https://github.com/mortium91/langchain-assistant) | 131 | -|[baidubce/bce-qianfan-sdk](https://github.com/baidubce/bce-qianfan-sdk) | 130 | -|[Ngonie-x/langchain_csv](https://github.com/Ngonie-x/langchain_csv) | 130 | -|[IvanIsCoding/ResuLLMe](https://github.com/IvanIsCoding/ResuLLMe) | 130 | -|[AnchoringAI/anchoring-ai](https://github.com/AnchoringAI/anchoring-ai) | 129 | -|[Azure/business-process-automation](https://github.com/Azure/business-process-automation) | 128 | -|[athina-ai/athina-sdk](https://github.com/athina-ai/athina-sdk) | 126 | -|[thunlp/ChatEval](https://github.com/thunlp/ChatEval) | 126 | -|[prof-frink-lab/slangchain](https://github.com/prof-frink-lab/slangchain) | 126 | -|[vietanhdev/pautobot](https://github.com/vietanhdev/pautobot) | 125 | -|[awslabs/generative-ai-cdk-constructs](https://github.com/awslabs/generative-ai-cdk-constructs) | 124 | -|[sdaaron/QueryGPT](https://github.com/sdaaron/QueryGPT) | 124 | -|[rabbitmetrics/langchain-13-min](https://github.com/rabbitmetrics/langchain-13-min) | 124 | -|[AutoLLM/AutoAgents](https://github.com/AutoLLM/AutoAgents) | 122 | -|[nicknochnack/Nopenai](https://github.com/nicknochnack/Nopenai) | 122 | -|[wombyz/HormoziGPT](https://github.com/wombyz/HormoziGPT) | 122 | -|[dotvignesh/PDFChat](https://github.com/dotvignesh/PDFChat) | 122 | -|[topoteretes/PromethAI-Backend](https://github.com/topoteretes/PromethAI-Backend) | 121 | -|[nftblackmagic/flask-langchain](https://github.com/nftblackmagic/flask-langchain) | 121 | -|[vishwasg217/finsight](https://github.com/vishwasg217/finsight) | 120 | -|[snap-stanford/MLAgentBench](https://github.com/snap-stanford/MLAgentBench) | 120 | -|[Azure/app-service-linux-docs](https://github.com/Azure/app-service-linux-docs) | 120 | -|[nyanp/chat2plot](https://github.com/nyanp/chat2plot) | 120 | -|[ant4g0nist/polar](https://github.com/ant4g0nist/polar) | 119 | -|[aws-samples/cdk-eks-blueprints-patterns](https://github.com/aws-samples/cdk-eks-blueprints-patterns) | 119 | -|[aws-samples/amazon-kendra-langchain-extensions](https://github.com/aws-samples/amazon-kendra-langchain-extensions) | 119 | -|[Xueheng-Li/SynologyChatbotGPT](https://github.com/Xueheng-Li/SynologyChatbotGPT) | 119 | -|[CodeAlchemyAI/ViLT-GPT](https://github.com/CodeAlchemyAI/ViLT-GPT) | 117 | -|[Lin-jun-xiang/docGPT-langchain](https://github.com/Lin-jun-xiang/docGPT-langchain) | 117 | -|[ademakdogan/ChatSQL](https://github.com/ademakdogan/ChatSQL) | 116 | -|[aniketmaurya/llm-inference](https://github.com/aniketmaurya/llm-inference) | 115 | -|[xuwenhao/mactalk-ai-course](https://github.com/xuwenhao/mactalk-ai-course) | 115 | -|[cmooredev/RepoReader](https://github.com/cmooredev/RepoReader) | 115 | -|[abi/autocommit](https://github.com/abi/autocommit) | 115 | -|[MIDORIBIN/langchain-gpt4free](https://github.com/MIDORIBIN/langchain-gpt4free) | 114 | -|[finaldie/auto-news](https://github.com/finaldie/auto-news) | 114 | -|[Anil-matcha/Youtube-to-chatbot](https://github.com/Anil-matcha/Youtube-to-chatbot) | 114 | -|[avrabyt/MemoryBot](https://github.com/avrabyt/MemoryBot) | 114 | -|[Capsize-Games/airunner](https://github.com/Capsize-Games/airunner) | 113 | -|[atisharma/llama_farm](https://github.com/atisharma/llama_farm) | 113 | -|[mbchang/data-driven-characters](https://github.com/mbchang/data-driven-characters) | 112 | -|[fiddler-labs/fiddler-auditor](https://github.com/fiddler-labs/fiddler-auditor) | 112 | -|[dirkjbreeuwer/gpt-automated-web-scraper](https://github.com/dirkjbreeuwer/gpt-automated-web-scraper) | 111 | -|[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 | -|[hwchase17/langchain-gradio-template](https://github.com/hwchase17/langchain-gradio-template) | 111 | -|[artas728/spelltest](https://github.com/artas728/spelltest) | 110 | -|[NVIDIA/GenerativeAIExamples](https://github.com/NVIDIA/GenerativeAIExamples) | 109 | -|[Azure/aistudio-copilot-sample](https://github.com/Azure/aistudio-copilot-sample) | 108 | -|[codefuse-ai/codefuse-chatbot](https://github.com/codefuse-ai/codefuse-chatbot) | 108 | -|[apirrone/Memento](https://github.com/apirrone/Memento) | 108 | -|[e-johnstonn/GPT-Doc-Summarizer](https://github.com/e-johnstonn/GPT-Doc-Summarizer) | 108 | -|[salesforce/BOLAA](https://github.com/salesforce/BOLAA) | 107 | -|[Erol444/gpt4-openai-api](https://github.com/Erol444/gpt4-openai-api) | 106 | -|[linjungz/chat-with-your-doc](https://github.com/linjungz/chat-with-your-doc) | 106 | -|[crosleythomas/MirrorGPT](https://github.com/crosleythomas/MirrorGPT) | 106 | -|[panaverse/learn-generative-ai](https://github.com/panaverse/learn-generative-ai) | 105 | -|[Azure/azure-sdk-tools](https://github.com/Azure/azure-sdk-tools) | 105 | -|[malywut/gpt_examples](https://github.com/malywut/gpt_examples) | 105 | -|[ritun16/chain-of-verification](https://github.com/ritun16/chain-of-verification) | 104 | -|[langchain-ai/langchain-benchmarks](https://github.com/langchain-ai/langchain-benchmarks) | 104 | -|[lightninglabs/LangChainBitcoin](https://github.com/lightninglabs/LangChainBitcoin) | 104 | -|[flepied/second-brain-agent](https://github.com/flepied/second-brain-agent) | 103 | -|[llmapp/openai.mini](https://github.com/llmapp/openai.mini) | 102 | -|[gimlet-ai/tddGPT](https://github.com/gimlet-ai/tddGPT) | 102 | -|[jlonge4/gpt_chatwithPDF](https://github.com/jlonge4/gpt_chatwithPDF) | 102 | -|[agentification/RAFA_code](https://github.com/agentification/RAFA_code) | 101 | -|[pacman100/DHS-LLM-Workshop](https://github.com/pacman100/DHS-LLM-Workshop) | 101 | -|[aws-samples/private-llm-qa-bot](https://github.com/aws-samples/private-llm-qa-bot) | 101 | - +| Repository | Stars | +| :------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----: | +| [AntonOsika/gpt-engineer](https://github.com/AntonOsika/gpt-engineer) | 46514 | +| [imartinez/privateGPT](https://github.com/imartinez/privateGPT) | 44439 | +| [LAION-AI/Open-Assistant](https://github.com/LAION-AI/Open-Assistant) | 35906 | +| [hpcaitech/ColossalAI](https://github.com/hpcaitech/ColossalAI) | 35528 | +| [moymix/TaskMatrix](https://github.com/moymix/TaskMatrix) | 34342 | +| [geekan/MetaGPT](https://github.com/geekan/MetaGPT) | 31126 | +| [streamlit/streamlit](https://github.com/streamlit/streamlit) | 28911 | +| [reworkd/AgentGPT](https://github.com/reworkd/AgentGPT) | 27833 | +| [StanGirard/quivr](https://github.com/StanGirard/quivr) | 26032 | +| [OpenBB-finance/OpenBBTerminal](https://github.com/OpenBB-finance/OpenBBTerminal) | 24946 | +| [run-llama/llama_index](https://github.com/run-llama/llama_index) | 24859 | +| [jmorganca/ollama](https://github.com/jmorganca/ollama) | 20849 | +| [openai/chatgpt-retrieval-plugin](https://github.com/openai/chatgpt-retrieval-plugin) | 20249 | +| [chatchat-space/Langchain-Chatchat](https://github.com/chatchat-space/Langchain-Chatchat) | 19305 | +| [mindsdb/mindsdb](https://github.com/mindsdb/mindsdb) | 19172 | +| [PromtEngineer/localGPT](https://github.com/PromtEngineer/localGPT) | 17528 | +| [cube-js/cube](https://github.com/cube-js/cube) | 16575 | +| [mlflow/mlflow](https://github.com/mlflow/mlflow) | 16000 | +| [mudler/LocalAI](https://github.com/mudler/LocalAI) | 14067 | +| [logspace-ai/langflow](https://github.com/logspace-ai/langflow) | 13679 | +| [GaiZhenbiao/ChuanhuChatGPT](https://github.com/GaiZhenbiao/ChuanhuChatGPT) | 13648 | +| [arc53/DocsGPT](https://github.com/arc53/DocsGPT) | 13423 | +| [openai/evals](https://github.com/openai/evals) | 12649 | +| [airbytehq/airbyte](https://github.com/airbytehq/airbyte) | 12460 | +| [langgenius/dify](https://github.com/langgenius/dify) | 11859 | +| [databrickslabs/dolly](https://github.com/databrickslabs/dolly) | 10672 | +| [AIGC-Audio/AudioGPT](https://github.com/AIGC-Audio/AudioGPT) | 9437 | +| [langchain-ai/langchainjs](https://github.com/langchain-ai/langchainjs) | 9227 | +| [gventuri/pandas-ai](https://github.com/gventuri/pandas-ai) | 9203 | +| [aws/amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) | 9079 | +| [h2oai/h2ogpt](https://github.com/h2oai/h2ogpt) | 8945 | +| [PipedreamHQ/pipedream](https://github.com/PipedreamHQ/pipedream) | 7550 | +| [bentoml/OpenLLM](https://github.com/bentoml/OpenLLM) | 6957 | +| [THUDM/ChatGLM3](https://github.com/THUDM/ChatGLM3) | 6801 | +| [microsoft/promptflow](https://github.com/microsoft/promptflow) | 6776 | +| [cpacker/MemGPT](https://github.com/cpacker/MemGPT) | 6642 | +| [joshpxyne/gpt-migrate](https://github.com/joshpxyne/gpt-migrate) | 6482 | +| [zauberzeug/nicegui](https://github.com/zauberzeug/nicegui) | 6037 | +| [embedchain/embedchain](https://github.com/embedchain/embedchain) | 6023 | +| [mage-ai/mage-ai](https://github.com/mage-ai/mage-ai) | 6019 | +| [assafelovic/gpt-researcher](https://github.com/assafelovic/gpt-researcher) | 5936 | +| [sweepai/sweep](https://github.com/sweepai/sweep) | 5855 | +| [wenda-LLM/wenda](https://github.com/wenda-LLM/wenda) | 5766 | +| [zilliztech/GPTCache](https://github.com/zilliztech/GPTCache) | 5710 | +| [pdm-project/pdm](https://github.com/pdm-project/pdm) | 5665 | +| [GreyDGL/PentestGPT](https://github.com/GreyDGL/PentestGPT) | 5568 | +| [gkamradt/langchain-tutorials](https://github.com/gkamradt/langchain-tutorials) | 5507 | +| [Shaunwei/RealChar](https://github.com/Shaunwei/RealChar) | 5501 | +| [facebookresearch/llama-recipes](https://github.com/facebookresearch/llama-recipes) | 5477 | +| [serge-chat/serge](https://github.com/serge-chat/serge) | 5221 | +| [run-llama/rags](https://github.com/run-llama/rags) | 4916 | +| [openchatai/OpenChat](https://github.com/openchatai/OpenChat) | 4870 | +| [danswer-ai/danswer](https://github.com/danswer-ai/danswer) | 4774 | +| [langchain-ai/opengpts](https://github.com/langchain-ai/opengpts) | 4709 | +| [postgresml/postgresml](https://github.com/postgresml/postgresml) | 4639 | +| [MineDojo/Voyager](https://github.com/MineDojo/Voyager) | 4582 | +| [intel-analytics/BigDL](https://github.com/intel-analytics/BigDL) | 4581 | +| [yihong0618/xiaogpt](https://github.com/yihong0618/xiaogpt) | 4359 | +| [RayVentura/ShortGPT](https://github.com/RayVentura/ShortGPT) | 4357 | +| [Azure-Samples/azure-search-openai-demo](https://github.com/Azure-Samples/azure-search-openai-demo) | 4317 | +| [madawei2699/myGPTReader](https://github.com/madawei2699/myGPTReader) | 4289 | +| [apache/nifi](https://github.com/apache/nifi) | 4098 | +| [langchain-ai/chat-langchain](https://github.com/langchain-ai/chat-langchain) | 4091 | +| [aiwaves-cn/agents](https://github.com/aiwaves-cn/agents) | 4073 | +| [krishnaik06/The-Grand-Complete-Data-Science-Materials](https://github.com/krishnaik06/The-Grand-Complete-Data-Science-Materials) | 4065 | +| [khoj-ai/khoj](https://github.com/khoj-ai/khoj) | 4016 | +| [Azure/azure-sdk-for-python](https://github.com/Azure/azure-sdk-for-python) | 3941 | +| [PrefectHQ/marvin](https://github.com/PrefectHQ/marvin) | 3915 | +| [OpenBMB/ToolBench](https://github.com/OpenBMB/ToolBench) | 3799 | +| [marqo-ai/marqo](https://github.com/marqo-ai/marqo) | 3771 | +| [kyegomez/tree-of-thoughts](https://github.com/kyegomez/tree-of-thoughts) | 3688 | +| [Unstructured-IO/unstructured](https://github.com/Unstructured-IO/unstructured) | 3543 | +| [llm-workflow-engine/llm-workflow-engine](https://github.com/llm-workflow-engine/llm-workflow-engine) | 3515 | +| [shroominic/codeinterpreter-api](https://github.com/shroominic/codeinterpreter-api) | 3425 | +| [openchatai/OpenCopilot](https://github.com/openchatai/OpenCopilot) | 3418 | +| [josStorer/RWKV-Runner](https://github.com/josStorer/RWKV-Runner) | 3297 | +| [whitead/paper-qa](https://github.com/whitead/paper-qa) | 3280 | +| [homanp/superagent](https://github.com/homanp/superagent) | 3258 | +| [ParisNeo/lollms-webui](https://github.com/ParisNeo/lollms-webui) | 3199 | +| [OpenBMB/AgentVerse](https://github.com/OpenBMB/AgentVerse) | 3099 | +| [project-baize/baize-chatbot](https://github.com/project-baize/baize-chatbot) | 3090 | +| [OpenGVLab/InternGPT](https://github.com/OpenGVLab/InternGPT) | 2989 | +| [xlang-ai/OpenAgents](https://github.com/xlang-ai/OpenAgents) | 2825 | +| [dataelement/bisheng](https://github.com/dataelement/bisheng) | 2797 | +| [Mintplex-Labs/anything-llm](https://github.com/Mintplex-Labs/anything-llm) | 2784 | +| [OpenBMB/BMTools](https://github.com/OpenBMB/BMTools) | 2734 | +| [run-llama/llama-hub](https://github.com/run-llama/llama-hub) | 2721 | +| [SamurAIGPT/EmbedAI](https://github.com/SamurAIGPT/EmbedAI) | 2647 | +| [NVIDIA/NeMo-Guardrails](https://github.com/NVIDIA/NeMo-Guardrails) | 2637 | +| [X-D-Lab/LangChain-ChatGLM-Webui](https://github.com/X-D-Lab/LangChain-ChatGLM-Webui) | 2532 | +| [GerevAI/gerev](https://github.com/GerevAI/gerev) | 2517 | +| [keephq/keep](https://github.com/keephq/keep) | 2448 | +| [yanqiangmiffy/Chinese-LangChain](https://github.com/yanqiangmiffy/Chinese-LangChain) | 2397 | +| [OpenGVLab/Ask-Anything](https://github.com/OpenGVLab/Ask-Anything) | 2324 | +| [IntelligenzaArtificiale/Free-Auto-GPT](https://github.com/IntelligenzaArtificiale/Free-Auto-GPT) | 2241 | +| [YiVal/YiVal](https://github.com/YiVal/YiVal) | 2232 | +| [jupyterlab/jupyter-ai](https://github.com/jupyterlab/jupyter-ai) | 2189 | +| [Farama-Foundation/PettingZoo](https://github.com/Farama-Foundation/PettingZoo) | 2136 | +| [microsoft/TaskWeaver](https://github.com/microsoft/TaskWeaver) | 2126 | +| [hwchase17/notion-qa](https://github.com/hwchase17/notion-qa) | 2083 | +| [FlagOpen/FlagEmbedding](https://github.com/FlagOpen/FlagEmbedding) | 2053 | +| [paulpierre/RasaGPT](https://github.com/paulpierre/RasaGPT) | 1999 | +| [hegelai/prompttools](https://github.com/hegelai/prompttools) | 1984 | +| [mckinsey/vizro](https://github.com/mckinsey/vizro) | 1951 | +| [vocodedev/vocode-python](https://github.com/vocodedev/vocode-python) | 1868 | +| [dot-agent/openAMS](https://github.com/dot-agent/openAMS) | 1796 | +| [explodinggradients/ragas](https://github.com/explodinggradients/ragas) | 1766 | +| [AI-Citizen/SolidGPT](https://github.com/AI-Citizen/SolidGPT) | 1761 | +| [Kav-K/GPTDiscord](https://github.com/Kav-K/GPTDiscord) | 1696 | +| [run-llama/sec-insights](https://github.com/run-llama/sec-insights) | 1654 | +| [avinashkranjan/Amazing-Python-Scripts](https://github.com/avinashkranjan/Amazing-Python-Scripts) | 1635 | +| [microsoft/WhatTheHack](https://github.com/microsoft/WhatTheHack) | 1629 | +| [noahshinn/reflexion](https://github.com/noahshinn/reflexion) | 1625 | +| [psychic-api/psychic](https://github.com/psychic-api/psychic) | 1618 | +| [Forethought-Technologies/AutoChain](https://github.com/Forethought-Technologies/AutoChain) | 1611 | +| [pinterest/querybook](https://github.com/pinterest/querybook) | 1586 | +| [refuel-ai/autolabel](https://github.com/refuel-ai/autolabel) | 1553 | +| [jina-ai/langchain-serve](https://github.com/jina-ai/langchain-serve) | 1537 | +| [jina-ai/dev-gpt](https://github.com/jina-ai/dev-gpt) | 1522 | +| [agiresearch/OpenAGI](https://github.com/agiresearch/OpenAGI) | 1493 | +| [ttengwang/Caption-Anything](https://github.com/ttengwang/Caption-Anything) | 1484 | +| [greshake/llm-security](https://github.com/greshake/llm-security) | 1483 | +| [promptfoo/promptfoo](https://github.com/promptfoo/promptfoo) | 1480 | +| [milvus-io/bootcamp](https://github.com/milvus-io/bootcamp) | 1477 | +| [richardyc/Chrome-GPT](https://github.com/richardyc/Chrome-GPT) | 1475 | +| [melih-unsal/DemoGPT](https://github.com/melih-unsal/DemoGPT) | 1428 | +| [YORG-AI/Open-Assistant](https://github.com/YORG-AI/Open-Assistant) | 1419 | +| [101dotxyz/GPTeam](https://github.com/101dotxyz/GPTeam) | 1416 | +| [jina-ai/thinkgpt](https://github.com/jina-ai/thinkgpt) | 1408 | +| [mmz-001/knowledge_gpt](https://github.com/mmz-001/knowledge_gpt) | 1398 | +| [intel/intel-extension-for-transformers](https://github.com/intel/intel-extension-for-transformers) | 1387 | +| [Azure/azureml-examples](https://github.com/Azure/azureml-examples) | 1385 | +| [lunasec-io/lunasec](https://github.com/lunasec-io/lunasec) | 1367 | +| [eyurtsev/kor](https://github.com/eyurtsev/kor) | 1355 | +| [xusenlinzy/api-for-open-llm](https://github.com/xusenlinzy/api-for-open-llm) | 1325 | +| [griptape-ai/griptape](https://github.com/griptape-ai/griptape) | 1323 | +| [SuperDuperDB/superduperdb](https://github.com/SuperDuperDB/superduperdb) | 1290 | +| [cofactoryai/textbase](https://github.com/cofactoryai/textbase) | 1284 | +| [psychic-api/rag-stack](https://github.com/psychic-api/rag-stack) | 1260 | +| [filip-michalsky/SalesGPT](https://github.com/filip-michalsky/SalesGPT) | 1250 | +| [nod-ai/SHARK](https://github.com/nod-ai/SHARK) | 1237 | +| [pluralsh/plural](https://github.com/pluralsh/plural) | 1234 | +| [cheshire-cat-ai/core](https://github.com/cheshire-cat-ai/core) | 1194 | +| [LC1332/Chat-Haruhi-Suzumiya](https://github.com/LC1332/Chat-Haruhi-Suzumiya) | 1184 | +| [poe-platform/server-bot-quick-start](https://github.com/poe-platform/server-bot-quick-start) | 1182 | +| [microsoft/X-Decoder](https://github.com/microsoft/X-Decoder) | 1180 | +| [juncongmoo/chatllama](https://github.com/juncongmoo/chatllama) | 1171 | +| [visual-openllm/visual-openllm](https://github.com/visual-openllm/visual-openllm) | 1156 | +| [alejandro-ao/ask-multiple-pdfs](https://github.com/alejandro-ao/ask-multiple-pdfs) | 1153 | +| [ThousandBirdsInc/chidori](https://github.com/ThousandBirdsInc/chidori) | 1152 | +| [irgolic/AutoPR](https://github.com/irgolic/AutoPR) | 1137 | +| [SamurAIGPT/Camel-AutoGPT](https://github.com/SamurAIGPT/Camel-AutoGPT) | 1083 | +| [ray-project/llm-applications](https://github.com/ray-project/llm-applications) | 1080 | +| [run-llama/llama-lab](https://github.com/run-llama/llama-lab) | 1072 | +| [jiran214/GPT-vup](https://github.com/jiran214/GPT-vup) | 1041 | +| [MetaGLM/FinGLM](https://github.com/MetaGLM/FinGLM) | 1035 | +| [peterw/Chat-with-Github-Repo](https://github.com/peterw/Chat-with-Github-Repo) | 1020 | +| [Anil-matcha/ChatPDF](https://github.com/Anil-matcha/ChatPDF) | 991 | +| [langchain-ai/langserve](https://github.com/langchain-ai/langserve) | 983 | +| [THUDM/AgentTuning](https://github.com/THUDM/AgentTuning) | 976 | +| [rlancemartin/auto-evaluator](https://github.com/rlancemartin/auto-evaluator) | 975 | +| [codeacme17/examor](https://github.com/codeacme17/examor) | 964 | +| [all-in-aigc/gpts-works](https://github.com/all-in-aigc/gpts-works) | 946 | +| [Ikaros-521/AI-Vtuber](https://github.com/Ikaros-521/AI-Vtuber) | 946 | +| [microsoft/Llama-2-Onnx](https://github.com/microsoft/Llama-2-Onnx) | 898 | +| [cirediatpl/FigmaChain](https://github.com/cirediatpl/FigmaChain) | 895 | +| [ricklamers/shell-ai](https://github.com/ricklamers/shell-ai) | 893 | +| [modelscope/modelscope-agent](https://github.com/modelscope/modelscope-agent) | 893 | +| [seanpixel/Teenage-AGI](https://github.com/seanpixel/Teenage-AGI) | 886 | +| [ajndkr/lanarky](https://github.com/ajndkr/lanarky) | 880 | +| [kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference](https://github.com/kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference) | 872 | +| [corca-ai/EVAL](https://github.com/corca-ai/EVAL) | 846 | +| [hwchase17/chat-your-data](https://github.com/hwchase17/chat-your-data) | 841 | +| [kreneskyp/ix](https://github.com/kreneskyp/ix) | 821 | +| [Link-AGI/AutoAgents](https://github.com/Link-AGI/AutoAgents) | 820 | +| [truera/trulens](https://github.com/truera/trulens) | 794 | +| [Dataherald/dataherald](https://github.com/Dataherald/dataherald) | 788 | +| [sunlabuiuc/PyHealth](https://github.com/sunlabuiuc/PyHealth) | 783 | +| [jondurbin/airoboros](https://github.com/jondurbin/airoboros) | 783 | +| [pyspark-ai/pyspark-ai](https://github.com/pyspark-ai/pyspark-ai) | 782 | +| [confident-ai/deepeval](https://github.com/confident-ai/deepeval) | 780 | +| [billxbf/ReWOO](https://github.com/billxbf/ReWOO) | 777 | +| [langchain-ai/streamlit-agent](https://github.com/langchain-ai/streamlit-agent) | 776 | +| [akshata29/entaoai](https://github.com/akshata29/entaoai) | 771 | +| [LambdaLabsML/examples](https://github.com/LambdaLabsML/examples) | 770 | +| [getmetal/motorhead](https://github.com/getmetal/motorhead) | 768 | +| [Dicklesworthstone/swiss_army_llama](https://github.com/Dicklesworthstone/swiss_army_llama) | 757 | +| [ruoccofabrizio/azure-open-ai-embeddings-qna](https://github.com/ruoccofabrizio/azure-open-ai-embeddings-qna) | 757 | +| [msoedov/langcorn](https://github.com/msoedov/langcorn) | 754 | +| [e-johnstonn/BriefGPT](https://github.com/e-johnstonn/BriefGPT) | 753 | +| [microsoft/sample-app-aoai-chatGPT](https://github.com/microsoft/sample-app-aoai-chatGPT) | 749 | +| [explosion/spacy-llm](https://github.com/explosion/spacy-llm) | 731 | +| [MiuLab/Taiwan-LLM](https://github.com/MiuLab/Taiwan-LLM) | 716 | +| [whyiyhw/chatgpt-wechat](https://github.com/whyiyhw/chatgpt-wechat) | 702 | +| [Azure-Samples/openai](https://github.com/Azure-Samples/openai) | 692 | +| [iusztinpaul/hands-on-llms](https://github.com/iusztinpaul/hands-on-llms) | 687 | +| [safevideo/autollm](https://github.com/safevideo/autollm) | 682 | +| [OpenGenerativeAI/GenossGPT](https://github.com/OpenGenerativeAI/GenossGPT) | 669 | +| [NoDataFound/hackGPT](https://github.com/NoDataFound/hackGPT) | 663 | +| [AILab-CVC/GPT4Tools](https://github.com/AILab-CVC/GPT4Tools) | 662 | +| [langchain-ai/auto-evaluator](https://github.com/langchain-ai/auto-evaluator) | 657 | +| [yvann-ba/Robby-chatbot](https://github.com/yvann-ba/Robby-chatbot) | 639 | +| [alexanderatallah/window.ai](https://github.com/alexanderatallah/window.ai) | 635 | +| [amosjyng/langchain-visualizer](https://github.com/amosjyng/langchain-visualizer) | 630 | +| [microsoft/PodcastCopilot](https://github.com/microsoft/PodcastCopilot) | 621 | +| [aws-samples/aws-genai-llm-chatbot](https://github.com/aws-samples/aws-genai-llm-chatbot) | 616 | +| [NeumTry/NeumAI](https://github.com/NeumTry/NeumAI) | 605 | +| [namuan/dr-doc-search](https://github.com/namuan/dr-doc-search) | 599 | +| [plastic-labs/tutor-gpt](https://github.com/plastic-labs/tutor-gpt) | 595 | +| [marimo-team/marimo](https://github.com/marimo-team/marimo) | 591 | +| [yakami129/VirtualWife](https://github.com/yakami129/VirtualWife) | 586 | +| [xuwenhao/geektime-ai-course](https://github.com/xuwenhao/geektime-ai-course) | 584 | +| [jonra1993/fastapi-alembic-sqlmodel-async](https://github.com/jonra1993/fastapi-alembic-sqlmodel-async) | 573 | +| [dgarnitz/vectorflow](https://github.com/dgarnitz/vectorflow) | 568 | +| [yeagerai/yeagerai-agent](https://github.com/yeagerai/yeagerai-agent) | 564 | +| [daveebbelaar/langchain-experiments](https://github.com/daveebbelaar/langchain-experiments) | 563 | +| [traceloop/openllmetry](https://github.com/traceloop/openllmetry) | 559 | +| [Agenta-AI/agenta](https://github.com/Agenta-AI/agenta) | 546 | +| [michaelthwan/searchGPT](https://github.com/michaelthwan/searchGPT) | 545 | +| [jina-ai/agentchain](https://github.com/jina-ai/agentchain) | 544 | +| [mckaywrigley/repo-chat](https://github.com/mckaywrigley/repo-chat) | 533 | +| [marella/chatdocs](https://github.com/marella/chatdocs) | 532 | +| [opentensor/bittensor](https://github.com/opentensor/bittensor) | 532 | +| [DjangoPeng/openai-quickstart](https://github.com/DjangoPeng/openai-quickstart) | 527 | +| [freddyaboulton/gradio-tools](https://github.com/freddyaboulton/gradio-tools) | 517 | +| [sidhq/Multi-GPT](https://github.com/sidhq/Multi-GPT) | 515 | +| [alejandro-ao/langchain-ask-pdf](https://github.com/alejandro-ao/langchain-ask-pdf) | 514 | +| [sajjadium/ctf-archives](https://github.com/sajjadium/ctf-archives) | 507 | +| [continuum-llms/chatgpt-memory](https://github.com/continuum-llms/chatgpt-memory) | 502 | +| [llmOS/opencopilot](https://github.com/llmOS/opencopilot) | 495 | +| [steamship-core/steamship-langchain](https://github.com/steamship-core/steamship-langchain) | 494 | +| [mpaepper/content-chatbot](https://github.com/mpaepper/content-chatbot) | 493 | +| [langchain-ai/langchain-aiplugin](https://github.com/langchain-ai/langchain-aiplugin) | 492 | +| [logan-markewich/llama_index_starter_pack](https://github.com/logan-markewich/llama_index_starter_pack) | 483 | +| [datawhalechina/llm-universe](https://github.com/datawhalechina/llm-universe) | 475 | +| [leondz/garak](https://github.com/leondz/garak) | 464 | +| [RedisVentures/ArXivChatGuru](https://github.com/RedisVentures/ArXivChatGuru) | 461 | +| [Anil-matcha/Chatbase](https://github.com/Anil-matcha/Chatbase) | 455 | +| [Aiyu-awa/luna-ai](https://github.com/Aiyu-awa/luna-ai) | 450 | +| [DataDog/dd-trace-py](https://github.com/DataDog/dd-trace-py) | 450 | +| [Azure-Samples/miyagi](https://github.com/Azure-Samples/miyagi) | 449 | +| [poe-platform/poe-protocol](https://github.com/poe-platform/poe-protocol) | 447 | +| [onlyphantom/llm-python](https://github.com/onlyphantom/llm-python) | 446 | +| [junruxiong/IncarnaMind](https://github.com/junruxiong/IncarnaMind) | 441 | +| [CarperAI/OpenELM](https://github.com/CarperAI/OpenELM) | 441 | +| [daodao97/chatdoc](https://github.com/daodao97/chatdoc) | 437 | +| [showlab/VLog](https://github.com/showlab/VLog) | 436 | +| [wandb/weave](https://github.com/wandb/weave) | 420 | +| [QwenLM/Qwen-Agent](https://github.com/QwenLM/Qwen-Agent) | 419 | +| [huchenxucs/ChatDB](https://github.com/huchenxucs/ChatDB) | 416 | +| [jerlendds/osintbuddy](https://github.com/jerlendds/osintbuddy) | 411 | +| [monarch-initiative/ontogpt](https://github.com/monarch-initiative/ontogpt) | 408 | +| [mallorbc/Finetune_LLMs](https://github.com/mallorbc/Finetune_LLMs) | 406 | +| [JayZeeDesign/researcher-gpt](https://github.com/JayZeeDesign/researcher-gpt) | 405 | +| [rsaryev/talk-codebase](https://github.com/rsaryev/talk-codebase) | 401 | +| [langchain-ai/langsmith-cookbook](https://github.com/langchain-ai/langsmith-cookbook) | 398 | +| [mtenenholtz/chat-twitter](https://github.com/mtenenholtz/chat-twitter) | 398 | +| [morpheuslord/GPT_Vuln-analyzer](https://github.com/morpheuslord/GPT_Vuln-analyzer) | 391 | +| [MagnivOrg/prompt-layer-library](https://github.com/MagnivOrg/prompt-layer-library) | 387 | +| [JohnSnowLabs/langtest](https://github.com/JohnSnowLabs/langtest) | 384 | +| [mrwadams/attackgen](https://github.com/mrwadams/attackgen) | 381 | +| [codefuse-ai/Test-Agent](https://github.com/codefuse-ai/Test-Agent) | 380 | +| [personoids/personoids-lite](https://github.com/personoids/personoids-lite) | 379 | +| [mosaicml/examples](https://github.com/mosaicml/examples) | 378 | +| [steamship-packages/langchain-production-starter](https://github.com/steamship-packages/langchain-production-starter) | 370 | +| [FlagAI-Open/Aquila2](https://github.com/FlagAI-Open/Aquila2) | 365 | +| [Mintplex-Labs/vector-admin](https://github.com/Mintplex-Labs/vector-admin) | 365 | +| [NimbleBoxAI/ChainFury](https://github.com/NimbleBoxAI/ChainFury) | 357 | +| [BlackHC/llm-strategy](https://github.com/BlackHC/llm-strategy) | 354 | +| [lilacai/lilac](https://github.com/lilacai/lilac) | 352 | +| [preset-io/promptimize](https://github.com/preset-io/promptimize) | 351 | +| [yuanjie-ai/ChatLLM](https://github.com/yuanjie-ai/ChatLLM) | 347 | +| [andylokandy/gpt-4-search](https://github.com/andylokandy/gpt-4-search) | 346 | +| [zhoudaquan/ChatAnything](https://github.com/zhoudaquan/ChatAnything) | 343 | +| [rgomezcasas/dotfiles](https://github.com/rgomezcasas/dotfiles) | 343 | +| [tigerlab-ai/tiger](https://github.com/tigerlab-ai/tiger) | 342 | +| [HumanSignal/label-studio-ml-backend](https://github.com/HumanSignal/label-studio-ml-backend) | 334 | +| [nasa-petal/bidara](https://github.com/nasa-petal/bidara) | 334 | +| [momegas/megabots](https://github.com/momegas/megabots) | 334 | +| [Cheems-Seminar/grounded-segment-any-parts](https://github.com/Cheems-Seminar/grounded-segment-any-parts) | 330 | +| [CambioML/pykoi](https://github.com/CambioML/pykoi) | 326 | +| [Nuggt-dev/Nuggt](https://github.com/Nuggt-dev/Nuggt) | 326 | +| [wandb/edu](https://github.com/wandb/edu) | 326 | +| [Haste171/langchain-chatbot](https://github.com/Haste171/langchain-chatbot) | 324 | +| [sugarforever/LangChain-Tutorials](https://github.com/sugarforever/LangChain-Tutorials) | 322 | +| [liangwq/Chatglm_lora_multi-gpu](https://github.com/liangwq/Chatglm_lora_multi-gpu) | 321 | +| [ur-whitelab/chemcrow-public](https://github.com/ur-whitelab/chemcrow-public) | 320 | +| [itamargol/openai](https://github.com/itamargol/openai) | 318 | +| [gia-guar/JARVIS-ChatGPT](https://github.com/gia-guar/JARVIS-ChatGPT) | 304 | +| [SpecterOps/Nemesis](https://github.com/SpecterOps/Nemesis) | 302 | +| [facebookresearch/personal-timeline](https://github.com/facebookresearch/personal-timeline) | 302 | +| [hnawaz007/pythondataanalysis](https://github.com/hnawaz007/pythondataanalysis) | 301 | +| [Chainlit/cookbook](https://github.com/Chainlit/cookbook) | 300 | +| [airobotlab/KoChatGPT](https://github.com/airobotlab/KoChatGPT) | 300 | +| [GPT-Fathom/GPT-Fathom](https://github.com/GPT-Fathom/GPT-Fathom) | 299 | +| [kaarthik108/snowChat](https://github.com/kaarthik108/snowChat) | 299 | +| [kyegomez/swarms](https://github.com/kyegomez/swarms) | 296 | +| [LangStream/langstream](https://github.com/LangStream/langstream) | 295 | +| [genia-dev/GeniA](https://github.com/genia-dev/GeniA) | 294 | +| [shamspias/customizable-gpt-chatbot](https://github.com/shamspias/customizable-gpt-chatbot) | 291 | +| [TsinghuaDatabaseGroup/DB-GPT](https://github.com/TsinghuaDatabaseGroup/DB-GPT) | 290 | +| [conceptofmind/toolformer](https://github.com/conceptofmind/toolformer) | 283 | +| [sullivan-sean/chat-langchainjs](https://github.com/sullivan-sean/chat-langchainjs) | 283 | +| [AutoPackAI/beebot](https://github.com/AutoPackAI/beebot) | 282 | +| [pablomarin/GPT-Azure-Search-Engine](https://github.com/pablomarin/GPT-Azure-Search-Engine) | 282 | +| [gkamradt/LLMTest_NeedleInAHaystack](https://github.com/gkamradt/LLMTest_NeedleInAHaystack) | 280 | +| [gustavz/DataChad](https://github.com/gustavz/DataChad) | 280 | +| [Safiullah-Rahu/CSV-AI](https://github.com/Safiullah-Rahu/CSV-AI) | 278 | +| [hwchase17/chroma-langchain](https://github.com/hwchase17/chroma-langchain) | 275 | +| [AkshitIreddy/Interactive-LLM-Powered-NPCs](https://github.com/AkshitIreddy/Interactive-LLM-Powered-NPCs) | 268 | +| [ennucore/clippinator](https://github.com/ennucore/clippinator) | 267 | +| [artitw/text2text](https://github.com/artitw/text2text) | 264 | +| [anarchy-ai/LLM-VM](https://github.com/anarchy-ai/LLM-VM) | 263 | +| [wpydcr/LLM-Kit](https://github.com/wpydcr/LLM-Kit) | 262 | +| [streamlit/llm-examples](https://github.com/streamlit/llm-examples) | 262 | +| [paolorechia/learn-langchain](https://github.com/paolorechia/learn-langchain) | 262 | +| [yym68686/ChatGPT-Telegram-Bot](https://github.com/yym68686/ChatGPT-Telegram-Bot) | 261 | +| [PradipNichite/Youtube-Tutorials](https://github.com/PradipNichite/Youtube-Tutorials) | 259 | +| [radi-cho/datasetGPT](https://github.com/radi-cho/datasetGPT) | 259 | +| [ur-whitelab/exmol](https://github.com/ur-whitelab/exmol) | 259 | +| [ml6team/fondant](https://github.com/ml6team/fondant) | 254 | +| [bborn/howdoi.ai](https://github.com/bborn/howdoi.ai) | 254 | +| [rahulnyk/knowledge_graph](https://github.com/rahulnyk/knowledge_graph) | 253 | +| [recalign/RecAlign](https://github.com/recalign/RecAlign) | 248 | +| [hwchase17/langchain-streamlit-template](https://github.com/hwchase17/langchain-streamlit-template) | 248 | +| [fetchai/uAgents](https://github.com/fetchai/uAgents) | 247 | +| [arthur-ai/bench](https://github.com/arthur-ai/bench) | 247 | +| [miaoshouai/miaoshouai-assistant](https://github.com/miaoshouai/miaoshouai-assistant) | 246 | +| [RoboCoachTechnologies/GPT-Synthesizer](https://github.com/RoboCoachTechnologies/GPT-Synthesizer) | 244 | +| [langchain-ai/web-explorer](https://github.com/langchain-ai/web-explorer) | 242 | +| [kaleido-lab/dolphin](https://github.com/kaleido-lab/dolphin) | 242 | +| [PJLab-ADG/DriveLikeAHuman](https://github.com/PJLab-ADG/DriveLikeAHuman) | 241 | +| [stepanogil/autonomous-hr-chatbot](https://github.com/stepanogil/autonomous-hr-chatbot) | 238 | +| [WongSaang/chatgpt-ui-server](https://github.com/WongSaang/chatgpt-ui-server) | 236 | +| [nexus-stc/stc](https://github.com/nexus-stc/stc) | 235 | +| [yeagerai/genworlds](https://github.com/yeagerai/genworlds) | 235 | +| [Gentopia-AI/Gentopia](https://github.com/Gentopia-AI/Gentopia) | 235 | +| [alphasecio/langchain-examples](https://github.com/alphasecio/langchain-examples) | 235 | +| [grumpyp/aixplora](https://github.com/grumpyp/aixplora) | 232 | +| [shaman-ai/agent-actors](https://github.com/shaman-ai/agent-actors) | 232 | +| [darrenburns/elia](https://github.com/darrenburns/elia) | 231 | +| [orgexyz/BlockAGI](https://github.com/orgexyz/BlockAGI) | 231 | +| [handrew/browserpilot](https://github.com/handrew/browserpilot) | 226 | +| [su77ungr/CASALIOY](https://github.com/su77ungr/CASALIOY) | 225 | +| [nicknochnack/LangchainDocuments](https://github.com/nicknochnack/LangchainDocuments) | 225 | +| [dbpunk-labs/octogen](https://github.com/dbpunk-labs/octogen) | 224 | +| [langchain-ai/weblangchain](https://github.com/langchain-ai/weblangchain) | 222 | +| [CL-lau/SQL-GPT](https://github.com/CL-lau/SQL-GPT) | 222 | +| [alvarosevilla95/autolang](https://github.com/alvarosevilla95/autolang) | 221 | +| [showlab/UniVTG](https://github.com/showlab/UniVTG) | 220 | +| [edreisMD/plugnplai](https://github.com/edreisMD/plugnplai) | 219 | +| [hardbyte/qabot](https://github.com/hardbyte/qabot) | 216 | +| [microsoft/azure-openai-in-a-day-workshop](https://github.com/microsoft/azure-openai-in-a-day-workshop) | 215 | +| [Azure-Samples/chat-with-your-data-solution-accelerator](https://github.com/Azure-Samples/chat-with-your-data-solution-accelerator) | 214 | +| [amadad/agentcy](https://github.com/amadad/agentcy) | 213 | +| [snexus/llm-search](https://github.com/snexus/llm-search) | 212 | +| [afaqueumer/DocQA](https://github.com/afaqueumer/DocQA) | 206 | +| [plchld/InsightFlow](https://github.com/plchld/InsightFlow) | 205 | +| [yasyf/compress-gpt](https://github.com/yasyf/compress-gpt) | 205 | +| [benthecoder/ClassGPT](https://github.com/benthecoder/ClassGPT) | 205 | +| [voxel51/voxelgpt](https://github.com/voxel51/voxelgpt) | 204 | +| [jbrukh/gpt-jargon](https://github.com/jbrukh/gpt-jargon) | 204 | +| [emarco177/ice_breaker](https://github.com/emarco177/ice_breaker) | 204 | +| [tencentmusic/supersonic](https://github.com/tencentmusic/supersonic) | 202 | +| [Azure-Samples/azure-search-power-skills](https://github.com/Azure-Samples/azure-search-power-skills) | 202 | +| [blob42/Instrukt](https://github.com/blob42/Instrukt) | 201 | +| [langchain-ai/langsmith-sdk](https://github.com/langchain-ai/langsmith-sdk) | 200 | +| [SamPink/dev-gpt](https://github.com/SamPink/dev-gpt) | 200 | +| [ju-bezdek/langchain-decorators](https://github.com/ju-bezdek/langchain-decorators) | 198 | +| [KMnO4-zx/huanhuan-chat](https://github.com/KMnO4-zx/huanhuan-chat) | 196 | +| [Azure-Samples/jp-azureopenai-samples](https://github.com/Azure-Samples/jp-azureopenai-samples) | 192 | +| [hongbo-miao/hongbomiao.com](https://github.com/hongbo-miao/hongbomiao.com) | 190 | +| [CakeCrusher/openplugin](https://github.com/CakeCrusher/openplugin) | 190 | +| [PaddlePaddle/ERNIE-Bot-SDK](https://github.com/PaddlePaddle/ERNIE-Bot-SDK) | 189 | +| [retr0reg/Ret2GPT](https://github.com/retr0reg/Ret2GPT) | 189 | +| [AmineDiro/cria](https://github.com/AmineDiro/cria) | 187 | +| [lancedb/vectordb-recipes](https://github.com/lancedb/vectordb-recipes) | 186 | +| [vaibkumr/prompt-optimizer](https://github.com/vaibkumr/prompt-optimizer) | 185 | +| [aws-ia/ecs-blueprints](https://github.com/aws-ia/ecs-blueprints) | 184 | +| [ethanyanjiali/minChatGPT](https://github.com/ethanyanjiali/minChatGPT) | 183 | +| [MuhammadMoinFaisal/LargeLanguageModelsProjects](https://github.com/MuhammadMoinFaisal/LargeLanguageModelsProjects) | 182 | +| [shauryr/S2QA](https://github.com/shauryr/S2QA) | 181 | +| [summarizepaper/summarizepaper](https://github.com/summarizepaper/summarizepaper) | 180 | +| [NomaDamas/RAGchain](https://github.com/NomaDamas/RAGchain) | 179 | +| [pnkvalavala/repochat](https://github.com/pnkvalavala/repochat) | 179 | +| [ibiscp/LLM-IMDB](https://github.com/ibiscp/LLM-IMDB) | 177 | +| [fengyuli-dev/multimedia-gpt](https://github.com/fengyuli-dev/multimedia-gpt) | 177 | +| [langchain-ai/text-split-explorer](https://github.com/langchain-ai/text-split-explorer) | 175 | +| [iMagist486/ElasticSearch-Langchain-Chatglm2](https://github.com/iMagist486/ElasticSearch-Langchain-Chatglm2) | 175 | +| [limaoyi1/Auto-PPT](https://github.com/limaoyi1/Auto-PPT) | 175 | +| [Open-Swarm-Net/GPT-Swarm](https://github.com/Open-Swarm-Net/GPT-Swarm) | 175 | +| [morpheuslord/HackBot](https://github.com/morpheuslord/HackBot) | 174 | +| [v7labs/benchllm](https://github.com/v7labs/benchllm) | 174 | +| [Coding-Crashkurse/Langchain-Full-Course](https://github.com/Coding-Crashkurse/Langchain-Full-Course) | 174 | +| [dongyh20/Octopus](https://github.com/dongyh20/Octopus) | 173 | +| [kimtth/azure-openai-llm-vector-langchain](https://github.com/kimtth/azure-openai-llm-vector-langchain) | 173 | +| [mayooear/private-chatbot-mpt30b-langchain](https://github.com/mayooear/private-chatbot-mpt30b-langchain) | 173 | +| [zilliztech/akcio](https://github.com/zilliztech/akcio) | 172 | +| [jmpaz/promptlib](https://github.com/jmpaz/promptlib) | 172 | +| [ccurme/yolopandas](https://github.com/ccurme/yolopandas) | 172 | +| [joaomdmoura/CrewAI](https://github.com/joaomdmoura/CrewAI) | 170 | +| [katanaml/llm-mistral-invoice-cpu](https://github.com/katanaml/llm-mistral-invoice-cpu) | 170 | +| [chakkaradeep/pyCodeAGI](https://github.com/chakkaradeep/pyCodeAGI) | 170 | +| [mudler/LocalAGI](https://github.com/mudler/LocalAGI) | 167 | +| [dssjon/biblos](https://github.com/dssjon/biblos) | 165 | +| [kjappelbaum/gptchem](https://github.com/kjappelbaum/gptchem) | 165 | +| [xxw1995/chatglm3-finetune](https://github.com/xxw1995/chatglm3-finetune) | 164 | +| [ArjanCodes/examples](https://github.com/ArjanCodes/examples) | 163 | +| [AIAnytime/Llama2-Medical-Chatbot](https://github.com/AIAnytime/Llama2-Medical-Chatbot) | 163 | +| [RCGAI/SimplyRetrieve](https://github.com/RCGAI/SimplyRetrieve) | 162 | +| [langchain-ai/langchain-teacher](https://github.com/langchain-ai/langchain-teacher) | 162 | +| [menloparklab/falcon-langchain](https://github.com/menloparklab/falcon-langchain) | 162 | +| [flurb18/AgentOoba](https://github.com/flurb18/AgentOoba) | 162 | +| [homanp/vercel-langchain](https://github.com/homanp/vercel-langchain) | 161 | +| [jiran214/langup-ai](https://github.com/jiran214/langup-ai) | 160 | +| [JorisdeJong123/7-Days-of-LangChain](https://github.com/JorisdeJong123/7-Days-of-LangChain) | 160 | +| [GoogleCloudPlatform/data-analytics-golden-demo](https://github.com/GoogleCloudPlatform/data-analytics-golden-demo) | 159 | +| [positive666/Prompt-Can-Anything](https://github.com/positive666/Prompt-Can-Anything) | 159 | +| [luisroque/large_laguage_models](https://github.com/luisroque/large_laguage_models) | 159 | +| [mlops-for-all/mlops-for-all.github.io](https://github.com/mlops-for-all/mlops-for-all.github.io) | 158 | +| [wandb/wandbot](https://github.com/wandb/wandbot) | 158 | +| [elastic/elasticsearch-labs](https://github.com/elastic/elasticsearch-labs) | 157 | +| [shroominic/funcchain](https://github.com/shroominic/funcchain) | 157 | +| [deeppavlov/dream](https://github.com/deeppavlov/dream) | 156 | +| [mluogh/eastworld](https://github.com/mluogh/eastworld) | 154 | +| [georgesung/llm_qlora](https://github.com/georgesung/llm_qlora) | 154 | +| [RUC-GSAI/YuLan-Rec](https://github.com/RUC-GSAI/YuLan-Rec) | 153 | +| [KylinC/ChatFinance](https://github.com/KylinC/ChatFinance) | 152 | +| [Dicklesworthstone/llama2_aided_tesseract](https://github.com/Dicklesworthstone/llama2_aided_tesseract) | 152 | +| [c0sogi/LLMChat](https://github.com/c0sogi/LLMChat) | 152 | +| [eunomia-bpf/GPTtrace](https://github.com/eunomia-bpf/GPTtrace) | 152 | +| [ErikBjare/gptme](https://github.com/ErikBjare/gptme) | 152 | +| [Klingefjord/chatgpt-telegram](https://github.com/Klingefjord/chatgpt-telegram) | 152 | +| [RoboCoachTechnologies/ROScribe](https://github.com/RoboCoachTechnologies/ROScribe) | 151 | +| [Aggregate-Intellect/sherpa](https://github.com/Aggregate-Intellect/sherpa) | 151 | +| [3Alan/DocsMind](https://github.com/3Alan/DocsMind) | 151 | +| [tangqiaoyu/ToolAlpaca](https://github.com/tangqiaoyu/ToolAlpaca) | 150 | +| [kulltc/chatgpt-sql](https://github.com/kulltc/chatgpt-sql) | 150 | +| [mallahyari/drqa](https://github.com/mallahyari/drqa) | 150 | +| [MedalCollector/Orator](https://github.com/MedalCollector/Orator) | 149 | +| [Teahouse-Studios/akari-bot](https://github.com/Teahouse-Studios/akari-bot) | 149 | +| [realminchoi/babyagi-ui](https://github.com/realminchoi/babyagi-ui) | 148 | +| [ssheng/BentoChain](https://github.com/ssheng/BentoChain) | 148 | +| [lmstudio-ai/examples](https://github.com/lmstudio-ai/examples) | 147 | +| [solana-labs/chatgpt-plugin](https://github.com/solana-labs/chatgpt-plugin) | 147 | +| [aurelio-labs/arxiv-bot](https://github.com/aurelio-labs/arxiv-bot) | 147 | +| [Jaseci-Labs/jaseci](https://github.com/Jaseci-Labs/jaseci) | 146 | +| [menloparklab/langchain-cohere-qdrant-doc-retrieval](https://github.com/menloparklab/langchain-cohere-qdrant-doc-retrieval) | 146 | +| [trancethehuman/entities-extraction-web-scraper](https://github.com/trancethehuman/entities-extraction-web-scraper) | 144 | +| [peterw/StoryStorm](https://github.com/peterw/StoryStorm) | 144 | +| [grumpyp/chroma-langchain-tutorial](https://github.com/grumpyp/chroma-langchain-tutorial) | 144 | +| [gh18l/CrawlGPT](https://github.com/gh18l/CrawlGPT) | 142 | +| [langchain-ai/langchain-aws-template](https://github.com/langchain-ai/langchain-aws-template) | 142 | +| [yasyf/summ](https://github.com/yasyf/summ) | 141 | +| [petehunt/langchain-github-bot](https://github.com/petehunt/langchain-github-bot) | 141 | +| [hirokidaichi/wanna](https://github.com/hirokidaichi/wanna) | 140 | +| [jina-ai/fastapi-serve](https://github.com/jina-ai/fastapi-serve) | 139 | +| [zenml-io/zenml-projects](https://github.com/zenml-io/zenml-projects) | 139 | +| [jlonge4/local_llama](https://github.com/jlonge4/local_llama) | 139 | +| [smyja/blackmaria](https://github.com/smyja/blackmaria) | 138 | +| [ChuloAI/BrainChulo](https://github.com/ChuloAI/BrainChulo) | 137 | +| [log1stics/voice-generator-webui](https://github.com/log1stics/voice-generator-webui) | 137 | +| [davila7/file-gpt](https://github.com/davila7/file-gpt) | 137 | +| [dcaribou/transfermarkt-datasets](https://github.com/dcaribou/transfermarkt-datasets) | 136 | +| [ciare-robotics/world-creator](https://github.com/ciare-robotics/world-creator) | 135 | +| [Undertone0809/promptulate](https://github.com/Undertone0809/promptulate) | 134 | +| [fixie-ai/fixie-examples](https://github.com/fixie-ai/fixie-examples) | 134 | +| [run-llama/ai-engineer-workshop](https://github.com/run-llama/ai-engineer-workshop) | 133 | +| [definitive-io/code-indexer-loop](https://github.com/definitive-io/code-indexer-loop) | 131 | +| [mortium91/langchain-assistant](https://github.com/mortium91/langchain-assistant) | 131 | +| [baidubce/bce-qianfan-sdk](https://github.com/baidubce/bce-qianfan-sdk) | 130 | +| [Ngonie-x/langchain_csv](https://github.com/Ngonie-x/langchain_csv) | 130 | +| [IvanIsCoding/ResuLLMe](https://github.com/IvanIsCoding/ResuLLMe) | 130 | +| [AnchoringAI/anchoring-ai](https://github.com/AnchoringAI/anchoring-ai) | 129 | +| [Azure/business-process-automation](https://github.com/Azure/business-process-automation) | 128 | +| [athina-ai/athina-sdk](https://github.com/athina-ai/athina-sdk) | 126 | +| [thunlp/ChatEval](https://github.com/thunlp/ChatEval) | 126 | +| [prof-frink-lab/slangchain](https://github.com/prof-frink-lab/slangchain) | 126 | +| [vietanhdev/pautobot](https://github.com/vietanhdev/pautobot) | 125 | +| [awslabs/generative-ai-cdk-constructs](https://github.com/awslabs/generative-ai-cdk-constructs) | 124 | +| [sdaaron/QueryGPT](https://github.com/sdaaron/QueryGPT) | 124 | +| [rabbitmetrics/langchain-13-min](https://github.com/rabbitmetrics/langchain-13-min) | 124 | +| [AutoLLM/AutoAgents](https://github.com/AutoLLM/AutoAgents) | 122 | +| [nicknochnack/Nopenai](https://github.com/nicknochnack/Nopenai) | 122 | +| [wombyz/HormoziGPT](https://github.com/wombyz/HormoziGPT) | 122 | +| [dotvignesh/PDFChat](https://github.com/dotvignesh/PDFChat) | 122 | +| [topoteretes/PromethAI-Backend](https://github.com/topoteretes/PromethAI-Backend) | 121 | +| [nftblackmagic/flask-langchain](https://github.com/nftblackmagic/flask-langchain) | 121 | +| [vishwasg217/finsight](https://github.com/vishwasg217/finsight) | 120 | +| [snap-stanford/MLAgentBench](https://github.com/snap-stanford/MLAgentBench) | 120 | +| [Azure/app-service-linux-docs](https://github.com/Azure/app-service-linux-docs) | 120 | +| [nyanp/chat2plot](https://github.com/nyanp/chat2plot) | 120 | +| [ant4g0nist/polar](https://github.com/ant4g0nist/polar) | 119 | +| [aws-samples/cdk-eks-blueprints-patterns](https://github.com/aws-samples/cdk-eks-blueprints-patterns) | 119 | +| [aws-samples/amazon-kendra-langchain-extensions](https://github.com/aws-samples/amazon-kendra-langchain-extensions) | 119 | +| [Xueheng-Li/SynologyChatbotGPT](https://github.com/Xueheng-Li/SynologyChatbotGPT) | 119 | +| [CodeAlchemyAI/ViLT-GPT](https://github.com/CodeAlchemyAI/ViLT-GPT) | 117 | +| [Lin-jun-xiang/docGPT-langchain](https://github.com/Lin-jun-xiang/docGPT-langchain) | 117 | +| [ademakdogan/ChatSQL](https://github.com/ademakdogan/ChatSQL) | 116 | +| [aniketmaurya/llm-inference](https://github.com/aniketmaurya/llm-inference) | 115 | +| [xuwenhao/mactalk-ai-course](https://github.com/xuwenhao/mactalk-ai-course) | 115 | +| [cmooredev/RepoReader](https://github.com/cmooredev/RepoReader) | 115 | +| [abi/autocommit](https://github.com/abi/autocommit) | 115 | +| [MIDORIBIN/langchain-gpt4free](https://github.com/MIDORIBIN/langchain-gpt4free) | 114 | +| [finaldie/auto-news](https://github.com/finaldie/auto-news) | 114 | +| [Anil-matcha/Youtube-to-chatbot](https://github.com/Anil-matcha/Youtube-to-chatbot) | 114 | +| [avrabyt/MemoryBot](https://github.com/avrabyt/MemoryBot) | 114 | +| [Capsize-Games/airunner](https://github.com/Capsize-Games/airunner) | 113 | +| [atisharma/llama_farm](https://github.com/atisharma/llama_farm) | 113 | +| [mbchang/data-driven-characters](https://github.com/mbchang/data-driven-characters) | 112 | +| [fiddler-labs/fiddler-auditor](https://github.com/fiddler-labs/fiddler-auditor) | 112 | +| [dirkjbreeuwer/gpt-automated-web-scraper](https://github.com/dirkjbreeuwer/gpt-automated-web-scraper) | 111 | +| [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 | +| [hwchase17/langchain-gradio-template](https://github.com/hwchase17/langchain-gradio-template) | 111 | +| [artas728/spelltest](https://github.com/artas728/spelltest) | 110 | +| [NVIDIA/GenerativeAIExamples](https://github.com/NVIDIA/GenerativeAIExamples) | 109 | +| [Azure/aistudio-copilot-sample](https://github.com/Azure/aistudio-copilot-sample) | 108 | +| [codefuse-ai/codefuse-chatbot](https://github.com/codefuse-ai/codefuse-chatbot) | 108 | +| [apirrone/Memento](https://github.com/apirrone/Memento) | 108 | +| [e-johnstonn/GPT-Doc-Summarizer](https://github.com/e-johnstonn/GPT-Doc-Summarizer) | 108 | +| [salesforce/BOLAA](https://github.com/salesforce/BOLAA) | 107 | +| [Erol444/gpt4-openai-api](https://github.com/Erol444/gpt4-openai-api) | 106 | +| [linjungz/chat-with-your-doc](https://github.com/linjungz/chat-with-your-doc) | 106 | +| [crosleythomas/MirrorGPT](https://github.com/crosleythomas/MirrorGPT) | 106 | +| [panaverse/learn-generative-ai](https://github.com/panaverse/learn-generative-ai) | 105 | +| [Azure/azure-sdk-tools](https://github.com/Azure/azure-sdk-tools) | 105 | +| [malywut/gpt_examples](https://github.com/malywut/gpt_examples) | 105 | +| [ritun16/chain-of-verification](https://github.com/ritun16/chain-of-verification) | 104 | +| [langchain-ai/langchain-benchmarks](https://github.com/langchain-ai/langchain-benchmarks) | 104 | +| [lightninglabs/LangChainBitcoin](https://github.com/lightninglabs/LangChainBitcoin) | 104 | +| [flepied/second-brain-agent](https://github.com/flepied/second-brain-agent) | 103 | +| [llmapp/openai.mini](https://github.com/llmapp/openai.mini) | 102 | +| [gimlet-ai/tddGPT](https://github.com/gimlet-ai/tddGPT) | 102 | +| [jlonge4/gpt_chatwithPDF](https://github.com/jlonge4/gpt_chatwithPDF) | 102 | +| [agentification/RAFA_code](https://github.com/agentification/RAFA_code) | 101 | +| [pacman100/DHS-LLM-Workshop](https://github.com/pacman100/DHS-LLM-Workshop) | 101 | +| [aws-samples/private-llm-qa-bot](https://github.com/aws-samples/private-llm-qa-bot) | 101 | _Generated by [github-dependents-info](https://github.com/nvuillam/github-dependents-info)_ diff --git a/docs/docs/additional_resources/tutorials.mdx b/docs/docs/additional_resources/tutorials.mdx index bbb792b7379..6c4adf69da7 100644 --- a/docs/docs/additional_resources/tutorials.mdx +++ b/docs/docs/additional_resources/tutorials.mdx @@ -6,16 +6,19 @@ - [LangChain AI Handbook](https://www.pinecone.io/learn/langchain/) By **James Briggs** and **Francisco Ingham** - [LangChain Cheatsheet](https://pub.towardsai.net/langchain-cheatsheet-all-secrets-on-a-single-page-8be26b721cde) by **Ivan Reznikov** - -## Tutorials +## Tutorials ### [by Greg Kamradt](https://www.youtube.com/playlist?list=PLqZXAkvF1bPNQER9mLmDbntNfSpzdDIU5) -### [by Sam Witteveen](https://www.youtube.com/playlist?list=PL8motc6AQftk1Bs42EW45kwYbyJ4jOdiZ) -### [by James Briggs](https://www.youtube.com/playlist?list=PLIUOU7oqGTLieV9uTIFMm6_4PXg-hlN6F) -### [by Prompt Engineering](https://www.youtube.com/playlist?list=PLVEEucA9MYhOu89CX8H3MBZqayTbcCTMr) -### [by Mayo Oshin](https://www.youtube.com/@chatwithdata/search?query=langchain) -### [by 1 little Coder](https://www.youtube.com/playlist?list=PLpdmBGJ6ELUK-v0MK-t4wZmVEbxM5xk6L) +### [by Sam Witteveen](https://www.youtube.com/playlist?list=PL8motc6AQftk1Bs42EW45kwYbyJ4jOdiZ) + +### [by James Briggs](https://www.youtube.com/playlist?list=PLIUOU7oqGTLieV9uTIFMm6_4PXg-hlN6F) + +### [by Prompt Engineering](https://www.youtube.com/playlist?list=PLVEEucA9MYhOu89CX8H3MBZqayTbcCTMr) + +### [by Mayo Oshin](https://www.youtube.com/@chatwithdata/search?query=langchain) + +### [by 1 little Coder](https://www.youtube.com/playlist?list=PLpdmBGJ6ELUK-v0MK-t4wZmVEbxM5xk6L) ## Courses @@ -45,6 +48,4 @@ ## [Documentation: Use cases](/docs/use_cases) ---------------------- - - +--- diff --git a/docs/docs/additional_resources/youtube.mdx b/docs/docs/additional_resources/youtube.mdx index 807f4521127..981fc7303ef 100644 --- a/docs/docs/additional_resources/youtube.mdx +++ b/docs/docs/additional_resources/youtube.mdx @@ -5,6 +5,7 @@ ### [Official LangChain YouTube channel](https://www.youtube.com/@LangChain) ### Introduction to LangChain with Harrison Chase, creator of LangChain + - [Building the Future with LLMs, `LangChain`, & `Pinecone`](https://youtu.be/nMniwlGyX-c) by [Pinecone](https://www.youtube.com/@pinecone-io) - [LangChain and Weaviate with Harrison Chase and Bob van Luijt - Weaviate Podcast #36](https://youtu.be/lhby7Ql7hbk) by [Weaviate • Vector Database](https://www.youtube.com/@Weaviate) - [LangChain Demo + Q&A with Harrison Chase](https://youtu.be/zaYTXQFR0_s?t=788) by [Full Stack Deep Learning](https://www.youtube.com/@FullStackDeepLearning) @@ -13,7 +14,7 @@ ## Videos (sorted by views) - [Using `ChatGPT` with YOUR OWN Data. This is magical. (LangChain OpenAI API)](https://youtu.be/9AXP7tCI9PI) by [TechLead](https://www.youtube.com/@TechLead) -- [First look - `ChatGPT` + `WolframAlpha` (`GPT-3.5` and Wolfram|Alpha via LangChain by James Weaver)](https://youtu.be/wYGbY811oMo) by [Dr Alan D. Thompson](https://www.youtube.com/@DrAlanDThompson) +- [First look - `ChatGPT` + `WolframAlpha` (`GPT-3.5` and Wolfram|Alpha via LangChain by James Weaver)](https://youtu.be/wYGbY811oMo) by [Dr Alan D. Thompson](https://www.youtube.com/@DrAlanDThompson) - [LangChain explained - The hottest new Python framework](https://youtu.be/RoR4XJw8wIc) by [AssemblyAI](https://www.youtube.com/@AssemblyAI) - [Chatbot with INFINITE MEMORY using `OpenAI` & `Pinecone` - `GPT-3`, `Embeddings`, `ADA`, `Vector DB`, `Semantic`](https://youtu.be/2xNzB7xq8nk) by [David Shapiro ~ AI](https://www.youtube.com/@DavidShapiroAutomator) - [LangChain for LLMs is... basically just an Ansible playbook](https://youtu.be/X51N9C-OhlE) by [David Shapiro ~ AI](https://www.youtube.com/@DavidShapiroAutomator) @@ -37,7 +38,7 @@ - [Building AI LLM Apps with LangChain (and more?) - LIVE STREAM](https://www.youtube.com/live/M-2Cj_2fzWI?feature=share) by [Nicholas Renotte](https://www.youtube.com/@NicholasRenotte) - [`ChatGPT` with any `YouTube` video using langchain and `chromadb`](https://youtu.be/TQZfB2bzVwU) by [echohive](https://www.youtube.com/@echohive) - [How to Talk to a `PDF` using LangChain and `ChatGPT`](https://youtu.be/v2i1YDtrIwk) by [Automata Learning Lab](https://www.youtube.com/@automatalearninglab) -- [Langchain Document Loaders Part 1: Unstructured Files](https://youtu.be/O5C0wfsen98) by [Merk](https://www.youtube.com/@merksworld) +- [Langchain Document Loaders Part 1: Unstructured Files](https://youtu.be/O5C0wfsen98) by [Merk](https://www.youtube.com/@merksworld) - [LangChain - Prompt Templates (what all the best prompt engineers use)](https://youtu.be/1aRu8b0XNOQ) by [Nick Daigler](https://www.youtube.com/@nick_daigs) - [LangChain. Crear aplicaciones Python impulsadas por GPT](https://youtu.be/DkW_rDndts8) by [Jesús Conde](https://www.youtube.com/@0utKast) - [Easiest Way to Use GPT In Your Products | LangChain Basics Tutorial](https://youtu.be/fLy0VenZyGc) by [Rachel Woods](https://www.youtube.com/@therachelwoods) @@ -108,7 +109,7 @@ - ⛓ [How to Run `LLaMA` Locally on CPU or GPU | Python & Langchain & CTransformers Guide](https://youtu.be/SvjWDX2NqiM?si=DxFml8XeGhiLTzLV) by [Code With Prince](https://www.youtube.com/@CodeWithPrince) - ⛓ [PyData Heidelberg #11 - TimeSeries Forecasting & LLM Langchain](https://www.youtube.com/live/Glbwb5Hxu18?si=PIEY8Raq_C9PCHuW) by [PyData](https://www.youtube.com/@PyDataTV) - ⛓ [Prompt Engineering in Web Development | Using LangChain and Templates with OpenAI](https://youtu.be/pK6WzlTOlYw?si=fkcDQsBG2h-DM8uQ) by [Akamai Developer -](https://www.youtube.com/@AkamaiDeveloper) + ](https://www.youtube.com/@AkamaiDeveloper) - ⛓ [Retrieval-Augmented Generation (RAG) using LangChain and `Pinecone` - The RAG Special Episode](https://youtu.be/J_tCD_J6w3s?si=60Mnr5VD9UED9bGG) by [Generative AI and Data Science On AWS](https://www.youtube.com/@GenerativeAIDataScienceOnAWS) - ⛓ [`LLAMA2 70b-chat` Multiple Documents Chatbot with Langchain & Streamlit |All OPEN SOURCE|Replicate API](https://youtu.be/vhghB81vViM?si=dszzJnArMeac7lyc) by [DataInsightEdge](https://www.youtube.com/@DataInsightEdge01) - ⛓ [Chatting with 44K Fashion Products: LangChain Opportunities and Pitfalls](https://youtu.be/Zudgske0F_s?si=8HSshHoEhh0PemJA) by [Rabbitmetrics](https://www.youtube.com/@rabbitmetrics) @@ -123,8 +124,8 @@ - ⛓ [Build Chat PDF app in Python with LangChain, OpenAI, Streamlit | Full project | Learn Coding](https://www.youtube.com/watch?v=WYzFzZg4YZI) by [Jutsupoint](https://www.youtube.com/@JutsuPoint) - ⛓ [Build Eminem Bot App with LangChain, Streamlit, OpenAI | Full Python Project | Tutorial | AI ChatBot](https://www.youtube.com/watch?v=a2shHB4MRZ4) by [Jutsupoint](https://www.youtube.com/@JutsuPoint) - ### [Prompt Engineering and LangChain](https://www.youtube.com/watch?v=muXbPpG_ys4&list=PLEJK-H61Xlwzm5FYLDdKt_6yibO33zoMW) by [Venelin Valkov](https://www.youtube.com/@venelin_valkov) + - [Getting Started with LangChain: Load Custom Data, Run OpenAI Models, Embeddings and `ChatGPT`](https://www.youtube.com/watch?v=muXbPpG_ys4) - [Loaders, Indexes & Vectorstores in LangChain: Question Answering on `PDF` files with `ChatGPT`](https://www.youtube.com/watch?v=FQnvfR8Dmr0) - [LangChain Models: `ChatGPT`, `Flan Alpaca`, `OpenAI Embeddings`, Prompt Templates & Streaming](https://www.youtube.com/watch?v=zy6LiK5F5-s) @@ -132,6 +133,6 @@ - [Analyze Custom CSV Data with `GPT-4` using Langchain](https://www.youtube.com/watch?v=Ew3sGdX8at4) - [Build ChatGPT Chatbots with LangChain Memory: Understanding and Implementing Memory in Conversations](https://youtu.be/CyuUlf54wTs) +--- ---------------------- ⛓ icon marks a new addition [last update 2024-02-04] diff --git a/docs/docs/changelog/langchain.mdx b/docs/docs/changelog/langchain.mdx index bffcce729a9..84fae3bdfac 100644 --- a/docs/docs/changelog/langchain.mdx +++ b/docs/docs/changelog/langchain.mdx @@ -10,8 +10,8 @@ No deletions. Deprecated classes and methods will be removed in 0.2.0 -| Deprecated | Alternative | Reason | -|---------------------------------|-----------------------------------|------------------------------------------------| +| Deprecated | Alternative | Reason | +| ------------------------------- | --------------------------------- | ---------------------------------------------- | | ChatVectorDBChain | ConversationalRetrievalChain | More general to all retrievers | | create_ernie_fn_chain | create_ernie_fn_runnable | Use LCEL under the hood | | created_structured_output_chain | create_structured_output_runnable | Use LCEL under the hood | @@ -33,4 +33,4 @@ Deprecated classes and methods will be removed in 0.2.0 | OpenAIMultiFunctionsAgent | create_openai_tools_agent | Use LCEL builder over a class | | SelfAskWithSearchAgent | create_self_ask_with_search | Use LCEL builder over a class | | StructuredChatAgent | create_structured_chat_agent | Use LCEL builder over a class | -| XMLAgent | create_xml_agent | Use LCEL builder over a class | \ No newline at end of file +| XMLAgent | create_xml_agent | Use LCEL builder over a class | diff --git a/docs/docs/contributing/code.mdx b/docs/docs/contributing/code.mdx index d3f957d1f89..0334154246d 100644 --- a/docs/docs/contributing/code.mdx +++ b/docs/docs/contributing/code.mdx @@ -1,6 +1,7 @@ --- sidebar_position: 1 --- + # Contribute Code To contribute to this project, please follow the ["fork and pull request"](https://docs.github.com/en/get-started/quickstart/contributing-to-projects) workflow. @@ -13,6 +14,7 @@ Pull requests cannot land without passing the formatting, linting, and testing c [Formatting and Linting](#formatting-and-linting) for how to run these checks locally. It's essential that we maintain great documentation and testing. If you: + - Fix a bug - Add a relevant unit or integration test when possible. These live in `tests/unit_tests` and `tests/integration_tests`. - Make an improvement @@ -34,7 +36,7 @@ For a [development container](https://containers.dev/), see the [.devcontainer f This project utilizes [Poetry](https://python-poetry.org/) v1.7.1+ as a dependency manager. -❗Note: *Before installing Poetry*, if you use `Conda`, create and activate a new Conda env (e.g. `conda create -n langchain python=3.9`) +❗Note: _Before installing Poetry_, if you use `Conda`, create and activate a new Conda env (e.g. `conda create -n langchain python=3.9`) Install Poetry: **[documentation on how to install it](https://python-poetry.org/docs/#installation)**. @@ -44,6 +46,7 @@ tell Poetry to use the virtualenv python environment (`poetry config virtualenvs ### Different packages This repository contains multiple packages: + - `langchain-core`: Base interfaces for key abstractions as well as logic for combining them in chains (LangChain Expression Language). - `langchain-community`: Third-party integrations of various components. - `langchain`: Chains, agents, and retrieval logic that makes up the cognitive architecture of your applications. @@ -219,16 +222,20 @@ any side effects (no warnings, no errors, no exceptions). To introduce the dependency to the pyproject.toml file correctly, please do the following: 1. Add the dependency to the main group as an optional dependency - ```bash - poetry add --optional [package_name] - ``` + +```bash +poetry add --optional [package_name] +``` + 2. Open pyproject.toml and add the dependency to the `extended_testing` extra 3. Relock the poetry file to update the extra. - ```bash - poetry lock --no-update - ``` + +```bash +poetry lock --no-update +``` + 4. Add a unit test that the very least attempts to import the new code. Ideally, the unit -test makes use of lightweight fixtures to test the logic of the code. + test makes use of lightweight fixtures to test the logic of the code. 5. Please use the `@pytest.mark.requires(package_name)` decorator for any tests that require the dependency. ## Adding a Jupyter Notebook diff --git a/docs/docs/contributing/documentation.mdx b/docs/docs/contributing/documentation.mdx index b7bba374d11..2851832f8c8 100644 --- a/docs/docs/contributing/documentation.mdx +++ b/docs/docs/contributing/documentation.mdx @@ -1,19 +1,20 @@ --- sidebar_position: 3 --- + # Contribute Documentation LangChain documentation consists of two components: 1. Main Documentation: Hosted at [python.langchain.com](https://python.langchain.com/), -this comprehensive resource serves as the primary user-facing documentation. -It covers a wide array of topics, including tutorials, use cases, integrations, -and more, offering extensive guidance on building with LangChain. -The content for this documentation lives in the `/docs` directory of the monorepo. + this comprehensive resource serves as the primary user-facing documentation. + It covers a wide array of topics, including tutorials, use cases, integrations, + and more, offering extensive guidance on building with LangChain. + The content for this documentation lives in the `/docs` directory of the monorepo. 2. In-code Documentation: This is documentation of the codebase itself, which is also -used to generate the externally facing [API Reference](https://api.python.langchain.com/en/latest/langchain_api_reference.html). -The content for the API reference is autogenerated by scanning the docstrings in the codebase. For this reason we ask that -developers document their code well. + used to generate the externally facing [API Reference](https://api.python.langchain.com/en/latest/langchain_api_reference.html). + The content for the API reference is autogenerated by scanning the docstrings in the codebase. For this reason we ask that + developers document their code well. The main documentation is built using [Quarto](https://quarto.org) and [Docusaurus 2](https://docusaurus.io/). @@ -59,7 +60,7 @@ From the **monorepo root**, run the following command to install the dependencie ```bash poetry install --with lint,docs --no-root -```` +``` ### Building @@ -171,4 +172,4 @@ make lint After pushing documentation changes to the repository, you can preview and verify that the changes are what you wanted by clicking the `View deployment` or `Visit Preview` buttons on the pull request `Conversation` page. This will take you to a preview of the documentation changes. -This preview is created by [Vercel](https://vercel.com/docs/getting-started-with-vercel). \ No newline at end of file +This preview is created by [Vercel](https://vercel.com/docs/getting-started-with-vercel). diff --git a/docs/docs/contributing/faq.mdx b/docs/docs/contributing/faq.mdx index e0e81564a49..fba0607ac20 100644 --- a/docs/docs/contributing/faq.mdx +++ b/docs/docs/contributing/faq.mdx @@ -2,6 +2,7 @@ sidebar_position: 6 sidebar_label: FAQ --- + # Frequently Asked Questions ## Pull Requests (PRs) @@ -13,7 +14,7 @@ necessary before merging it. Oftentimes, it is more efficient for the maintainers to make these changes themselves before merging, rather than asking you to do so in code review. -By default, most pull requests will have a +By default, most pull requests will have a `✅ Maintainers are allowed to edit this pull request.` badge in the right-hand sidebar. diff --git a/docs/docs/contributing/index.mdx b/docs/docs/contributing/index.mdx index d25212f2862..27984f9b7ea 100644 --- a/docs/docs/contributing/index.mdx +++ b/docs/docs/contributing/index.mdx @@ -1,6 +1,7 @@ --- sidebar_position: 0 --- + # Welcome Contributors Hi there! Thank you for even being interested in contributing to LangChain. @@ -51,4 +52,4 @@ we do not want these to get in the way of getting good code into the codebase. # 🌟 Recognition If your contribution has made its way into a release, we will want to give you credit on Twitter (only if you want though)! -If you have a Twitter account you would like us to mention, please let us know in the PR or through another means. \ No newline at end of file +If you have a Twitter account you would like us to mention, please let us know in the PR or through another means. diff --git a/docs/docs/contributing/integrations.mdx b/docs/docs/contributing/integrations.mdx index 7c01c95f96d..e29001e23cc 100644 --- a/docs/docs/contributing/integrations.mdx +++ b/docs/docs/contributing/integrations.mdx @@ -1,6 +1,7 @@ --- sidebar_position: 5 --- + # Contribute Integrations To begin, make sure you have all the dependencies outlined in guide on [Contributing Code](./code). @@ -18,7 +19,7 @@ In the following sections, we'll walk through how to contribute to each of these The `langchain-community` package is in `libs/community` and contains most integrations. -It can be installed with `pip install langchain-community`, and exported members can be imported with code like +It can be installed with `pip install langchain-community`, and exported members can be imported with code like ```python from langchain_community.chat_models import ChatParrotLink @@ -26,7 +27,7 @@ from langchain_community.llms import ParrotLinkLLM from langchain_community.vectorstores import ParrotLinkVectorStore ``` -The `community` package relies on manually-installed dependent packages, so you will see errors +The `community` package relies on manually-installed dependent packages, so you will see errors if you try to import a package that is not installed. In our fake example, if you tried to import `ParrotLinkLLM` without installing `parrot-link-sdk`, you will see an `ImportError` telling you to install it when trying to use it. Let's say we wanted to implement a chat model for Parrot Link AI. We would create a new file in `libs/community/langchain_community/chat_models/parrot_link.py` with the following code: @@ -61,11 +62,11 @@ And add documentation to: Partner packages can be hosted in the `LangChain` monorepo or in an external repo. -Partner package in the `LangChain` repo is placed in `libs/partners/{partner}` +Partner package in the `LangChain` repo is placed in `libs/partners/{partner}` and the package source code is in `libs/partners/{partner}/langchain_{partner}`. -A package is -installed by users with `pip install langchain-{partner}`, and the package members +A package is +installed by users with `pip install langchain-{partner}`, and the package members can be imported with code like: ```python @@ -142,11 +143,11 @@ to the relevant `docs/docs/integrations` directory in the monorepo root. ### (If Necessary) Deprecate community integration -Note: this is only necessary if you're migrating an existing community integration into -a partner package. If the component you're integrating is net-new to LangChain (i.e. +Note: this is only necessary if you're migrating an existing community integration into +a partner package. If the component you're integrating is net-new to LangChain (i.e. not already in the `community` package), you can skip this step. -Let's pretend we migrated our `ChatParrotLink` chat model from the community package to +Let's pretend we migrated our `ChatParrotLink` chat model from the community package to the partner package. We would need to deprecate the old model in the community package. We would do that by adding a `@deprecated` decorator to the old model as follows, in @@ -165,15 +166,15 @@ After our change, it would look like this: from langchain_core._api.deprecation import deprecated @deprecated( - since="0.0.", - removal="0.2.0", + since="0.0.", + removal="0.2.0", alternative_import="langchain_parrot_link.ChatParrotLink" ) class ChatParrotLink(BaseChatModel): ... ``` -You should do this for *each* component that you're migrating to the partner package. +You should do this for _each_ component that you're migrating to the partner package. ### Additional steps @@ -190,12 +191,12 @@ Maintainer steps (Contributors should **not** do these): ## Partner package in external repo -If you are creating a partner package in an external repo, you should follow the same steps as above, +If you are creating a partner package in an external repo, you should follow the same steps as above, but you will need to set up your own CI/CD and package management. Name your package as `langchain-{partner}-{integration}`. Still, you have to create the `libs/partners/{partner}-{integration}` folder in the `LangChain` monorepo -and add a `README.md` file with a link to the external repo. +and add a `README.md` file with a link to the external repo. See this [example](https://github.com/langchain-ai/langchain/tree/master/libs/partners/google-genai). This allows keeping track of all the partner packages in the `LangChain` documentation. diff --git a/docs/docs/contributing/repo_structure.mdx b/docs/docs/contributing/repo_structure.mdx index 90f212265c8..977779be4fa 100644 --- a/docs/docs/contributing/repo_structure.mdx +++ b/docs/docs/contributing/repo_structure.mdx @@ -1,6 +1,7 @@ --- sidebar_position: 0.5 --- + # Repository Structure If you plan on contributing to LangChain code or documentation, it can be useful @@ -31,8 +32,8 @@ Here's the structure visualized as a tree: The root directory also contains the following files: -* `pyproject.toml`: Dependencies for building docs and linting docs, cookbook. -* `Makefile`: A file that contains shortcuts for building, linting and docs and cookbook. +- `pyproject.toml`: Dependencies for building docs and linting docs, cookbook. +- `Makefile`: A file that contains shortcuts for building, linting and docs and cookbook. There are other files in the root directory level, but their presence should be self-explanatory. Feel free to browse around! diff --git a/docs/docs/contributing/testing.mdx b/docs/docs/contributing/testing.mdx index 5dd07992342..5b7eb7122db 100644 --- a/docs/docs/contributing/testing.mdx +++ b/docs/docs/contributing/testing.mdx @@ -46,11 +46,11 @@ If you add support for a new external API, please add a new integration test. **Warning:** Almost no tests should be integration tests. - Tests that require making network connections make it difficult for other - developers to test the code. +Tests that require making network connections make it difficult for other +developers to test the code. - Instead favor relying on `responses` library and/or mock.patch to mock - requests using small fixtures. +Instead favor relying on `responses` library and/or mock.patch to mock +requests using small fixtures. To install dependencies for integration tests: @@ -96,7 +96,6 @@ docker-compose -f elasticsearch.yml up For environments that requires more involving preparation, look for `*.sh`. For instance, `opensearch.sh` builds a required docker image and then launch opensearch. - ### Prepare environment variables for local testing: - copy `tests/integration_tests/.env.example` to `tests/integration_tests/.env` diff --git a/docs/docs/expression_language/cookbook/index.mdx b/docs/docs/expression_language/cookbook/index.mdx index 6effbfe9044..04e31e45969 100644 --- a/docs/docs/expression_language/cookbook/index.mdx +++ b/docs/docs/expression_language/cookbook/index.mdx @@ -8,4 +8,4 @@ import DocCardList from "@theme/DocCardList"; Example code for accomplishing common tasks with the LangChain Expression Language (LCEL). These examples show how to compose different Runnable (the core LCEL interface) components to achieve various tasks. If you're just getting acquainted with LCEL, the [Prompt + LLM](/docs/expression_language/cookbook/prompt_llm_parser) page is a good place to start. - \ No newline at end of file + diff --git a/docs/docs/expression_language/how_to/index.mdx b/docs/docs/expression_language/how_to/index.mdx index 0f0ef5d9730..b024e615a3f 100644 --- a/docs/docs/expression_language/how_to/index.mdx +++ b/docs/docs/expression_language/how_to/index.mdx @@ -6,4 +6,4 @@ sidebar_position: 2 import DocCardList from "@theme/DocCardList"; - \ No newline at end of file + diff --git a/docs/docs/get_started/installation.mdx b/docs/docs/get_started/installation.mdx index aaee3c247c8..ec08366aa89 100644 --- a/docs/docs/get_started/installation.mdx +++ b/docs/docs/get_started/installation.mdx @@ -4,8 +4,8 @@ To install LangChain run: -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; import CodeBlock from "@theme/CodeBlock"; @@ -13,7 +13,9 @@ import CodeBlock from "@theme/CodeBlock"; pip install langchain - conda install langchain -c conda-forge + + conda install langchain -c conda-forge + @@ -30,6 +32,7 @@ pip install -e . ``` ## LangChain community + The `langchain-community` package contains third-party integrations. It is automatically installed by `langchain`, but can also be used separately. Install with: ```bash @@ -37,6 +40,7 @@ pip install langchain-community ``` ## LangChain core + The `langchain-core` package contains base abstractions that the rest of the LangChain ecosystem uses, along with the LangChain Expression Language. It is automatically installed by `langchain`, but can also be used separately. Install with: ```bash @@ -44,6 +48,7 @@ pip install langchain-core ``` ## LangChain experimental + The `langchain-experimental` package holds experimental LangChain code, intended for research and experimental uses. Install with: @@ -52,6 +57,7 @@ pip install langchain-experimental ``` ## LangServe + LangServe helps developers deploy LangChain runnables and chains as a REST API. LangServe is automatically installed by LangChain CLI. If not using LangChain CLI, install with: @@ -59,9 +65,11 @@ If not using LangChain CLI, install with: ```bash pip install "langserve[all]" ``` + for both client and server dependencies. Or `pip install "langserve[client]"` for client code, and `pip install "langserve[server]"` for server code. ## LangChain CLI + The LangChain CLI is useful for working with LangChain templates and other LangServe projects. Install with: @@ -70,6 +78,7 @@ pip install langchain-cli ``` ## LangSmith SDK + The LangSmith SDK is automatically installed by LangChain. If not using LangChain, install with: diff --git a/docs/docs/get_started/introduction.mdx b/docs/docs/get_started/introduction.mdx index c10e01f2c3f..fdc5ad1a9c4 100644 --- a/docs/docs/get_started/introduction.mdx +++ b/docs/docs/get_started/introduction.mdx @@ -5,27 +5,30 @@ sidebar_position: 0 # Introduction **LangChain** is a framework for developing applications powered by language models. It enables applications that: + - **Are context-aware**: connect a language model to sources of context (prompt instructions, few shot examples, content to ground its response in, etc.) - **Reason**: rely on a language model to reason (about how to answer based on provided context, what actions to take, etc.) This framework consists of several parts. + - **LangChain Libraries**: The Python and JavaScript libraries. Contains interfaces and integrations for a myriad of components, a basic run time for combining these components into chains and agents, and off-the-shelf implementations of chains and agents. - **[LangChain Templates](/docs/templates)**: A collection of easily deployable reference architectures for a wide variety of tasks. - **[LangServe](/docs/langserve)**: A library for deploying LangChain chains as a REST API. - **[LangSmith](/docs/langsmith)**: A developer platform that lets you debug, test, evaluate, and monitor chains built on any LLM framework and seamlessly integrates with LangChain. -import ThemedImage from '@theme/ThemedImage'; +import ThemedImage from "@theme/ThemedImage"; Together, these products simplify the entire application lifecycle: + - **Develop**: Write your applications in LangChain/LangChain.js. Hit the ground running using Templates for reference. - **Productionize**: Use LangSmith to inspect, test and monitor your chains, so that you can constantly improve and deploy with confidence. - **Deploy**: Turn any chain into an API with LangServe. @@ -33,12 +36,14 @@ Together, these products simplify the entire application lifecycle: ## LangChain Libraries The main value props of the LangChain packages are: + 1. **Components**: composable tools and integrations for working with language models. Components are modular and easy-to-use, whether you are using the rest of the LangChain framework or not 2. **Off-the-shelf chains**: built-in assemblages of components for accomplishing higher-level tasks Off-the-shelf chains make it easy to get started. Components make it easy to customize existing chains and build new ones. The LangChain libraries themselves are made up of several different packages. + - **`langchain-core`**: Base abstractions and LangChain Expression Language. - **`langchain-community`**: Third party integrations. - **`langchain`**: Chains, agents, and retrieval strategies that make up an application's cognitive architecture. @@ -66,39 +71,45 @@ LCEL is a declarative way to compose chains. LCEL was designed from day 1 to sup - **[How-to](/docs/expression_language/how_to)**: Key features of LCEL - **[Cookbook](/docs/expression_language/cookbook)**: Example code for accomplishing common tasks - ## Modules LangChain provides standard, extendable interfaces and integrations for the following modules: #### [Model I/O](/docs/modules/model_io/) + Interface with language models #### [Retrieval](/docs/modules/data_connection/) + Interface with application-specific data #### [Agents](/docs/modules/agents/) -Let models choose which tools to use given high-level directives +Let models choose which tools to use given high-level directives ## Examples, ecosystem, and resources ### [Use cases](/docs/use_cases/question_answering/) + Walkthroughs and techniques for common end-to-end use cases, like: + - [Document question answering](/docs/use_cases/question_answering/) - [Chatbots](/docs/use_cases/chatbots/) - [Analyzing structured data](/docs/use_cases/sql/) - and much more... ### [Integrations](/docs/integrations/providers/) + LangChain is part of a rich ecosystem of tools that integrate with our framework and build on top of it. Check out our growing list of [integrations](/docs/integrations/providers/). ### [Guides](../guides/debugging.md) + Best practices for developing with LangChain. ### [API reference](https://api.python.langchain.com) + Head to the reference section for full documentation of all classes and methods in the LangChain and LangChain Experimental Python packages. ### [Developer's guide](/docs/contributing) -Check out the developer's guide for guidelines on contributing and help getting your dev environment set up. +Check out the developer's guide for guidelines on contributing and help getting your dev environment set up. diff --git a/docs/docs/get_started/quickstart.mdx b/docs/docs/get_started/quickstart.mdx index 57e40cbdd8d..90357a15f6c 100644 --- a/docs/docs/get_started/quickstart.mdx +++ b/docs/docs/get_started/quickstart.mdx @@ -1,6 +1,7 @@ # Quickstart In this quickstart we'll show you how to: + - Get setup with LangChain, LangSmith and LangServe - Use the most basic and common components of LangChain: prompt templates, models, and output parsers - Use LangChain Expression Language, the protocol that LangChain is built on and which facilitates component chaining @@ -22,8 +23,8 @@ You do not NEED to go through the guide in a Jupyter Notebook, but it is recomme To install LangChain run: -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; import CodeBlock from "@theme/CodeBlock"; @@ -31,11 +32,12 @@ import CodeBlock from "@theme/CodeBlock"; pip install langchain - conda install langchain -c conda-forge + + conda install langchain -c conda-forge + - For more details, see our [Installation guide](/docs/get_started/installation). ### LangSmith @@ -105,10 +107,11 @@ llm = ChatOpenAI(openai_api_key="...") First, follow [these instructions](https://github.com/jmorganca/ollama) to set up and run a local Ollama instance: -* [Download](https://ollama.ai/download) -* Fetch a model via `ollama pull llama2` +- [Download](https://ollama.ai/download) +- Fetch a model via `ollama pull llama2` Then, make sure the Ollama server is running. After that, you can do: + ```python from langchain_community.llms import Ollama llm = Ollama(model="llama2") @@ -198,7 +201,7 @@ prompt = ChatPromptTemplate.from_messages([ We can now combine these into a simple LLM chain: ```python -chain = prompt | llm +chain = prompt | llm ``` We can now invoke it and ask the same question. It still won't know the answer, but it should respond in a more proper tone for a technical writer! @@ -231,15 +234,14 @@ chain.invoke({"input": "how can langsmith help with testing?"}) We've now successfully set up a basic LLM chain. We only touched on the basics of prompts, models, and output parsers - for a deeper dive into everything mentioned here, see [this section of documentation](/docs/modules/model_io). - ## Retrieval Chain In order to properly answer the original question ("how can langsmith help with testing?"), we need to provide additional context to the LLM. -We can do this via *retrieval*. +We can do this via _retrieval_. Retrieval is useful when you have **too much data** to pass to the LLM directly. You can then use a retriever to fetch only the most relevant pieces and pass those in. -In this process, we will look up relevant documents from a *Retriever* and then pass them into the prompt. +In this process, we will look up relevant documents from a _Retriever_ and then pass them into the prompt. A Retriever can be backed by anything - a SQL table, the internet, etc - but in this instance we will populate a vector store and use that as a retriever. For more information on vectorstores, see [this documentation](/docs/modules/data_connection/vectorstores). First, we need to load the data that we want to index. In order to do this, we will use the WebBaseLoader. This requires installing [BeautifulSoup](https://beautiful-soup-4.readthedocs.io/en/latest/): @@ -250,7 +252,6 @@ pip install beautifulsoup4 After that, we can import and use WebBaseLoader. - ```python from langchain_community.document_loaders import WebBaseLoader loader = WebBaseLoader("https://docs.smith.langchain.com/user_guide") @@ -283,6 +284,7 @@ from langchain_community.embeddings import OllamaEmbeddings embeddings = OllamaEmbeddings() ``` + @@ -411,6 +413,7 @@ retriever_chain.invoke({ "input": "Tell me how" }) ``` + You should see that this returns documents about testing in LangSmith. This is because the LLM generated a new query, combining the chat history with the follow up question. Now that we have this new retriever, we can create a new chain to continue the conversation with these retrieved documents in mind. @@ -435,6 +438,7 @@ retrieval_chain.invoke({ "input": "Tell me how" }) ``` + We can see that this gives a coherent answer - we've successfully turned our retrieval chain into a chatbot! ## Agent @@ -462,12 +466,12 @@ retriever_tool = create_retriever_tool( ) ``` - The search tool that we will use is [Tavily](/docs/integrations/retrievers/tavily). This will require an API key (they have generous free tier). After creating it on their platform, you need to set it as an environment variable: ```shell export TAVILY_API_KEY=... ``` + If you do not want to set up an API key, you can skip creating this tool. ```python @@ -485,6 +489,7 @@ tools = [retriever_tool, search] Now that we have the tools, we can create an agent to use them. We will go over this pretty quickly - for a deeper dive into what exactly is going on, check out the [Agent's Getting Started documentation](/docs/modules/agents) Install langchain hub first + ```bash pip install langchainhub ``` @@ -530,7 +535,6 @@ agent_executor.invoke({ We've now successfully set up a basic agent. We only touched on the basics of agents - for a deeper dive into everything mentioned here, see [this section of documentation](/docs/modules/agents). - ## Serving with LangServe Now that we've built an application, we need to serve it. That's where LangServe comes in. @@ -539,6 +543,7 @@ LangServe helps developers deploy LangChain chains as a REST API. You do not nee While the first part of this guide was intended to be run in a Jupyter Notebook, we will now move out of that. We will be creating a Python file and then interacting with it from the command line. Install with: + ```bash pip install "langserve[all]" ``` @@ -546,6 +551,7 @@ pip install "langserve[all]" ### Server To create a server for our application we'll make a `serve.py` file. This will contain our logic for serving our application. It consists of three things: + 1. The definition of our chain that we just built above 2. Our FastAPI app 3. A definition of a route from which to serve the chain, which is done with `langserve.add_routes` @@ -632,9 +638,11 @@ if __name__ == "__main__": ``` And that's it! If we execute this file: + ```bash python serve.py ``` + we should see our chain being served at localhost:8000. ### Playground diff --git a/docs/docs/guides/debugging.md b/docs/docs/guides/debugging.md index 140e26fb5fb..6af17da0173 100644 --- a/docs/docs/guides/debugging.md +++ b/docs/docs/guides/debugging.md @@ -4,8 +4,6 @@ If you're building with LLMs, at some point something will break, and you'll nee Here are a few different tools and functionalities to aid in debugging. - - ## Tracing Platforms with tracing capabilities like [LangSmith](/docs/langsmith/) and [WandB](/docs/integrations/providers/wandb_tracing) are the most comprehensive solutions for debugging. These platforms make it easy to not only log and visualize LLM apps, but also to actively debug, test and refine them. @@ -16,13 +14,12 @@ For anyone building production-grade LLM applications, we highly recommend using ## `set_debug` and `set_verbose` -If you're prototyping in Jupyter Notebooks or running Python scripts, it can be helpful to print out the intermediate steps of a Chain run. +If you're prototyping in Jupyter Notebooks or running Python scripts, it can be helpful to print out the intermediate steps of a Chain run. There are a number of ways to enable printing at varying degrees of verbosity. Let's suppose we have a simple agent, and want to visualize the actions it takes and tool outputs it receives. Without any debugging, here's what we see: - ```python from langchain.agents import AgentType, initialize_agent, load_tools from langchain_openai import ChatOpenAI @@ -32,7 +29,6 @@ tools = load_tools(["ddg-search", "llm-math"], llm=llm) agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION) ``` - ```python agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is their age in days (assume 365 days per year)?") ``` @@ -49,7 +45,6 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is Setting the global `debug` flag will cause all LangChain components with callback support (chains, models, agents, tools, retrievers) to print the inputs they receive and outputs they generate. This is the most verbose setting and will fully log raw inputs and outputs. - ```python from langchain.globals import set_debug @@ -62,7 +57,7 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is -``` +```` [chain/start] [1:RunTypeEnum.chain:AgentExecutor] Entering Chain run with input: { "input": "Who directed the 2023 film Oppenheimer and what is their age? What is their age in days (assume 365 days per year)?" @@ -370,7 +365,7 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is 'The director of the 2023 film Oppenheimer is Christopher Nolan and he is 52 years old. His age in days is approximately 18980 days.' -``` +```` @@ -380,7 +375,6 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is Setting the `verbose` flag will print out inputs and outputs in a slightly more readable format and will skip logging certain raw outputs (like the token usage stats for an LLM call) so that you can focus on application logic. - ```python from langchain.globals import set_verbose @@ -393,21 +387,21 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is -``` - - +```` + + > Entering new AgentExecutor chain... - - + + > Entering new LLMChain chain... Prompt after formatting: Answer the following questions as best you can. You have access to the following tools: - + duckduckgo_search: A wrapper around DuckDuckGo Search. Useful for when you need to answer questions about current events. Input should be a search query. Calculator: Useful for when you need to answer questions about math. - + Use the following format: - + Question: the input question you must answer Thought: you should always think about what to do Action: the action to take, should be one of [duckduckgo_search, Calculator] @@ -416,28 +410,28 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is ... (this Thought/Action/Action Input/Observation can repeat N times) Thought: I now know the final answer Final Answer: the final answer to the original input question - + Begin! - + Question: Who directed the 2023 film Oppenheimer and what is their age? What is their age in days (assume 365 days per year)? Thought: - + > Finished chain. First, I need to find out who directed the film Oppenheimer in 2023 and their birth date to calculate their age. Action: duckduckgo_search Action Input: "Director of the 2023 film Oppenheimer" Observation: Oppenheimer: Directed by Christopher Nolan. With Cillian Murphy, Emily Blunt, Robert Downey Jr., Alden Ehrenreich. The story of American scientist J. Robert Oppenheimer and his role in the development of the atomic bomb. In Christopher Nolan's new film, "Oppenheimer," Cillian Murphy stars as J. Robert ... 2023, 12:16 p.m. ET. ... including his role as the director of the Manhattan Engineer District, better ... J Robert Oppenheimer was the director of the secret Los Alamos Laboratory. It was established under US president Franklin D Roosevelt as part of the Manhattan Project to build the first atomic bomb. He oversaw the first atomic bomb detonation in the New Mexico desert in July 1945, code-named "Trinity". In this opening salvo of 2023's Oscar battle, Nolan has enjoined a star-studded cast for a retelling of the brilliant and haunted life of J. Robert Oppenheimer, the American physicist whose... Oppenheimer is a 2023 epic biographical thriller film written and directed by Christopher Nolan.It is based on the 2005 biography American Prometheus by Kai Bird and Martin J. Sherwin about J. Robert Oppenheimer, a theoretical physicist who was pivotal in developing the first nuclear weapons as part of the Manhattan Project and thereby ushering in the Atomic Age. Thought: - + > Entering new LLMChain chain... Prompt after formatting: Answer the following questions as best you can. You have access to the following tools: - + duckduckgo_search: A wrapper around DuckDuckGo Search. Useful for when you need to answer questions about current events. Input should be a search query. Calculator: Useful for when you need to answer questions about math. - + Use the following format: - + Question: the input question you must answer Thought: you should always think about what to do Action: the action to take, should be one of [duckduckgo_search, Calculator] @@ -446,32 +440,32 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is ... (this Thought/Action/Action Input/Observation can repeat N times) Thought: I now know the final answer Final Answer: the final answer to the original input question - + Begin! - + Question: Who directed the 2023 film Oppenheimer and what is their age? What is their age in days (assume 365 days per year)? Thought:First, I need to find out who directed the film Oppenheimer in 2023 and their birth date to calculate their age. Action: duckduckgo_search Action Input: "Director of the 2023 film Oppenheimer" Observation: Oppenheimer: Directed by Christopher Nolan. With Cillian Murphy, Emily Blunt, Robert Downey Jr., Alden Ehrenreich. The story of American scientist J. Robert Oppenheimer and his role in the development of the atomic bomb. In Christopher Nolan's new film, "Oppenheimer," Cillian Murphy stars as J. Robert ... 2023, 12:16 p.m. ET. ... including his role as the director of the Manhattan Engineer District, better ... J Robert Oppenheimer was the director of the secret Los Alamos Laboratory. It was established under US president Franklin D Roosevelt as part of the Manhattan Project to build the first atomic bomb. He oversaw the first atomic bomb detonation in the New Mexico desert in July 1945, code-named "Trinity". In this opening salvo of 2023's Oscar battle, Nolan has enjoined a star-studded cast for a retelling of the brilliant and haunted life of J. Robert Oppenheimer, the American physicist whose... Oppenheimer is a 2023 epic biographical thriller film written and directed by Christopher Nolan.It is based on the 2005 biography American Prometheus by Kai Bird and Martin J. Sherwin about J. Robert Oppenheimer, a theoretical physicist who was pivotal in developing the first nuclear weapons as part of the Manhattan Project and thereby ushering in the Atomic Age. Thought: - + > Finished chain. The director of the 2023 film Oppenheimer is Christopher Nolan. Now I need to find out his birth date to calculate his age. Action: duckduckgo_search Action Input: "Christopher Nolan birth date" Observation: July 30, 1970 (age 52) London England Notable Works: "Dunkirk" "Tenet" "The Prestige" See all related content → Recent News Jul. 13, 2023, 11:11 AM ET (AP) Cillian Murphy, playing Oppenheimer, finally gets to lead a Christopher Nolan film Christopher Edward Nolan CBE (born 30 July 1970) is a British and American filmmaker. Known for his Hollywood blockbusters with complex storytelling, Nolan is considered a leading filmmaker of the 21st century. His films have grossed $5 billion worldwide. The recipient of many accolades, he has been nominated for five Academy Awards, five BAFTA Awards and six Golden Globe Awards. Christopher Nolan is currently 52 according to his birthdate July 30, 1970 Sun Sign Leo Born Place Westminster, London, England, United Kingdom Residence Los Angeles, California, United States Nationality Education Chris attended Haileybury and Imperial Service College, in Hertford Heath, Hertfordshire. Christopher Nolan's next movie will study the man who developed the atomic bomb, J. Robert Oppenheimer. Here's the release date, plot, trailers & more. July 2023 sees the release of Christopher Nolan's new film, Oppenheimer, his first movie since 2020's Tenet and his split from Warner Bros. Billed as an epic thriller about "the man who ... Thought: - + > Entering new LLMChain chain... Prompt after formatting: Answer the following questions as best you can. You have access to the following tools: - + duckduckgo_search: A wrapper around DuckDuckGo Search. Useful for when you need to answer questions about current events. Input should be a search query. Calculator: Useful for when you need to answer questions about math. - + Use the following format: - + Question: the input question you must answer Thought: you should always think about what to do Action: the action to take, should be one of [duckduckgo_search, Calculator] @@ -480,9 +474,9 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is ... (this Thought/Action/Action Input/Observation can repeat N times) Thought: I now know the final answer Final Answer: the final answer to the original input question - + Begin! - + Question: Who directed the 2023 film Oppenheimer and what is their age? What is their age in days (assume 365 days per year)? Thought:First, I need to find out who directed the film Oppenheimer in 2023 and their birth date to calculate their age. Action: duckduckgo_search @@ -493,19 +487,19 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is Action Input: "Christopher Nolan birth date" Observation: July 30, 1970 (age 52) London England Notable Works: "Dunkirk" "Tenet" "The Prestige" See all related content → Recent News Jul. 13, 2023, 11:11 AM ET (AP) Cillian Murphy, playing Oppenheimer, finally gets to lead a Christopher Nolan film Christopher Edward Nolan CBE (born 30 July 1970) is a British and American filmmaker. Known for his Hollywood blockbusters with complex storytelling, Nolan is considered a leading filmmaker of the 21st century. His films have grossed $5 billion worldwide. The recipient of many accolades, he has been nominated for five Academy Awards, five BAFTA Awards and six Golden Globe Awards. Christopher Nolan is currently 52 according to his birthdate July 30, 1970 Sun Sign Leo Born Place Westminster, London, England, United Kingdom Residence Los Angeles, California, United States Nationality Education Chris attended Haileybury and Imperial Service College, in Hertford Heath, Hertfordshire. Christopher Nolan's next movie will study the man who developed the atomic bomb, J. Robert Oppenheimer. Here's the release date, plot, trailers & more. July 2023 sees the release of Christopher Nolan's new film, Oppenheimer, his first movie since 2020's Tenet and his split from Warner Bros. Billed as an epic thriller about "the man who ... Thought: - + > Finished chain. Christopher Nolan was born on July 30, 1970. Now I need to calculate his age in 2023 and then convert it into days. Action: Calculator Action Input: (2023 - 1970) * 365 - + > Entering new LLMMathChain chain... (2023 - 1970) * 365 - + > Entering new LLMChain chain... Prompt after formatting: Translate a math problem into a expression that can be executed using Python's numexpr library. Use the output of running this code to answer the question. - + Question: ${Question with math problem.} ```text ${single line mathematical expression that solves the problem} @@ -515,9 +509,9 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is ${Output of running the code} ``` Answer: ${Answer} - + Begin. - + Question: What is 37593 * 67? ```text 37593 * 67 @@ -527,7 +521,7 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is 2518731 ``` Answer: 2518731 - + Question: 37593^(1/5) ```text 37593**(1/5) @@ -537,31 +531,31 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is 8.222831614237718 ``` Answer: 8.222831614237718 - + Question: (2023 - 1970) * 365 - - + + > Finished chain. ```text (2023 - 1970) * 365 ``` ...numexpr.evaluate("(2023 - 1970) * 365")... - + Answer: 19345 > Finished chain. - + Observation: Answer: 19345 Thought: - + > Entering new LLMChain chain... Prompt after formatting: Answer the following questions as best you can. You have access to the following tools: - + duckduckgo_search: A wrapper around DuckDuckGo Search. Useful for when you need to answer questions about current events. Input should be a search query. Calculator: Useful for when you need to answer questions about math. - + Use the following format: - + Question: the input question you must answer Thought: you should always think about what to do Action: the action to take, should be one of [duckduckgo_search, Calculator] @@ -570,9 +564,9 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is ... (this Thought/Action/Action Input/Observation can repeat N times) Thought: I now know the final answer Final Answer: the final answer to the original input question - + Begin! - + Question: Who directed the 2023 film Oppenheimer and what is their age? What is their age in days (assume 365 days per year)? Thought:First, I need to find out who directed the film Oppenheimer in 2023 and their birth date to calculate their age. Action: duckduckgo_search @@ -587,16 +581,16 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is Action Input: (2023 - 1970) * 365 Observation: Answer: 19345 Thought: - + > Finished chain. I now know the final answer Final Answer: The director of the 2023 film Oppenheimer is Christopher Nolan and he is 53 years old in 2023. His age in days is 19345 days. - + > Finished chain. 'The director of the 2023 film Oppenheimer is Christopher Nolan and he is 53 years old in 2023. His age in days is 19345 days.' -``` +```` @@ -606,12 +600,11 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is You can also scope verbosity down to a single object, in which case only the inputs and outputs to that object are printed (along with any additional callbacks calls made specifically by that object). - ```python # Passing verbose=True to initialize_agent will pass that along to the AgentExecutor (which is a Chain). agent = initialize_agent( - tools, - llm, + tools, + llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True, ) @@ -643,7 +636,7 @@ agent.run("Who directed the 2023 film Oppenheimer and what is their age? What is Observation: Answer: 19345 Thought:I now know the final answer Final Answer: The director of the 2023 film Oppenheimer is Christopher Nolan. He is 53 years old in 2023, which is approximately 19345 days. - + > Finished chain. diff --git a/docs/docs/guides/deployments/index.mdx b/docs/docs/guides/deployments/index.mdx index cdebe6c311c..39af320c4fd 100644 --- a/docs/docs/guides/deployments/index.mdx +++ b/docs/docs/guides/deployments/index.mdx @@ -3,10 +3,10 @@ In today's fast-paced technological landscape, the use of Large Language Models (LLMs) is rapidly expanding. As a result, it is crucial for developers to understand how to effectively deploy these models in production environments. LLM interfaces typically fall into two categories: - **Case 1: Utilizing External LLM Providers (OpenAI, Anthropic, etc.)** - In this scenario, most of the computational burden is handled by the LLM providers, while LangChain simplifies the implementation of business logic around these services. This approach includes features such as prompt templating, chat message generation, caching, vector embedding database creation, preprocessing, etc. + In this scenario, most of the computational burden is handled by the LLM providers, while LangChain simplifies the implementation of business logic around these services. This approach includes features such as prompt templating, chat message generation, caching, vector embedding database creation, preprocessing, etc. - **Case 2: Self-hosted Open-Source Models** - Alternatively, developers can opt to use smaller, yet comparably capable, self-hosted open-source LLM models. This approach can significantly decrease costs, latency, and privacy concerns associated with transferring data to external LLM providers. + Alternatively, developers can opt to use smaller, yet comparably capable, self-hosted open-source LLM models. This approach can significantly decrease costs, latency, and privacy concerns associated with transferring data to external LLM providers. Regardless of the framework that forms the backbone of your product, deploying LLM applications comes with its own set of challenges. It's vital to understand the trade-offs and key considerations when evaluating serving frameworks. @@ -48,28 +48,23 @@ Monitoring forms an integral part of any system running in a production environm Your application may encounter errors such as exceptions in your model inference or business logic code, causing failures and disrupting traffic. Other potential issues could arise from the machine running your application, such as unexpected hardware breakdowns or loss of spot-instances during high-demand periods. One way to mitigate these risks is by increasing redundancy through replica scaling and implementing recovery mechanisms for failed replicas. However, model replicas aren't the only potential points of failure. It's essential to build resilience against various failures that could occur at any point in your stack. - ### Zero down time upgrade System upgrades are often necessary but can result in service disruptions if not handled correctly. One way to prevent downtime during upgrades is by implementing a smooth transition process from the old version to the new one. Ideally, the new version of your LLM service is deployed, and traffic gradually shifts from the old to the new version, maintaining a constant QPS throughout the process. - ### Load balancing Load balancing, in simple terms, is a technique to distribute work evenly across multiple computers, servers, or other resources to optimize the utilization of the system, maximize throughput, minimize response time, and avoid overload of any single resource. Think of it as a traffic officer directing cars (requests) to different roads (servers) so that no single road becomes too congested. -There are several strategies for load balancing. For example, one common method is the *Round Robin* strategy, where each request is sent to the next server in line, cycling back to the first when all servers have received a request. This works well when all servers are equally capable. However, if some servers are more powerful than others, you might use a *Weighted Round Robin* or *Least Connections* strategy, where more requests are sent to the more powerful servers, or to those currently handling the fewest active requests. Let's imagine you're running a LLM chain. If your application becomes popular, you could have hundreds or even thousands of users asking questions at the same time. If one server gets too busy (high load), the load balancer would direct new requests to another server that is less busy. This way, all your users get a timely response and the system remains stable. - - +There are several strategies for load balancing. For example, one common method is the _Round Robin_ strategy, where each request is sent to the next server in line, cycling back to the first when all servers have received a request. This works well when all servers are equally capable. However, if some servers are more powerful than others, you might use a _Weighted Round Robin_ or _Least Connections_ strategy, where more requests are sent to the more powerful servers, or to those currently handling the fewest active requests. Let's imagine you're running a LLM chain. If your application becomes popular, you could have hundreds or even thousands of users asking questions at the same time. If one server gets too busy (high load), the load balancer would direct new requests to another server that is less busy. This way, all your users get a timely response and the system remains stable. ## Maintaining Cost-Efficiency and Scalability Deploying LLM services can be costly, especially when you're handling a large volume of user interactions. Charges by LLM providers are usually based on tokens used, making a chat system inference on these models potentially expensive. However, several strategies can help manage these costs without compromising the quality of the service. - ### Self-hosting models -Several smaller and open-source LLMs are emerging to tackle the issue of reliance on LLM providers. Self-hosting allows you to maintain similar quality to LLM provider models while managing costs. The challenge lies in building a reliable, high-performing LLM serving system on your own machines. +Several smaller and open-source LLMs are emerging to tackle the issue of reliance on LLM providers. Self-hosting allows you to maintain similar quality to LLM provider models while managing costs. The challenge lies in building a reliable, high-performing LLM serving system on your own machines. ### Resource Management and Auto-Scaling @@ -87,10 +82,7 @@ When self-hosting your models, you should consider independent scaling. For exam In the context of Large Language Models, batching requests can enhance efficiency by better utilizing your GPU resources. GPUs are inherently parallel processors, designed to handle multiple tasks simultaneously. If you send individual requests to the model, the GPU might not be fully utilized as it's only working on a single task at a time. On the other hand, by batching requests together, you're allowing the GPU to work on multiple tasks at once, maximizing its utilization and improving inference speed. This not only leads to cost savings but can also improve the overall latency of your LLM service. - -In summary, managing costs while scaling your LLM services requires a strategic approach. Utilizing self-hosting models, managing resources effectively, employing auto-scaling, using spot instances, independently scaling models, and batching requests are key strategies to consider. Open-source libraries such as Ray Serve and BentoML are designed to deal with these complexities. - - +In summary, managing costs while scaling your LLM services requires a strategic approach. Utilizing self-hosting models, managing resources effectively, employing auto-scaling, using spot instances, independently scaling models, and batching requests are key strategies to consider. Open-source libraries such as Ray Serve and BentoML are designed to deal with these complexities. ## Ensuring Rapid Iteration @@ -104,12 +96,10 @@ Deploying systems like LangChain demands the ability to piece together different Many hosted solutions are restricted to a single cloud provider, which can limit your options in today's multi-cloud world. Depending on where your other infrastructure components are built, you might prefer to stick with your chosen cloud provider. - ## Infrastructure as Code (IaC) Rapid iteration also involves the ability to recreate your infrastructure quickly and reliably. This is where Infrastructure as Code (IaC) tools like Terraform, CloudFormation, or Kubernetes YAML files come into play. They allow you to define your infrastructure in code files, which can be version controlled and quickly deployed, enabling faster and more reliable iterations. - ## CI/CD In a fast-paced environment, implementing CI/CD pipelines can significantly speed up the iteration process. They help automate the testing and deployment of your LLM applications, reducing the risk of errors and enabling faster feedback and iteration. diff --git a/docs/docs/guides/deployments/template_repos.mdx b/docs/docs/guides/deployments/template_repos.mdx index 4a8082864ee..3d3e1e55865 100644 --- a/docs/docs/guides/deployments/template_repos.mdx +++ b/docs/docs/guides/deployments/template_repos.mdx @@ -1,7 +1,7 @@ # LangChain Templates -For more information on LangChain Templates, visit +For more information on LangChain Templates, visit - [LangChain Templates Quickstart](https://github.com/langchain-ai/langchain/blob/master/templates/README.md) - [LangChain Templates Index](https://github.com/langchain-ai/langchain/blob/master/templates/docs/INDEX.md) -- [Full List of Templates](https://github.com/langchain-ai/langchain/blob/master/templates/) \ No newline at end of file +- [Full List of Templates](https://github.com/langchain-ai/langchain/blob/master/templates/) diff --git a/docs/docs/guides/evaluation/comparison/index.mdx b/docs/docs/guides/evaluation/comparison/index.mdx index 8f956f6068d..21f8788de05 100644 --- a/docs/docs/guides/evaluation/comparison/index.mdx +++ b/docs/docs/guides/evaluation/comparison/index.mdx @@ -1,6 +1,7 @@ --- -sidebar_position: 3 +sidebar_position: 3 --- + # Comparison Evaluators Comparison evaluators in LangChain help measure two different chains or LLM outputs. These evaluators are helpful for comparative analyses, such as A/B testing between two language models, or comparing different versions of the same model. They can also be useful for things like generating preference scores for ai-assisted reinforcement learning. @@ -25,4 +26,3 @@ Detailed information about creating custom evaluators and the available built-in import DocCardList from "@theme/DocCardList"; - diff --git a/docs/docs/guides/evaluation/examples/index.mdx b/docs/docs/guides/evaluation/examples/index.mdx index 051780feed0..1486f994e7c 100644 --- a/docs/docs/guides/evaluation/examples/index.mdx +++ b/docs/docs/guides/evaluation/examples/index.mdx @@ -1,6 +1,7 @@ --- sidebar_position: 5 --- + # Examples 🚧 _Docs under construction_ 🚧 @@ -9,4 +10,4 @@ Below are some examples for inspecting and checking different chains. import DocCardList from "@theme/DocCardList"; - \ No newline at end of file + diff --git a/docs/docs/guides/evaluation/index.mdx b/docs/docs/guides/evaluation/index.mdx index 5415b33e69c..a315c0ef6ed 100644 --- a/docs/docs/guides/evaluation/index.mdx +++ b/docs/docs/guides/evaluation/index.mdx @@ -2,7 +2,7 @@ import DocCardList from "@theme/DocCardList"; # Evaluation -Building applications with language models involves many moving parts. One of the most critical components is ensuring that the outcomes produced by your models are reliable and useful across a broad array of inputs, and that they work well with your application's other software components. Ensuring reliability usually boils down to some combination of application design, testing & evaluation, and runtime checks. +Building applications with language models involves many moving parts. One of the most critical components is ensuring that the outcomes produced by your models are reliable and useful across a broad array of inputs, and that they work well with your application's other software components. Ensuring reliability usually boils down to some combination of application design, testing & evaluation, and runtime checks. The guides in this section review the APIs and functionality LangChain provides to help you better evaluate your applications. Evaluation and testing are both critical when thinking about deploying LLM applications, since production environments require repeatable and useful outcomes. @@ -20,7 +20,6 @@ We also are working to share guides and cookbooks that demonstrate how to use th - [Chain Comparisons](/docs/guides/evaluation/examples/comparisons): This example uses a comparison evaluator to predict the preferred output. It reviews ways to measure confidence intervals to select statistically significant differences in aggregate preference scores across different models or prompts. - ## LangSmith Evaluation LangSmith provides an integrated evaluation and tracing framework that allows you to check for regressions, compare systems, and easily identify and fix any sources of errors and performance issues. Check out the docs on [LangSmith Evaluation](https://docs.smith.langchain.com/evaluation) and additional [cookbooks](https://docs.smith.langchain.com/cookbook) for more detailed information on evaluating your applications. @@ -31,7 +30,7 @@ Your application quality is a function both of the LLM you choose and the prompt - Agent tool use - Retrieval-augmented question-answering -- Structured Extraction +- Structured Extraction Check out the docs for examples and leaderboard information. diff --git a/docs/docs/guides/evaluation/string/index.mdx b/docs/docs/guides/evaluation/string/index.mdx index 3585e799165..741939b00fb 100644 --- a/docs/docs/guides/evaluation/string/index.mdx +++ b/docs/docs/guides/evaluation/string/index.mdx @@ -1,6 +1,7 @@ --- -sidebar_position: 2 +sidebar_position: 2 --- + # String Evaluators A string evaluator is a component within LangChain designed to assess the performance of a language model by comparing its generated outputs (predictions) to a reference string or an input. This comparison is a crucial step in the evaluation of language models, providing a measure of the accuracy or quality of the generated text. diff --git a/docs/docs/guides/evaluation/trajectory/index.mdx b/docs/docs/guides/evaluation/trajectory/index.mdx index 825fd630672..a98c79735bc 100644 --- a/docs/docs/guides/evaluation/trajectory/index.mdx +++ b/docs/docs/guides/evaluation/trajectory/index.mdx @@ -1,6 +1,7 @@ --- sidebar_position: 4 --- + # Trajectory Evaluators Trajectory Evaluators in LangChain provide a more holistic approach to evaluating an agent. These evaluators assess the full sequence of actions taken by an agent and their corresponding responses, which we refer to as the "trajectory". This allows you to better measure an agent's effectiveness and capabilities. @@ -25,4 +26,3 @@ For a deeper dive into the implementation and use of Trajectory Evaluators, refe import DocCardList from "@theme/DocCardList"; - diff --git a/docs/docs/guides/pydantic_compatibility.md b/docs/docs/guides/pydantic_compatibility.md index 7ea57543a76..5563bce6d18 100644 --- a/docs/docs/guides/pydantic_compatibility.md +++ b/docs/docs/guides/pydantic_compatibility.md @@ -6,10 +6,11 @@ ## LangChain Pydantic migration plan -As of `langchain>=0.0.267`, LangChain will allow users to install either Pydantic V1 or V2. - * Internally LangChain will continue to [use V1](https://docs.pydantic.dev/latest/migration/#continue-using-pydantic-v1-features). - * During this time, users can pin their pydantic version to v1 to avoid breaking changes, or start a partial - migration using pydantic v2 throughout their code, but avoiding mixing v1 and v2 code for LangChain (see below). +As of `langchain>=0.0.267`, LangChain will allow users to install either Pydantic V1 or V2. + +- Internally LangChain will continue to [use V1](https://docs.pydantic.dev/latest/migration/#continue-using-pydantic-v1-features). +- During this time, users can pin their pydantic version to v1 to avoid breaking changes, or start a partial + migration using pydantic v2 throughout their code, but avoiding mixing v1 and v2 code for LangChain (see below). User can either pin to pydantic v1, and upgrade their code in one go once LangChain has migrated to v2 internally, or they can start a partial migration to v2, but must avoid mixing v1 and v2 code for LangChain. @@ -18,7 +19,7 @@ the case of inheritance and in the case of passing objects to LangChain. **Example 1: Extending via inheritance** -**YES** +**YES** ```python from pydantic.v1 import root_validator, validator @@ -33,7 +34,7 @@ class CustomTool(BaseTool): # BaseTool is v1 code @classmethod def validate_x(cls, x: int) -> int: return 1 - + CustomTool( name='custom_tool', @@ -44,7 +45,7 @@ CustomTool( Mixing Pydantic v2 primitives with Pydantic v1 primitives can raise cryptic errors -**NO** +**NO** ```python from pydantic import Field, field_validator # pydantic v2 @@ -59,9 +60,9 @@ class CustomTool(BaseTool): # BaseTool is v1 code @classmethod def validate_x(cls, x: int) -> int: return 1 - -CustomTool( + +CustomTool( name='custom_tool', description="hello", x=1, @@ -102,4 +103,4 @@ Tool.from_function( # <-- tool uses v1 namespace description="useful for when you need to answer questions about math", args_schema=CalculatorInput ) -``` \ No newline at end of file +``` diff --git a/docs/docs/guides/safety/constitutional_chain.mdx b/docs/docs/guides/safety/constitutional_chain.mdx index 4b982501315..c525fb0a96f 100644 --- a/docs/docs/guides/safety/constitutional_chain.mdx +++ b/docs/docs/guides/safety/constitutional_chain.mdx @@ -2,14 +2,13 @@ This example shows the Self-critique chain with `Constitutional AI`. -The `ConstitutionalChain` is a chain that ensures the output of a language model adheres -to a predefined set of constitutional principles. By incorporating specific rules and guidelines, -the `ConstitutionalChain` filters and modifies the generated content to align with these principles, -thus providing more controlled, ethical, and contextually appropriate responses. -This mechanism helps maintain the integrity of the output while minimizing the risk of generating +The `ConstitutionalChain` is a chain that ensures the output of a language model adheres +to a predefined set of constitutional principles. By incorporating specific rules and guidelines, +the `ConstitutionalChain` filters and modifies the generated content to align with these principles, +thus providing more controlled, ethical, and contextually appropriate responses. +This mechanism helps maintain the integrity of the output while minimizing the risk of generating content that may violate guidelines, be offensive, or deviate from the desired context. - ```python # Imports from langchain_openai import OpenAI @@ -47,7 +46,6 @@ evil_qa_chain.run(question="How can I steal kittens?") - ```python principles = ConstitutionalChain.get_principles(["illegal"]) constitutional_chain = ConstitutionalChain.from_llm( @@ -92,7 +90,6 @@ We also have built-in support for the Unified Objectives proposed in this paper: Some of these are useful for the same idea of correcting ethical issues. - ```python principles = ConstitutionalChain.get_principles(["uo-ethics-1"]) constitutional_chain = ConstitutionalChain.from_llm( @@ -133,7 +130,6 @@ constitutional_chain.run(question="How can I steal kittens?") But they can also be used for a wide variety of tasks, including encouraging the LLM to list out supporting evidence - ```python qa_prompt = PromptTemplate( template="""Question: {question} @@ -158,7 +154,6 @@ qa_chain.run(question=query) - ```python principles = ConstitutionalChain.get_principles(["uo-implications-1"]) constitutional_chain = ConstitutionalChain.from_llm( @@ -201,7 +196,6 @@ constitutional_chain.run(query) We can easily add in custom principles. - ```python from langchain.chains.constitutional_ai.models import ConstitutionalPrinciple @@ -249,7 +243,6 @@ constitutional_chain.run(question="How can I steal kittens?") We can also run multiple principles sequentially. Let's make the model talk like Master Yoda. - ```python master_yoda_principle = ConstitutionalPrinciple( name='Master Yoda Principle', @@ -303,7 +296,6 @@ constitutional_chain.run(question="How can I steal kittens?") You can also get the constitutional chain to return it's intermediate steps. - ```python constitutional_chain = ConstitutionalChain.from_llm( chain=evil_qa_chain, @@ -350,7 +342,6 @@ constitutional_chain({"question":"How can I steal kittens?"}) We can also see that the chain recognizes when no revision is necessary. - ```python good_qa_prompt = PromptTemplate( template="""You are good and must only give good and ethical answers. If someone asks you how to do something illegal, make sure you respond in an ethical and legal way. @@ -376,7 +367,6 @@ good_qa_chain.run(question="How can I steal kittens?") - ```python constitutional_chain = ConstitutionalChain.from_llm( chain=good_qa_chain, @@ -417,12 +407,10 @@ constitutional_chain({"question":"How can I steal kittens?"}) For a list of all principles, see: - ```python from langchain.chains.constitutional_ai.principles import PRINCIPLES ``` - ```python PRINCIPLES ``` diff --git a/docs/docs/guides/safety/index.mdx b/docs/docs/guides/safety/index.mdx index b5d047d771e..fdcf2d7eef5 100644 --- a/docs/docs/guides/safety/index.mdx +++ b/docs/docs/guides/safety/index.mdx @@ -4,6 +4,6 @@ One of the key concerns with using LLMs is that they may generate harmful or une - [Amazon Comprehend moderation chain](/docs/guides/safety/amazon_comprehend_chain): Use [Amazon Comprehend](https://aws.amazon.com/comprehend/) to detect and handle Personally Identifiable Information (PII) and toxicity. - [Constitutional chain](/docs/guides/safety/constitutional_chain): Prompt the model with a set of principles which should guide the model behavior. -- [Hugging Face prompt injection identification](/docs/guides/safety/hugging_face_prompt_injection): Detect and handle prompt injection attacks. +- [Hugging Face prompt injection identification](/docs/guides/safety/hugging_face_prompt_injection): Detect and handle prompt injection attacks. - [Logical Fallacy chain](/docs/guides/safety/logical_fallacy_chain): Checks the model output against logical fallacies to correct any deviation. - [Moderation chain](/docs/guides/safety/moderation): Check if any output text is harmful and flag it. diff --git a/docs/docs/guides/safety/logical_fallacy_chain.mdx b/docs/docs/guides/safety/logical_fallacy_chain.mdx index d25dd37cd3a..5a306f4d6f6 100644 --- a/docs/docs/guides/safety/logical_fallacy_chain.mdx +++ b/docs/docs/guides/safety/logical_fallacy_chain.mdx @@ -4,18 +4,17 @@ This example shows how to remove logical fallacies from model output. ## Logical Fallacies -`Logical fallacies` are flawed reasoning or false arguments that can undermine the validity of a model's outputs. +`Logical fallacies` are flawed reasoning or false arguments that can undermine the validity of a model's outputs. Examples include circular reasoning, false -dichotomies, ad hominem attacks, etc. Machine learning models are optimized to perform well on specific metrics like accuracy, perplexity, or loss. However, +dichotomies, ad hominem attacks, etc. Machine learning models are optimized to perform well on specific metrics like accuracy, perplexity, or loss. However, optimizing for metrics alone does not guarantee logically sound reasoning. -Language models can learn to exploit flaws in reasoning to generate plausible-sounding but logically invalid arguments. When models rely on fallacies, their outputs become unreliable and untrustworthy, even if they achieve high scores on metrics. Users cannot depend on such outputs. Propagating logical fallacies can spread misinformation, confuse users, and lead to harmful real-world consequences when models are deployed in products or services. +Language models can learn to exploit flaws in reasoning to generate plausible-sounding but logically invalid arguments. When models rely on fallacies, their outputs become unreliable and untrustworthy, even if they achieve high scores on metrics. Users cannot depend on such outputs. Propagating logical fallacies can spread misinformation, confuse users, and lead to harmful real-world consequences when models are deployed in products or services. Monitoring and testing specifically for logical flaws is challenging unlike other quality issues. It requires reasoning about arguments rather than pattern matching. -Therefore, it is crucial that model developers proactively address logical fallacies after optimizing metrics. Specialized techniques like causal modeling, robustness testing, and bias mitigation can help avoid flawed reasoning. Overall, allowing logical flaws to persist makes models less safe and ethical. Eliminating fallacies ensures model outputs remain logically valid and aligned with human reasoning. This maintains user trust and mitigates risks. - +Therefore, it is crucial that model developers proactively address logical fallacies after optimizing metrics. Specialized techniques like causal modeling, robustness testing, and bias mitigation can help avoid flawed reasoning. Overall, allowing logical flaws to persist makes models less safe and ethical. Eliminating fallacies ensures model outputs remain logically valid and aligned with human reasoning. This maintains user trust and mitigates risks. ## Example @@ -51,7 +50,6 @@ misleading_chain.run(question="How do I know the earth is round?") - ```python fallacies = FallacyChain.get_fallacies(["correction"]) fallacy_chain = FallacyChain.from_llm( diff --git a/docs/docs/guides/safety/moderation.mdx b/docs/docs/guides/safety/moderation.mdx index a43579dfef5..870cd9bcfb1 100644 --- a/docs/docs/guides/safety/moderation.mdx +++ b/docs/docs/guides/safety/moderation.mdx @@ -1,15 +1,15 @@ # Moderation chain -This notebook walks through examples of how to use a moderation chain, and several common ways for doing so. -Moderation chains are useful for detecting text that could be hateful, violent, etc. This can be useful to apply on both user input, but also on the output of a Language Model. -Some API providers, like OpenAI, [specifically prohibit](https://beta.openai.com/docs/usage-policies/use-case-policy) you, or your end users, from generating some -types of harmful content. To comply with this (and to just generally prevent your application from being harmful) -you may often want to append a moderation chain to any LLMChains, in order to make sure any output +This notebook walks through examples of how to use a moderation chain, and several common ways for doing so. +Moderation chains are useful for detecting text that could be hateful, violent, etc. This can be useful to apply on both user input, but also on the output of a Language Model. +Some API providers, like OpenAI, [specifically prohibit](https://beta.openai.com/docs/usage-policies/use-case-policy) you, or your end users, from generating some +types of harmful content. To comply with this (and to just generally prevent your application from being harmful) +you may often want to append a moderation chain to any LLMChains, in order to make sure any output the LLM generates is not harmful. -If the content passed into the moderation chain is harmful, there is not one best way to handle it, -it probably depends on your application. Sometimes you may want to throw an error in the Chain -(and have your application handle that). Other times, you may want to return something to +If the content passed into the moderation chain is harmful, there is not one best way to handle it, +it probably depends on your application. Sometimes you may want to throw an error in the Chain +(and have your application handle that). Other times, you may want to return something to the user explaining that the text was harmful. There could be other ways to handle it. We will cover all these ways in this walkthrough. @@ -18,9 +18,6 @@ We'll show: 1. How to run any piece of text through a moderation chain. 2. How to append a Moderation chain to an LLMChain. - - - ```python from langchain_openai import OpenAI from langchain.chains import OpenAIModerationChain, SequentialChain, LLMChain, SimpleSequentialChain @@ -29,10 +26,9 @@ from langchain.prompts import PromptTemplate ## How to use the moderation chain -Here's an example of using the moderation chain with default settings (will return a string +Here's an example of using the moderation chain with default settings (will return a string explaining stuff was flagged). - ```python moderation_chain = OpenAIModerationChain() @@ -47,7 +43,6 @@ moderation_chain.run("This is okay") - ```python moderation_chain.run("I will kill you") ``` @@ -62,7 +57,6 @@ moderation_chain.run("I will kill you") Here's an example of using the moderation chain to throw an error. - ```python moderation_chain_error = OpenAIModerationChain(error=True) @@ -77,7 +71,6 @@ moderation_chain_error.run("This is okay") - ```python moderation_chain_error.run("I will kill you") ``` @@ -133,10 +126,9 @@ moderation_chain_error.run("I will kill you") ## How to create a custom Moderation chain -Here's an example of creating a custom moderation chain with a custom error message. +Here's an example of creating a custom moderation chain with a custom error message. It requires some knowledge of OpenAI's moderation endpoint results. See [docs here](https://beta.openai.com/docs/api-reference/moderations). - ```python class CustomModeration(OpenAIModerationChain): def _moderate(self, text: str, results: dict) -> str: @@ -158,7 +150,6 @@ custom_moderation.run("This is okay") - ```python custom_moderation.run("I will kill you") ``` @@ -175,10 +166,9 @@ custom_moderation.run("I will kill you") To easily combine a moderation chain with an LLMChain, you can use the `SequentialChain` abstraction. -Let's start with a simple example of where the `LLMChain` only has a single input. For this purpose, +Let's start with a simple example of where the `LLMChain` only has a single input. For this purpose, we will prompt the model, so it says something harmful. - ```python prompt = PromptTemplate.from_template("{text}") llm_chain = LLMChain(llm=OpenAI(temperature=0, model_name="gpt-3.5-turbo-instruct"), prompt=prompt) @@ -204,7 +194,6 @@ llm_chain.run(text) - ```python chain = SimpleSequentialChain(chains=[llm_chain, moderation_chain]) @@ -221,7 +210,6 @@ chain.run(text) Now let's walk through an example of using it with an LLMChain which has multiple inputs (a bit more tricky because we can't use the SimpleSequentialChain) - ```python prompt = PromptTemplate.from_template("{setup}{new_input}Person2:") llm_chain = LLMChain(llm=OpenAI(temperature=0, model_name="gpt-3.5-turbo-instruct"), prompt=prompt) @@ -248,7 +236,6 @@ llm_chain(inputs, return_only_outputs=True) - ```python # Setting the input/output keys so it lines up moderation_chain.input_key = "text" diff --git a/docs/docs/integrations/callbacks/llmonitor.md b/docs/docs/integrations/callbacks/llmonitor.md index a90e606e7bd..cbed982d09c 100644 --- a/docs/docs/integrations/callbacks/llmonitor.md +++ b/docs/docs/integrations/callbacks/llmonitor.md @@ -1,6 +1,6 @@ # LLMonitor ->[LLMonitor](https://llmonitor.com?utm_source=langchain&utm_medium=py&utm_campaign=docs) is an open-source observability platform that provides cost and usage analytics, user tracking, tracing and evaluation tools. +> [LLMonitor](https://llmonitor.com?utm_source=langchain&utm_medium=py&utm_campaign=docs) is an open-source observability platform that provides cost and usage analytics, user tracking, tracing and evaluation tools.