Skip to main content

GitHub retrieval and context generation utilities for coding assistants and AI developer workflows.

Project description

llama-github

[Detail Document] https://deepwiki.com/JetXu-LLM/llama-github

PyPI version Downloads License

Llama-github is a powerful tool that helps you retrieve(based on Agentic RAG) the most relevant code snippets, issues, and repository information from GitHub based on your queries, transforming them into valuable knowledge context. It empowers LLM Chatbots, AI Agents, and Auto-dev Agents to solve complex coding tasks. Whether you're a developer looking for quick solutions or an engineer implementing advanced Auto Dev AI Agents, llama-github makes it easy and efficient.

If you like this project or believe it has potential, please give it a ⭐️. Your support is our greatest motivation!

Architecture

High Level Architecture

Installation

pip install llama-github

Current maintained runtime target: Python 3.10+.

Usage

Here's a simple example of how to use llama-github:

from llama_github import GithubRAG

# Initialize GithubRAG with your credentials
github_rag = GithubRAG(
    github_access_token="your_github_access_token", 
    openai_api_key="your_openai_api_key", # Optional in Simple Mode
    jina_api_key="your_jina_api_key" # Optional - unless you want high concurrency production deployment (s.jina.ai API will be used in llama-github)
)

# Retrieve context for a coding question (simple_mode is default set to False)
query = "How to create a NumPy array in Python?"
contexts = github_rag.retrieve_context(
    query,
    # simple_mode = True
)

print(contexts[0]["url"])
print(contexts[0]["context"])

retrieve_context() returns a list of context dictionaries. Each item contains at least context and url.

For more advanced usage and examples, please refer to the documentation. Runnable low-cost examples are also available in examples/.

Key Features

  • 🔍 Intelligent GitHub Retrieval: Harness the power of llama-github to retrieve highly relevant code snippets, issues, and repository information from GitHub based on user queries. Our advanced retrieval techniques ensure you find the most pertinent information quickly and efficiently.

  • ⚡ Repository Pool Caching: Llama-github has an innovative repository pool caching mechanism. By caching repositories (including READMEs, structures, code, and issues) across threads, llama-github significantly accelerates GitHub search retrieval efficiency and minimizes the consumption of GitHub API tokens.

  • 🧠 LLM-Powered Question Analysis: Leverage state-of-the-art language models to analyze user questions and generate highly effective search strategies and criteria. Llama-github intelligently breaks down complex queries, ensuring that you retrieve the most relevant information from GitHub's vast repository network.

  • 📚 Comprehensive Context Generation: Generate rich, contextually relevant answers by seamlessly combining information retrieved from GitHub with the reasoning capabilities of advanced language models. Llama-github excels at handling even the most complex and lengthy questions, providing comprehensive and insightful responses that include extensive context to support your development needs.

  • 🚀 Asynchronous Processing Excellence: Llama-github is built from the ground up to leverage the full potential of asynchronous programming. With meticulously implemented asynchronous mechanisms woven throughout the codebase, llama-github can handle multiple requests concurrently, significantly boosting overall performance.

  • 🔧 Flexible LLM Integration: Easily integrate llama-github with various LLM providers, embedding models, reranking models, or an injected LangChain-compatible chat model to tailor the library's capabilities to your specific requirements.

  • 🔒 Robust Authentication Options: Llama-github supports both personal access tokens and GitHub App authentication, providing you with the flexibility to integrate it into different development setups. Whether you're an individual developer or working within an organizational context, llama-github has you covered with secure and reliable authentication mechanisms.

  • 🛠️ Logging and Error Handling: We understand the importance of smooth operations and easy troubleshooting. That's why llama-github comes equipped with comprehensive logging and error handling mechanisms. Gain deep insights into the library's behavior, quickly diagnose issues, and maintain a stable and reliable development workflow.

🤖 Try Our AI-Powered PR Review Assistant: LlamaPReview

If you find llama-github useful, you might also be interested in our AI-powered GitHub PR review assistant, LlamaPReview. It's designed to complement your development workflow and further enhance code quality.

Key Features of LlamaPReview:

  • 🚀 One-click installation, zero configuration required, fully auto-run
  • 💯 Currently free to use - no credit card or payment info needed
  • 🧠 AI-powered, automatic PR reviews with deep code understanding
  • 🌐 Supports multiple programming languages

LlamaPReview utilizes llama-github's advanced context retrieval and LLM-powered analysis to provide intelligent, context-aware code reviews. It's like having a senior developer, armed with the full context of your repository, review every PR automatically!

👉 Install LlamaPReview Now (Free)

By using llama-github for context retrieval and LlamaPReview for code reviews, you can create a powerful, AI-enhanced development environment.

Vision and Roadmap

Vision

Our vision is to become a pivotal module in the future of AI-driven development solutions, seamlessly integrating with GitHub to empower LLMs in automatically resolving complex coding tasks.

Vision Architecture

Roadmap

For a historical view of the earlier roadmap, please visit Vision and Roadmap.

Acknowledgments

We would like to express our gratitude to the following open-source projects for their support and contributions:

  • LangChain: For providing the foundational framework that empowers the LLM prompting and processing capabilities in llama-github.
  • Jina.ai: For offering s.jina.ai API and open source reranker and embedding models that enhance the accuracy and relevance of the generated contexts in llama-github.

Their contributions have been instrumental in the development of llama-github, and we highly recommend checking out their projects for more innovative solutions.

Contributing

We welcome contributions to llama-github! Please see our contributing guidelines for more information.

License

This project is licensed under the terms of the Apache 2.0 license. See the LICENSE file for more details.

Contact

If you have any questions, suggestions, or feedback, please feel free to reach out to us at Jet Xu's email.


Thank you for choosing llama-github! We hope this library enhances your AI development experience and helps you build powerful applications with ease.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llama_github-0.4.0.tar.gz (54.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llama_github-0.4.0-py3-none-any.whl (48.8 kB view details)

Uploaded Python 3

File details

Details for the file llama_github-0.4.0.tar.gz.

File metadata

  • Download URL: llama_github-0.4.0.tar.gz
  • Upload date:
  • Size: 54.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for llama_github-0.4.0.tar.gz
Algorithm Hash digest
SHA256 33052fd4b237fd7c7f0545c239294f604f7737af69110d08e156a2ac740f0347
MD5 6e23003eee99a216f0f06221e2b1d6c3
BLAKE2b-256 34ac31ce5c672cd35482930f5359bb756943d61c9b83542ce7b2dd4f3117c6c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for llama_github-0.4.0.tar.gz:

Publisher: publish.yml on JetXu-LLM/llama-github

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llama_github-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: llama_github-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 48.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for llama_github-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e35d11290011ec2e0ad453987bd8d021626b57d70ad8d064d6d7ae7d4ab294dd
MD5 8d257fd4843e030a1db8aeed28db8089
BLAKE2b-256 381d2d7fb54ff9704dbc6109552bc8dd3fe4a703cb337f5aa3b1709f5b9399ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for llama_github-0.4.0-py3-none-any.whl:

Publisher: publish.yml on JetXu-LLM/llama-github

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page