Skip to content

abdi7d/Publication-Assistant-for-AI-Projects

Repository files navigation

Publication Assistant for AI Projects

🚀 Publication Assistant for AI Projects


Project Summary

A Multi-Agent System for Improving the Quality, Discoverability, and Credibility of AI/ML Repositories.

Project Overview

Publication Assistant for AI Projects is an advanced multi-agent AI system that analyzes a GitHub repository and automatically generates high-quality publication improvements, including:

  • A clearer, more engaging README
  • Better project titles and metadata
  • Discoverability improvements (tags, keywords)
  • Structural and documentation recommendations
  • Automated fact-checking of technical claims

The system is built using LangGraph orchestration, integrates multiple specialized agents, and leverages tool-augmented reasoning to go far beyond basic LLM text generation. This project was developed as part of the Mastering AI Agents program and demonstrates real-world, production-style agent collaboration.

Project Description

This project demonstrates mastery of core AI-agent concepts. Here's a breakdown of the design and architecture:

✅ Multi-Agent Collaboration

  • Multiple agents with distinct responsibilities
  • Clear handoff of state and artifacts between agents
  • Coordinated execution through a shared orchestration graph

✅ Agent Orchestration

  • Workflow implemented using LangGraph
  • Deterministic execution order with shared state
  • Modular, extensible pipeline design

✅ Tool Integration

  • Each agent is tool-augmented
  • Tools extend agent capabilities beyond text generation
  • Graceful fallbacks when optional tools are unavailable

🧠 System Architecture

The system is composed of five core agents, each with a focused role:

Agent Responsibility
RepoAnalyzerAgent Parses repository structure, README, and code statistics
MetadataRecommenderAgent Suggests project titles, tags, and short descriptions
ContentImproverAgent Rewrites and improves README using RAG + web examples
ReviewerCriticAgent Scores documentation quality and flags issues
FactCheckerAgent Verifies technical claims using arXiv

All agents are coordinated using a LangGraph StateGraph, ensuring clean, reproducible execution.

🔁 Orchestration Flow (LangGraph)

graph TD
    A["🔍 Repo Analysis"] --> B["🏷️ Metadata Recommendation"]
    B --> C["✍️ Content Improvement (RAG + Web Search)"]
    C --> D["🧐 Review & Critique"]
    D --> E["📚 Fact Checking"]
    E --> F["✅ Final Report"]

    style A fill:#e1f5fe,stroke:#0288d1,stroke-width:2px;
    style B fill:#fff3e0,stroke:#f57c00,stroke-width:2px;
    style C fill:#e8f5e9,stroke:#388e3c,stroke-width:2px;
    style D fill:#fce4ec,stroke:#c2185b,stroke-width:2px;
    style E fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px;
    style F fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px;
Loading

Each step enriches the shared state and passes structured outputs to the next agent.

🛠️ Tools Used

This project integrates five tools, including both built-in and custom implementations:

Tool Purpose
RepoParser Reads local, ZIP, or remote GitHub repositories
KeywordExtractor (Gemini / Heuristic) Extracts technical keywords
TavilySearchTool Finds similar successful repositories
RAGRetriever (ChromaDB) Retrieves best-practice documentation hints
ArxivScholarTool Verifies scientific and technical claims
MCPBus (Optional) Lightweight pub/sub communication layer

All tools are optional-dependency-safe and fail gracefully.

💡 Key Features

  • 🔍 Automatic repository inspection (local, ZIP, or GitHub URL)
  • ✍️ README rewriting using RAG + Web Search
  • 🏷️ Intelligent metadata generation (titles, tags, descriptions)
  • 📊 Documentation quality scoring
  • 📚 Claim verification using academic sources
  • 🧩 Modular and extensible agent design
  • 🖥️ CLI and Gradio App support

📸 Demos & Screenshots

Interactive Gradio UI (Screenshots):

Gradio UI Demo 1 Gradio UI Demo 2 Gradio UI Demo 3

Video Walkthrough: 🎥 Watch the Video Demo on YouTube/Loom


Tech Stack / Technologies Used

  • Languages: Python 3.11+
  • Orchestration / LLM Framework: LangGraph, LangChain
  • LLM Providers: Groq (Llama-3, Mixtral), Google GenAI (Gemini)
  • Web UI Framework: Gradio
  • Vector Database (RAG): ChromaDB
  • Web Search Integration: Tavily Python Client
  • Scientific Verification: ArXiv API

Repository Structure

Publication Assistant/
├── agents/
│   ├── __init__.py
│   ├── repo_analyzer.py
│   ├── metadata_recommender.py
│   ├── content_improver.py
│   ├── reviewer_critic.py
│   └── fact_checker.py
│
├── orchestration/
│   ├── __init__.py
│   └── graph.py
│
├── tools/
│   ├── __init__.py
│   ├── repo_parser.py
│   ├── web_search.py
│   ├── rag_retriever.py
│   ├── keyword_extractor.py
│   └── arxiv_scholar.py
│
├── venv
├── utils/
│   ├── __init__.py
│   ├── evaluation.py
│   ├── logging.py
│   └── mcp.py
│
├── .env
├── .env.example
├── .gitignore
├── app.py
├── Dockerfile
├── main.py
├── README.md
└── requirements.txt

🚀 Getting Started

📋 Prerequisites

Before you begin, make sure you have the following:

  • ✅ Python 3.11+
  • 🔑 Groq API Key (required)
  • 🔑 Google API Key (optional)
  • 🔑 Tavily API Key (optional, for web search capabilities)

🛠️ Setup and Installation Guide

1️⃣ Clone the Repository

git clone https://github.com/your-username/publication-assistant.git
cd publication-assistant

2️⃣ Install Dependencies

pip install -r requirements.txt

3️⃣ Set Environment Variables

Create a .env file:

GOOGLE_API_KEY=your_google_api_key
GROQ_API_KEY=your_groq_api_key
TAVILY_API_KEY=your_tavily_api_key

(Optional tools will still work without this.)


📖 Usage Instructions

Once the application is installed, you can use it via the interactive Gradio app or the command line.

🌐 1. Gradio App - Recommended

The Gradio app provides the richest experience for exploring the generated documentation.

To start the server:

python app.py

How to use:

  1. Open your browser and navigate to http://localhost:7860.
  2. Project Setup: Paste a public GitHub Repository URL into the input field and click "Validate".
  3. Configuration: On the left panel, select your preferred "Writing Style" (e.g., Technical Blog) and "AI Model".
  4. Generation: Click "Generate Article". The system will trigger the multi-agent pipeline and present the improved README, tags, and titles on the right.

▶️ 2. Command Line Interface (CLI)

You can directly parse local or remote repositories from your terminal for quick analysis.

Analyze a local repository:

python main.py --repo-path ./some_local_repo

Analyze a remote repository:

python main.py --repo-path https://github.com/user/project

The CLI will output a concise report in your terminal containing suggested titles, tags, review scores, and missing sections.


🧠 Design Principles

  • Separation of Concerns – each agent has a single responsibility
  • Tool-Augmented Intelligence – agents do not rely on LLMs alone
  • Fault Tolerance – optional tools fail gracefully
  • Extensibility – new agents or tools can be added easily

🔮 Future Enhancements

  • Formal evaluation metrics against baseline READMEs
  • Multi-repo batch analysis
  • GitHub Actions integration
  • Automatic PR creation with improved README
  • Support for MCP over network

🤝 Contributing

Contributions are welcome! Please open an issue or submit a pull request with clear documentation.


📜 License

Licensed under the MIT license.


📚 References

  1. Ready TensorAgentic AI Developer Certification
  2. LangGraph FrameworkOfficial Documentation
  3. LangChainBuilding context-aware reasoning applications
  4. GradioThe fastest way to build & share ML apps
  5. ChromaDBOpen-source AI-native embedding database
  6. Tavily SearchSearch Engine Optimized for LLMs
  7. ArXiv APIScholarly Research API

📬 Contact

📧 abdid.yadata@gmail.com

About

A multi-agent AI system that analyzes GitHub repositories and automatically improves READMEs, metadata, documentation quality, and technical credibility using LangGraph and tool-augmented agents.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors