{"id":25763324,"url":"https://github.com/astrabert/llamaindex-docs-agent","last_synced_at":"2026-05-06T15:35:58.318Z","repository":{"id":278935391,"uuid":"936933465","full_name":"AstraBert/llamaindex-docs-agent","owner":"AstraBert","description":"A simple ReAct agent that has access to LlamaIndex docs and to the internet to provide you with insights on LlamaIndex itself.","archived":false,"fork":false,"pushed_at":"2025-02-22T16:11:36.000Z","size":1685,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-22T17:22:21.791Z","etag":null,"topics":["agentic-ai","ai","chatbot","documentation","fastapi","gradio","hybrid-search","llama-index","llms","qdrant","rag","react-agent","routing-engine","tavily-search"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AstraBert.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-22T00:33:04.000Z","updated_at":"2025-02-22T16:11:40.000Z","dependencies_parsed_at":"2025-02-22T17:34:06.724Z","dependency_job_id":null,"html_url":"https://github.com/AstraBert/llamaindex-docs-agent","commit_stats":null,"previous_names":["astrabert/llamaindex-docs-agent"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AstraBert%2Fllamaindex-docs-agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AstraBert%2Fllamaindex-docs-agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AstraBert%2Fllamaindex-docs-agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AstraBert%2Fllamaindex-docs-agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AstraBert","download_url":"https://codeload.github.com/AstraBert/llamaindex-docs-agent/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240926400,"owners_count":19879737,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","ai","chatbot","documentation","fastapi","gradio","hybrid-search","llama-index","llms","qdrant","rag","react-agent","routing-engine","tavily-search"],"created_at":"2025-02-26T20:16:19.660Z","updated_at":"2026-05-06T15:35:58.288Z","avatar_url":"https://github.com/AstraBert.png","language":"Python","funding_links":["https://github.com/sponsors/AstraBert"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eLlamaIndex Docs Agent\u003c/h1\u003e\r\n\r\n\u003ch2 align=\"center\"\u003eA useful companion when developing with LlamaIndex\u003c/h2\u003e\r\n\r\n\u003ch3 align=\"center\"\u003eIf you find LlamaIndex Docs Agent useful, please consider to support us through donation:\u003c/h3\u003e\r\n\u003cdiv align=\"center\"\u003e\r\n    \u003ca href=\"https://github.com/sponsors/AstraBert\"\u003e\u003cimg src=\"https://img.shields.io/badge/sponsor-30363D?style=for-the-badge\u0026logo=GitHub-Sponsors\u0026logoColor=#EA4AAA\" alt=\"GitHub Sponsors Badge\"\u003e\u003c/a\u003e\r\n\u003c/div\u003e\r\n\u003cbr\u003e\r\n\u003cdiv align=\"center\"\u003e\r\n    \u003cimg src=\"logo.png\" alt=\"LlamaIndex Docs Agent Logo\" width=200 height=200\u003e\r\n\u003c/div\u003e\r\n\r\n## Install and launch🚀\r\n\r\nThe first step, common to both the Docker and the source code setup approaches, is to clone the repository and access it:\r\n\r\n```bash\r\ngit clone https://github.com/AstraBert/llamaindex-docs-agent.git\r\ncd llamaindex-docs-agent\r\n```\r\n\r\nOnce there, you can choose one of the two following approaches:\r\n\r\n### Docker (recommended)🐋\r\n\r\n\u003e _Required: [Docker](https://docs.docker.com/desktop/) and [docker compose](https://docs.docker.com/compose/)_\r\n\r\n- Add the `openai_api_key` and the `tavily_api_key` variables in the [`.env.example`](./docker/.env.example) file and modify the name of the file to `.env`. Get these keys:\r\n    + [On OpenAI Platform](https://platform.openai.com/api-keys)\r\n    + [On Tavily](https://app.tavily.com/home/)\r\n\r\n```bash\r\nmv .env.example .env\r\n```\r\n\r\n- Launch the Docker application:\r\n\r\n```bash\r\n# If you are on Linux/macOS\r\nbash start_services.sh\r\n# If you are on Windows\r\n.\\start_services.ps1\r\n```\r\n\r\nYou will see the application running on http://localhost:8000/gradio and you will be able to use it. Depending on your connection and on your hardware, the set up might take some time (up to 30 mins to set up) - but this is only for the first time your run it!\r\n\r\n\r\n### Source code🗎\r\n\r\n\u003e _Required: [Docker](https://docs.docker.com/desktop/), [docker compose](https://docs.docker.com/compose/) and [conda](https://anaconda.org/anaconda/conda)_\r\n\r\n- Add the `openai_api_key` and the `tavily_api_key` variables in the [`.env.example`](./docker/.env.example) file and modify the name of the file to `.env`. Get these keys:\r\n    + [On OpenAI Platform](https://platform.openai.com/api-keys)\r\n    + [On Tavily](https://app.tavily.com/home/)\r\n\r\n```bash\r\nmv .env.example .env\r\n```\r\n\r\n- Set up LlamaIndex Docs Agent using the dedicated script:\r\n\r\n```bash\r\n# For MacOs/Linux users\r\nbash setup.sh\r\n# For Windows users\r\n.\\setup.ps1\r\n```\r\n\r\n- Or you can do it manually, if you prefer:\r\n\r\n```bash\r\ndocker compose up vector_db -d\r\n\r\nconda env create -f environment.yml\r\nconda activate llamaindex-docs\r\n\r\npython3 scripts/loadData.py\r\n\r\ncd scripts/\r\nuvicorn main:app --host 0.0.0.0 --port 8000\r\n\r\nconda deactivate\r\n```\r\n\r\nYou will see the application running on http://localhost:8000/gradio and you will be able to use it.\r\n\r\n## How it works\r\n\r\n\u003cdiv align='center'\u003e\r\n    \u003cimg src=\"./workflow.png\" alt=\"LlamaIndex Docs Agent workflow\"\u003e\r\n\u003c/div\u003e\r\n\r\nWhenever the user asks a question from the Gradio chat interface running on http://localhost:8000/gradio, this question is processed by the `/message` endpoint of the FastAPI-managed API to which the Gradio app is attached. The `/message` endpoint passes the user message to the ReAct agent, which:\r\n\r\n- Uses the query router to select an index (summary or vector database) from which to retrieve relevant information to the user's prompt. The vector database uses hybrid search.\r\n- Once the retrieved information is sent to the agent, it thinks whether the context is sufficient or not: if yes, it formulates a solution and returns it to the user, if no it activates the Tavily search tool\r\n- The Tavily search tool searches the web for a solution and returns an answer to the agent, which then decides if the answer is sufficient and, in that case, returns a solution to the user\r\n\r\n\r\n## Contributing\r\n\r\nContributions are always welcome! Follow the contributions guidelines reported [here](CONTRIBUTING.md).\r\n\r\n## License and rights of usage\r\n\r\nThe software is provided under MIT [license](./LICENSE).\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrabert%2Fllamaindex-docs-agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastrabert%2Fllamaindex-docs-agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastrabert%2Fllamaindex-docs-agent/lists"}