A modular graph-based Retrieval-Augmented Generation (RAG) system
Go to file
Derek Worthen 2b70e4a4f3
Tokenizer (#2051)
* Add LiteLLM chat and embedding model providers.

* Fix code review findings.

* Add litellm.

* Fix formatting.

* Update dictionary.

* Update litellm.

* Fix embedding.

* Remove manual use of tiktoken and replace with
Tokenizer interface. Adds support for encoding
and decoding the models supported by litellm.

* Update litellm.

* Configure litellm to drop unsupported params.

* Cleanup semversioner release notes.

* Add num_tokens util to Tokenizer interface.

* Update litellm service factories.

* Cleanup litellm chat/embedding model argument assignment.

* Update chat and embedding type field for litellm use and future migration away from fnllm.

* Flatten litellm service organization.

* Update litellm.

* Update litellm factory validation.

* Flatten litellm rate limit service organization.

* Update rate limiter - disable with None/null instead of 0.

* Fix usage of get_tokenizer.

* Update litellm service registrations.

* Add jitter to exponential retry.

* Update validation.

* Update validation.

* Add litellm request logging layer.

* Update cache key.

* Update defaults.

---------

Co-authored-by: Alonso Guevara <alonsog@microsoft.com>
2025-09-22 13:55:14 -06:00
.github Switch from Poetry to uv for package management (#2008) 2025-08-13 18:57:25 -06:00
.semversioner Tokenizer (#2051) 2025-09-22 13:55:14 -06:00
.vscode Custom vector store schema implementation (#2062) 2025-09-19 10:11:34 -07:00
docs Clarify managed auth setup in Azure documentation (#2064) 2025-09-18 14:58:09 -07:00
examples_notebooks Switch from Poetry to uv for package management (#2008) 2025-08-13 18:57:25 -06:00
graphrag Tokenizer (#2051) 2025-09-22 13:55:14 -06:00
scripts Switch from Poetry to uv for package management (#2008) 2025-08-13 18:57:25 -06:00
tests Tokenizer (#2051) 2025-09-22 13:55:14 -06:00
unified-search-app Switch from Poetry to uv for package management (#2008) 2025-08-13 18:57:25 -06:00
.gitattributes move mkdocs-typer to devdeps (#1331) 2024-10-30 14:49:30 -07:00
.gitignore Switch from Poetry to uv for package management (#2008) 2025-08-13 18:57:25 -06:00
.vsts-ci.yml Initial Release 2024-07-01 15:25:30 -06:00
breaking-changes.md Update docs for 2.0+ (#1984) 2025-06-23 13:49:47 -07:00
CHANGELOG.md Release v2.5.0 (#2028) 2025-08-14 08:06:52 -06:00
CODE_OF_CONDUCT.md Initial Release 2024-07-01 15:25:30 -06:00
CODEOWNERS Stabilize smoke tests for query community context building (#908) 2024-08-12 13:17:40 -06:00
CONTRIBUTING.md Switch from Poetry to uv for package management (#2008) 2025-08-13 18:57:25 -06:00
cspell.config.yaml Fix/notebooks (#1614) 2025-01-13 17:41:39 -06:00
DEVELOPING.md Switch from Poetry to uv for package management (#2008) 2025-08-13 18:57:25 -06:00
dictionary.txt Tokenizer (#2051) 2025-09-22 13:55:14 -06:00
LICENSE Initial Release 2024-07-01 15:25:30 -06:00
mkdocs.yaml Docs: Add models page (#1842) 2025-04-28 17:36:08 -07:00
pyproject.toml Tokenizer (#2051) 2025-09-22 13:55:14 -06:00
RAI_TRANSPARENCY.md Initial Release 2024-07-01 15:25:30 -06:00
README.md Update docs for 2.0+ (#1984) 2025-06-23 13:49:47 -07:00
SECURITY.md Initial Release 2024-07-01 15:25:30 -06:00
SUPPORT.md Initial Release 2024-07-01 15:25:30 -06:00
uv.lock Tokenizer (#2051) 2025-09-22 13:55:14 -06:00

GraphRAG

👉 Microsoft Research Blog Post
👉 Read the docs
👉 GraphRAG Arxiv

Overview

The GraphRAG project is a data pipeline and transformation suite that is designed to extract meaningful, structured data from unstructured text using the power of LLMs.

To learn more about GraphRAG and how it can be used to enhance your LLM's ability to reason about your private data, please visit the Microsoft Research Blog Post.

Quickstart

To get started with the GraphRAG system we recommend trying the command line quickstart.

Repository Guidance

This repository presents a methodology for using knowledge graph memory structures to enhance LLM outputs. Please note that the provided code serves as a demonstration and is not an officially supported Microsoft offering.

⚠️ Warning: GraphRAG indexing can be an expensive operation, please read all of the documentation to understand the process and costs involved, and start small.

Diving Deeper

Prompt Tuning

Using GraphRAG with your data out of the box may not yield the best possible results. We strongly recommend to fine-tune your prompts following the Prompt Tuning Guide in our documentation.

Versioning

Please see the breaking changes document for notes on our approach to versioning the project.

Always run graphrag init --root [path] --force between minor version bumps to ensure you have the latest config format. Run the provided migration notebook between major version bumps if you want to avoid re-indexing prior datasets. Note that this will overwrite your configuration and prompts, so backup if necessary.

Responsible AI FAQ

See RAI_TRANSPARENCY.md

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Privacy

Microsoft Privacy Statement