# 🦙 Panel ChatBot Pack
Build a chatbot to talk to your Github repository.
Powered by LlamaIndex, OpenAI ChatGPT and [HoloViz Panel](https://panel.holoviz.org/reference/chat/ChatInterface.html).

## 💁♀️ Explanation
This template
- Downloads and indexes a Github repository using the `llama_index` [`GithubRepositoryReader`](https://llamahub.ai/l/github_repo). The default repository is [holoviz/panel](https://github.com/holoviz/panel).
- Creates a [VectorStoreIndex](https://docs.llamaindex.ai/en/stable/changes/deprecated_terms.html#VectorStoreIndex) powered chat engine that will retrieve context from that data to respond to each user query.
- Creates a Panel [`ChatInterface`](https://panel.holoviz.org/reference/chat/ChatInterface.html) UI that will stream each answer from the chat engine.
## 🖥️ CLI Usage
You can download llamapacks directly using `llamaindex-cli`, which comes installed with the `llama-index` Python package:
```bash
pip install llama-index
llamaindex-cli download-llamapack PanelChatPack --download-dir ./panel_chat_pack
```
You can then inspect the files in the `panel_chat_pack` folder and use them as a template for your own project!
To run the app directly, use in your terminal:
```bash
export OPENAI_API_KEY="sk-..."
export GITHUB_TOKEN='...'
panel serve ./panel_chat_pack/base.py
```
As an alternative to `panel serve`, you can run
```bash
python ./panel_chat_pack/base.py
```
## 🎓 Learn More
- [`GithubRepositoryReader`](https://llamahub.ai/l/github_repo)
- [`VectorStoreIndex`](https://docs.llamaindex.ai/en/stable/changes/deprecated_terms.html#VectorStoreIndex)
- [Panel Chat Components](https://panel.holoviz.org/reference/index.html#chat)
- [Panel Chat Examples](https://github.com/holoviz-topics/panel-chat-examples)
## 👍 Credits
- [Marc Skov Madsen](https://twitter.com/MarcSkovMadsen) for creating the template
- [Sophia Yang](https://twitter.com/sophiamyang) for creating the cute LLama image.
## 📈 Potential Improvements
- [ ] Improved Multi-user support
- [ ] Loading queue: Users should not be able to download the same repository at the same time.
- [ ] Service Context
- [ ] Enable users to define the service context including `model`, `temperature` etc.
- [ ] Better loading experience
- [ ] Let the chat assistant show (more fine-grained) status messages. And provide more status changes
- [ ] Focus on the streaming text
- [ ] The streaming text is not always in focus. I believe its a matter of adjusting the `auto_scroll_limit` limit.
- [ ] Fix minor CSS issues
- [ ] See the `CSS_FIXES_TO_BE_UPSTREAMED_TO_PANEL` variable in the code
- [ ] Repo Manager
- [ ] Support using multiple repos. For example the full HoloViz suite
Raw data
{
"_id": null,
"home_page": null,
"name": "llama-index-packs-panel-chatbot",
"maintainer": "MarcSkovMadsen",
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "chatbot, github, index, openai, panel",
"author": null,
"author_email": "Your Name <you@example.com>",
"download_url": "https://files.pythonhosted.org/packages/a6/ef/4860a5e7c4f18a1baff1da4ba8301f5b1eec65b3cf514d7862a50af55658/llama_index_packs_panel_chatbot-0.4.0.tar.gz",
"platform": null,
"description": "# \ud83e\udd99 Panel ChatBot Pack\n\nBuild a chatbot to talk to your Github repository.\n\nPowered by LlamaIndex, OpenAI ChatGPT and [HoloViz Panel](https://panel.holoviz.org/reference/chat/ChatInterface.html).\n\n\n\n## \ud83d\udc81\u200d\u2640\ufe0f Explanation\n\nThis template\n\n- Downloads and indexes a Github repository using the `llama_index` [`GithubRepositoryReader`](https://llamahub.ai/l/github_repo). The default repository is [holoviz/panel](https://github.com/holoviz/panel).\n- Creates a [VectorStoreIndex](https://docs.llamaindex.ai/en/stable/changes/deprecated_terms.html#VectorStoreIndex) powered chat engine that will retrieve context from that data to respond to each user query.\n- Creates a Panel [`ChatInterface`](https://panel.holoviz.org/reference/chat/ChatInterface.html) UI that will stream each answer from the chat engine.\n\n## \ud83d\udda5\ufe0f CLI Usage\n\nYou can download llamapacks directly using `llamaindex-cli`, which comes installed with the `llama-index` Python package:\n\n```bash\npip install llama-index\nllamaindex-cli download-llamapack PanelChatPack --download-dir ./panel_chat_pack\n```\n\nYou can then inspect the files in the `panel_chat_pack` folder and use them as a template for your own project!\n\nTo run the app directly, use in your terminal:\n\n```bash\nexport OPENAI_API_KEY=\"sk-...\"\nexport GITHUB_TOKEN='...'\npanel serve ./panel_chat_pack/base.py\n```\n\nAs an alternative to `panel serve`, you can run\n\n```bash\npython ./panel_chat_pack/base.py\n```\n\n## \ud83c\udf93 Learn More\n\n- [`GithubRepositoryReader`](https://llamahub.ai/l/github_repo)\n- [`VectorStoreIndex`](https://docs.llamaindex.ai/en/stable/changes/deprecated_terms.html#VectorStoreIndex)\n- [Panel Chat Components](https://panel.holoviz.org/reference/index.html#chat)\n- [Panel Chat Examples](https://github.com/holoviz-topics/panel-chat-examples)\n\n## \ud83d\udc4d Credits\n\n- [Marc Skov Madsen](https://twitter.com/MarcSkovMadsen) for creating the template\n- [Sophia Yang](https://twitter.com/sophiamyang) for creating the cute LLama image.\n\n## \ud83d\udcc8 Potential Improvements\n\n- [ ] Improved Multi-user support\n - [ ] Loading queue: Users should not be able to download the same repository at the same time.\n- [ ] Service Context\n - [ ] Enable users to define the service context including `model`, `temperature` etc.\n- [ ] Better loading experience\n - [ ] Let the chat assistant show (more fine-grained) status messages. And provide more status changes\n- [ ] Focus on the streaming text\n - [ ] The streaming text is not always in focus. I believe its a matter of adjusting the `auto_scroll_limit` limit.\n- [ ] Fix minor CSS issues\n - [ ] See the `CSS_FIXES_TO_BE_UPSTREAMED_TO_PANEL` variable in the code\n- [ ] Repo Manager\n - [ ] Support using multiple repos. For example the full HoloViz suite\n",
"bugtrack_url": null,
"license": null,
"summary": "llama-index packs panel_chatbot integration",
"version": "0.4.0",
"project_urls": null,
"split_keywords": [
"chatbot",
" github",
" index",
" openai",
" panel"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "b01770d85ca650bc06b5ce628db1e943b2f76b108b05bccb2e136fe0c5470724",
"md5": "69670f7b0c004ebf3616d5e3b44a782b",
"sha256": "b850b563e8e3aecaa4f4dda2ae387321d2ad00890f5e47b7ce9b2ace355687ff"
},
"downloads": -1,
"filename": "llama_index_packs_panel_chatbot-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "69670f7b0c004ebf3616d5e3b44a782b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 4154770,
"upload_time": "2025-07-31T02:45:00",
"upload_time_iso_8601": "2025-07-31T02:45:00.589402Z",
"url": "https://files.pythonhosted.org/packages/b0/17/70d85ca650bc06b5ce628db1e943b2f76b108b05bccb2e136fe0c5470724/llama_index_packs_panel_chatbot-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a6ef4860a5e7c4f18a1baff1da4ba8301f5b1eec65b3cf514d7862a50af55658",
"md5": "a11071030ef2f65ecbeee266994717fa",
"sha256": "ffdddfb577b0503b60ae9e7bd421220e0a88470374b5ff7e96223594152d76b4"
},
"downloads": -1,
"filename": "llama_index_packs_panel_chatbot-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "a11071030ef2f65ecbeee266994717fa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 4155883,
"upload_time": "2025-07-31T02:45:06",
"upload_time_iso_8601": "2025-07-31T02:45:06.248016Z",
"url": "https://files.pythonhosted.org/packages/a6/ef/4860a5e7c4f18a1baff1da4ba8301f5b1eec65b3cf514d7862a50af55658/llama_index_packs_panel_chatbot-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-31 02:45:06",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "llama-index-packs-panel-chatbot"
}