mirror of
https://github.com/foss42/apidash.git
synced 2025-12-04 03:46:57 +08:00
87 lines
4.5 KiB
Markdown
87 lines
4.5 KiB
Markdown
# Add ChatBot for API Assistance
|
||
|
||
Issue - https://github.com/foss42/apidash/issues/605
|
||
PR - https://github.com/foss42/apidash/pull/608
|
||
Link - https://fossunited.org/hack/fosshack25/p/7e6upj6f19
|
||
|
||
### What we planned to do:
|
||
|
||
We aim to implement a **ChatBot feature** in API Dash with the following capabilities:
|
||
|
||
1. **Explain API**:
|
||
- **Description**: Analyze API responses and provide explanations in natural language.
|
||
- **Features**: Generate clear descriptions of the API, including:
|
||
- Purpose of the API.
|
||
- Key parameters and their roles.
|
||
- Response structure and fields.
|
||
- Useful for **documentation** and **understanding API behavior**.
|
||
2. **Debug Requests Based on Status Codes & Error Messages**:
|
||
- **Description**: Provide **structured debugging suggestions** for failed API requests.
|
||
- **Features**:
|
||
- Analyze status codes (e.g., 4xx, 5xx) and error messages.
|
||
- Offer step-by-step guidance to resolve issues.
|
||
3. **Generate Test Cases**:
|
||
- **Description**: Automatically generate **test cases** for API endpoints.
|
||
- **Features**: Includes
|
||
- Valid input scenarios.
|
||
- Edge cases (e.g., invalid inputs, boundary values).
|
||
- Expected responses and status codes.
|
||
- Ensure test cases are **ready to use** in testing frameworks
|
||
4. **Generate Sample Codes**:
|
||
- **Description**: Generate **ready-to-run code snippets** for various programming languages (e.g., Dart, Python, JavaScript, React, Flutter).
|
||
- **Features:** Includes
|
||
- API integration code.
|
||
- Error handling.
|
||
- UI components for frontend frameworks (e.g: React).
|
||
- Ensure the code is **directly usable** with minimal modifications.
|
||
|
||
## What we built
|
||
|
||
### **1. Ollama Model Integration**
|
||
|
||
- **Dependency**: We integrated the AI chatbot with API Dash using the `ollama_dart: ^0.2.2` package.
|
||
- **System Requirements**: To use the Ollama model, the system must have the Ollama application installed locally with a compatible model.
|
||
- **Implementation**:
|
||
- The interaction with the Ollama model is handled in `lib/services/ollama_services.dart`.
|
||
- We tested multiple models, including `deepseek:r1:1.5b`, `ollama3.2:3b`, and `llama3.2:1b`.
|
||
- Among these, `ollama3.2:3b` delivered the most accurate responses.
|
||
- **Recommendation**: Use `ollama3.2:3b` or higher models for better accuracy.
|
||
- **Customization**: Developers can switch models by modifying the “`model:''`” parameter in `/apidash/lib/services/ollama_service.dart`.
|
||
|
||
### **2. Dynamic UI: ChatBot Widget**
|
||
|
||
- **Design**:
|
||
- A mini widget (`?`) is placed at the bottom right of the response panel.
|
||
- When clicked, it expands into an AI chatbot interface.
|
||
- **Features**:
|
||
- **Explain API**: Provides explanations for API functionalities.
|
||
- **Debug API**: Assists in debugging API-related issues.
|
||
- **Test Cases**: Generates test cases for APIs.
|
||
- **Generate Code**: Helps in generating code snippets for API integration.
|
||
- **General Questions**: Users can ask general questions about ApiDash.
|
||
- **Markdown Support**:
|
||
- We used the `“package:flutter_markdown/flutter_markdown.dart”`package to format and display responses in a clean, readable manner.
|
||
|
||
|
||
### Setup Guide
|
||
|
||
- Install the updated dependency`ollama_dart: ^0.2.2`
|
||
- To use the Ollama model, the system must have the Ollama application installed locally with a compatible model.
|
||
- The interaction with the Ollama model is handled in `lib/services/ollama_services.dart`.
|
||
- **Recommendation**: Use `ollama3.2:3b` or higher models for better accuracy.
|
||
- Developers need to switch models by modifying the “`model:''`” parameter in `/apidash/lib/services/ollama_service.dart` to their local Ollama model to interact.
|
||
- There you go now run `flutter run` to use AI Chatbot in ApiDash.
|
||
|
||
|
||
## Issues
|
||
1. **Enhance Response Formatting**: Improve the AI to ensure consistent markdown formatting in responses, eliminating plain text outputs.
|
||
2. **Optimize Structured Outputs**: Fine-tune the AI to generate more organized and structured responses for better usability and clarity.
|
||
|
||
|
||
## Future Enhancements:
|
||
1. Enable users to integrate their local Ollama models seamlessly through the ChatBot interface for enhanced customization.
|
||
2. Enable one-click downloading and copying of test codes, ensuring a seamless workflow for developers.
|
||
3. Implementing a feature to generate test codes dynamically based on API endpoints and user inputs.
|
||
4. A feature to Integrate with complete system architecture
|
||
5. Suggesting the best practices from selected type of requests.
|