apidash icon indicating copy to clipboard operation
apidash copied to clipboard

DashBot - the AI assistant for API Dash

Open ashitaprasad opened this issue 10 months ago • 20 comments

Tell us about the task you want to perform and are unable to do so because the feature is not available

Develop DashBot - the AI assistant for API Dash which supercharges developer productivity by helping developers automate tedious tasks, follow best practices, interact & obtain contextual suggestions, all via natural-language input. DashBot must be designed in a modular and extensible manner and provide the following list of features (suggestive, not exhaustive):

  • Explain responses & identify any discrepancy
  • Debug requests based on Status codes & Error messages
  • Generate API documentation
  • Understand API and generate tests
  • Generate plots & visualizations for API responses along with ability to customize
  • Generate API integration frontend code for frontend frameworks like React, Flutter, etc.

ashitaprasad avatar Feb 23 '25 16:02 ashitaprasad

hey @ashitaprasad this was the idea I was most interested in from the list of ideas in GSOC 2025 idea list. Can I start with some groundwork research and prepare a basic flow for this?

Mrudul111 avatar Feb 24 '25 07:02 Mrudul111

Sure @Mrudul111 👍

ashitaprasad avatar Feb 24 '25 15:02 ashitaprasad

@ashitaprasad hey there , surely lot of ai buzz going on in the repo now , quite surprised to see this actually. I was wondering if contributors use python for communication with some llms and creating memory layer. Would it be through a server hoisting the python scripts.Just curious about how this is structured!

Clasherzz avatar Feb 28 '25 14:02 Clasherzz

Hi @ashitaprasad

Just wanted to share an update on Dashbot:

  • Finished Features 1 & 2 (Explain Responses + Debug Requests) – they’re working well now.
  • Also added conversation memory, delete conversation and copy response functionality.

I have a question: Should I keep separate conversation memory for each new request, or maintain a single memory for all requests (where the bot adapts based on the user’s current request)?

Here are some screenshots of the current progress. Let me know if you have any suggestions for UI improvements, response tuning or other approaches!

Image Image Image Image

siddu015 avatar Feb 28 '25 17:02 siddu015

@siddu015 hey man you don't have to develop it right now ig it's in the program

PRANJALRANA11 avatar Feb 28 '25 17:02 PRANJALRANA11

Actually, I’ve been working on this since FOSS Hack! Met mentors there, discussed the idea, and got started on it.

siddu015 avatar Feb 28 '25 18:02 siddu015

Hi @ashitaprasad

Just wanted to share an update on Dashbot:

  • Finished Features 1 & 2 (Explain Responses + Debug Requests) – they’re working well now.
  • Also added conversation memory, delete conversation and copy response functionality.

I have a question: Should I keep separate conversation memory for each new request, or maintain a single memory for all requests (where the bot adapts based on the user’s current request)?

Here are some screenshots of the current progress. Let me know if you have any suggestions for UI improvements, response tuning or other approaches!

Image Image Image Image

What LLM are we using here for the results

Mrudul111 avatar Mar 01 '25 07:03 Mrudul111

llama3.2:3b

siddu015 avatar Mar 01 '25 07:03 siddu015

@ashitaprasad Hey, I have a probabilistic idea for this. What I think is that instead of making simple genai calls to get this done or creating a simple chatbot type of conversation ai agent like the one implemented earlier in this issue, we can use langchain implementation alongwith langgraph to actually get a stepwise response generation with all parameters covered as separate nodes of a langgraph.

Instead of traditional system prompted ai agent [prompted to be the assistant - which may create hallucinations], we may use a series of dependent calls to make it more reliable. Just an idea can be to create a separate backend service for dashbot and integrating in the apidash frontend. I think this sounds reliable and achievable quickly. It solves major overheads like context management and chat history [which may be needed]. Keeping it as separate module in backend actually makes sense though. Let me know further obviously open to discussions

ARYPROGRAMMER avatar Mar 01 '25 17:03 ARYPROGRAMMER

@ashitaprasad hey there , surely lot of ai buzz going on in the repo now , quite surprised to see this actually. I was wondering if contributors use python for communication with some llms and creating memory layer. Would it be through a server hoisting the python scripts.Just curious about how this is structured!

@Clasherzz There is no involvement of Python or server. Dart has sufficient packages to connect to Ollama API or any commercial API like ChatGPT. The memory layer and communication must be handled by API Dash.

ashitaprasad avatar Mar 01 '25 18:03 ashitaprasad

Hi @ashitaprasad

Just wanted to share an update on Dashbot:

  • Finished Features 1 & 2 (Explain Responses + Debug Requests) – they’re working well now.
  • Also added conversation memory, delete conversation and copy response functionality.

I have a question: Should I keep separate conversation memory for each new request, or maintain a single memory for all requests (where the bot adapts based on the user’s current request)?

Here are some screenshots of the current progress. Let me know if you have any suggestions for UI improvements, response tuning or other approaches!

@siddu015 You can send a draft PR for review.

Also, we have updated the application guide here where you can learn how to share your idea in more detail and get feedback.

ashitaprasad avatar Mar 01 '25 18:03 ashitaprasad

@siddu015 hey man you don't have to develop it right now ig it's in the program

@PRANJALRANA11 Read the Application Guide. This is an issue and anyone can start working on it. It will ultimately give the contributors more ideas as the project brief is just the start.

ashitaprasad avatar Mar 01 '25 18:03 ashitaprasad

@ashitaprasad Hey, I have a probabilistic idea for this. What I think is that instead of making simple genai calls to get this done or creating a simple chatbot type of conversation ai agent like the one implemented earlier in this issue, we can use langchain implementation alongwith langgraph to actually get a stepwise response generation with all parameters covered as separate nodes of a langgraph.

Instead of traditional system prompted ai agent [prompted to be the assistant - which may create hallucinations], we may use a series of dependent calls to make it more reliable. Just an idea can be to create a separate backend service for dashbot and integrating in the apidash frontend. I think this sounds reliable and achievable quickly. It solves major overheads like context management and chat history [which may be needed]. Keeping it as separate module in backend actually makes sense though. Let me know further obviously open to discussions

@ARYPROGRAMMER We have updated the application guide here where you can learn how to share your idea details with architecture and implementation plan and get feedback.

ashitaprasad avatar Mar 01 '25 18:03 ashitaprasad

@ashitaprasad hey there , surely lot of ai buzz going on in the repo now , quite surprised to see this actually. I was wondering if contributors use python for communication with some llms and creating memory layer. Would it be through a server hoisting the python scripts.Just curious about how this is structured!

why we cant do the same thing in python? is there any limitations?? guess what bro you need to actually start researching on this topic

TechQaiser avatar Mar 02 '25 18:03 TechQaiser

@ashitaprasad hey there , surely lot of ai buzz going on in the repo now , quite surprised to see this actually. I was wondering if contributors use python for communication with some llms and creating memory layer. Would it be through a server hoisting the python scripts.Just curious about how this is structured!

why we cant do the same thing in python? is there any limitations?? guess what bro you need to actually start researching on this topic

Well 2 ways to do this are either through a server or through a flutter dart bridge . The second one can be a little too complex. And ig like maintainer said the organization is not looking forward on using python in their codebase

Clasherzz avatar Mar 03 '25 01:03 Clasherzz

@siddu015 is the dashbot there for mobile version for just the Windows/macOS atp?

Mrudul111 avatar Mar 07 '25 05:03 Mrudul111

@ashitaprasad Can you please guide me detail about this issue ?

Aqsashahid7788 avatar Mar 21 '25 19:03 Aqsashahid7788

@ashitaprasad I'm interested in DashBot with a focus on LLM-based error explanation + test case generation. Would love to get your feedback on a proposal direction.

greesh13 avatar Mar 22 '25 19:03 greesh13

Hi @ashitaprasad, I’m really interested in working on DashBot for GSoC 2025, especially in enhancing LLM-based error explanations or API test case generation. Are there any specific sub-tasks that still need contributors?

aakarshgopishetty avatar Mar 23 '25 09:03 aakarshgopishetty

Note to all: An initial implementation of DashBot was merged in PR #608 It is currently a hidden feature.

ashitaprasad avatar Mar 24 '25 19:03 ashitaprasad