Skip to content

GSOC: Dashbot #778

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
221 changes: 221 additions & 0 deletions doc/proposals/2025/gsoc/application_Loghadhith_Dashbot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
# GSoC Proposal
## DashBot - AI-Powered API Assistant


## About

1. **Full Name**: Loghadhith J R
2. **Email**: [email protected]
3. **Phone-no**: +91-6380572051
4. **Discord Handle**: Loghadhith
5. **Home Page**: nil
6. **Blog**: nil
7. **GitHub Profile Link**: [github.com/Loghadhith](https://github.com/Loghadhith/)
8. **Twitter**: nil
9. **LinkedIn**: nil
10. **Time Zone**: Indian Standard Time (IST, UTC+5:30)
11. **Link to a Resume**: [Resume](https://drive.google.com/file/d/19UzV2vpNRMRkDMYV2NbjoB06mdw_GJgR/view?usp=sharing)
---
## University Info
- **University Name**: Chennai Insititute of Technology
- **Program**: B.E in Computer Science and Engineering (Artificial Intelligence and Machine Learning)
- **Year**: 3rd Year (Started in 2022)
- **Expected Graduation Date**: May 2026
---
## Motivation & Past Experience

1. **Have you worked on or contributed to a FOSS project before? Can you attach repo links or relevant PRs?**
No

2. **What is your one project/achievement that you are most proud of? Why?**
One project I’m most proud of is THREADS, an open-source e-commerce assistant that uses similarity search and voice assistance to guide non-tech savvy users. It taught me how to design complex architecture with LLMs, and I'm proud of how it combines technology with real-world user experience to make online shopping more accessible.


3. **What kind of problems or challenges motivate you the most to solve them?**
I’m motivated by challenges that simplify complex systems and improve user experience, especially for non-tech savvy individuals. Solving problems with new technologies, like LLMs, excites me because it allows me to create impactful, accessible solutions.


4. **Will you be working on GSoC full-time? In case not, what will you be studying or working on while working on the project?**
Yes, I’ll be working full-time on GSoC.

5. **Do you mind regularly syncing up with the project mentors?**
Not at all, I’m happy to sync up regularly.

6. **What interests you the most about API Dash?**
Its lightweight, developer-focused design and potential for smart automation.

7. **Can you mention some areas where the project can be improved?**
Add LLM-powered plugins for automated insights, testing, and integration.
---
## Project Proposal Information

### 1. Proposal Title
**DashBot - AI-Powered API Assistant for API Dash**

### 2. Abstract
API Dash simplifies API interaction, but repetitive tasks like debugging, documentation, and testing still demand developer effort. DashBot introduces a natural-language-based AI assistant inside API Dash that helps explain, debug, document, test, and visualize APIs. By leveraging LLMs and context-aware routing, DashBot will supercharge developer productivity and reduce cognitive load.

### 3. Detailed Description
DashBot will be a modular AI assistant built into API Dash to handle natural-language queries and automate critical but repetitive developer tasks. It will support the following core features:
- **Response Explanation:** Converts raw API responses into easy-to-understand English.
- **Debugging Assistant:** Diagnoses failed API calls using status codes and error messages.
- **Documentation Generator:** Produces markdown/OpenAPI-style docs automatically.
- **Test Generator:** Creates integration/unit test code based on API behavior.
- **Visualizer:** Generates plots from JSON responses.
- **Frontend Integration Code Generator:** Outputs working code snippets for frameworks like React, Vue, Flutter, etc.

DashBot will include:
- An **NLP + prompt generation layer** to parse natural language.
- A **modular routing system** to direct tasks to appropriate LLM-backed modules.
- Integration hooks to read request/response data from API Dash’s store.
- UI components to embed DashBot seamlessly inside Apidash’s existing interface.

The entire system will be modular and extensible, ensuring future contributions and new features can plug into the core easily.

---
### 4. Architecture Diagram
![1743958514](https://github.com/user-attachments/assets/ef3d1d7c-5c58-4183-864a-8711bcd1f62e)
---

### 5. Weekly Timeline (12 Weeks)

| Week | Activities |
|------|------------|
| 1 | Finalize architecture, scope, and module breakdown |
| 2 | Build DashBot UI inside Apidash; develop NLP intent router |
| 3–4 | Implement Orchestration Layer + LLM Gateway |
| 4–5 | Develop core modules: Explainer, Debugger, Test Generator |
| 6–7| Build Visualizer & Frontend Code Generator modules |
| 8–9| Documentation generator + context-aware prompt enhancements |
| 10-11 | Logging, feedback collection, performance improvements |
| 11 | End-to-end testing with real APIs; edge case handling |
| 12 | Final polish, documentation, and MVP release 🎉 |

---

#### **Week 1 – Planning & Architecture**
- Community bonding period
- Finalize overall scope based on GSoC proposal.
- Define system architecture: DashBot core, AI modules, orchestration layer, LLM integration, UI interface.
- Plan modular structure for each feature (e.g., explainer, visualizer).
- Choose tech stack, finalize third-party API providers (OpenAI, Ollama, etc.).
- Setup project skeleton: repository structure, linting, CI, and code quality tools.

---

#### **Week 2 – UI & Intent Recognition**
- Design and integrate DashBot’s user interface within Apidash:
- Natural language input box
- Output/response pane
- Quick-action suggestions
- Implement an **Intent Router**:
- Parse natural language to route user queries (e.g., "Explain this response", "Generate test")
- Map intents to module calls using regex or lightweight NLP libraries.

---

#### **Weeks 3–4 – Orchestration Layer & LLM Gateway**
- Develop the **Orchestration Layer** to:
- Receive user input
- Call appropriate AI module
- Return result to frontend
- Build a **pluggable LLM gateway** to support multiple model providers (OpenAI, Claude, Gemini, Ollama).
- Add retry logic, error handling, and token usage monitoring.

---

#### **Weeks 4–5 – Core Modules: Explainer, Debugger, Test Generator**
- **Explainer**: Parses API response and uses LLM to output plain-English explanations.
- **Debugger**: Analyzes failed requests based on status code, headers, and error messages. Suggests causes and fixes.
- **Test Generator**: Produces unit/integration test cases using popular frameworks (e.g., Jest, Postman, or Python’s `unittest`).

---

#### **Weeks 6–7 – Visualizer & Frontend Code Generator**
- **Visualizer**:
- Extracts structured data from JSON
- Generates basic plots (line, bar, pie) using lightweight charting libs
- Allows user customization (fields, chart type)
- **Frontend Code Generator**:
- Converts API call structure into ready-to-use code snippets
- Supports React (fetch/axios), Flutter (Dio/http), Vue, etc.
- Customizes auth headers, parameters, and error handling

---

#### **Weeks 8–9 – Documentation & Context Enhancements**
- **Documentation Generator**:
- Automatically converts API calls and responses into structured Markdown or OpenAPI-style documentation.
- Supports headers, body, query params, and sample responses.
- Enhance prompts and modules using **context-aware input**:
- Include request metadata (method, headers, params) in prompt
- Maintain short-term context history (last few interactions)

---

#### **Weeks 10–11 – Logging, Feedback & Edge Cases**
- Implement:
- Logging system to track DashBot usage and performance
- Anonymous feedback system for collecting suggestions/ratings
- Improve:
- Prompt quality (edge case prompts)
- Error-handling for null/undefined/malformed responses
- Optimize:
- Caching repeated LLM outputs for performance
- Limit token usage for cost efficiency

---

#### **Week 12 – Final Polish & MVP Release**
- Finalize UX for all modules.
- Conduct full test suite (unit, integration, manual flows).
- Clean up codebase, remove dev tools, finalize docs.
- Release DashBot MVP with full documentation and usage instructions.
- Prepare final demo and handoff plan (if needed).

---

## 6.Techstack


#### 1. **NLP Module (Intent + Entity Extraction)**
- **SpaCy**: For tokenization and entity recognition.
- **Hugging Face Transformers**: For intent detection with pre-trained models (e.g., BERT, GPT).
- **Rasa/Dialogflow**: For conversational AI (optional).

#### 2. **AI Feature Modules (Response Explainer, Debugging, etc.)**
- **OpenAI API**: For text generation (GPT-3/4, Codex for code).
- **LangChain**: For complex chaining and interactions of LLMs.
- **GPT-J**: Open-source alternative for local processing.

#### 3. **Orchestration Layer**
- **Celery**: For managing asynchronous tasks.
- **Redux** (Flutter equivalent: **Riverpod** or **Provider**): For state management and conversation context.
- **BullMQ**: For background task management (Node.js backend, if any).

#### 4. **Knowledge Base / Contextual Data Store**
- **Elasticsearch**: For indexing and searching API specs, logs.
- **MongoDB**: Flexible NoSQL database for storing user interactions and configurations.
- **Redis**: For quick access to session and context data.
- **SQLite**: Lightweight local database for storing interaction history.

#### 5. **Logging & Feedback**
- **Sentry**: For error monitoring and real-time feedback.
- **LogRocket**: For frontend user session logging (Flutter can integrate via native bridge).
- **Google Analytics / Mixpanel**: For usage analytics and tracking.

#### 6. **UI & Frontend (Flutter)**
- **Flutter**: Cross-platform UI framework for DashBot integration.
- **Riverpod** or **Provider**: For state management in Flutter.
- **Tailwind CSS**: If required in Flutter web apps (via Flutter Web integration).
- **Chart.js / Plotly**: For generating visualizations.

#### 7. **Code Integration & Test Generation**
- **Swagger/OpenAPI**: For API documentation generation.
- **Jest/Mocha**: For generating and running unit tests (via Node.js backend, if any).
- **Yeoman**: For scaffolding code templates (if necessary).

#### 8. **Other**
- **Redis**: For quick caching and session data.
- **PostgreSQL**: If relational data is needed.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.