samu's picture
1st
7c7ef49
# Backend Development Plan
## 1. Category-Based System Instructions
- **Goal:** Support system instructions tailored to specific engineering categories (e.g., mechanical, structural, civil, architectural, electrical, aerospace).
- **Approach:**
- Define a set of system instructions for each category.
- **Allowed Categories:**
- mechanical
- structural
- civil
- architectural
- electrical
- aerospace
- Store these instructions in a configuration file (e.g., JSON or YAML) or a database.
- Update API endpoints to accept a `category` parameter.
- Use the selected category in the generation logic to apply corresponding instructions.
- Provide a fallback to default instructions if the category isn't recognized.
## 2. API Changes
- **Add `category` field** to relevant request models (e.g., `TextGenerateRequest`, `ImageTextGenerateRequest`).
- **Validate the category** against the allowed values.
- **Pass category** to generation utilities to select appropriate instructions.
- **Logging and Error Handling:**
- Log usage statistics for different categories.
- Return clear error messages if an invalid category is provided.
## 3. Future Ideas and Enhancements
- Allow users to define custom categories or instructions.
- Add endpoints to list available categories along with their descriptions.
- Implement advanced logging and analytics to observe category usage.
- Support multi-category or hybrid instructions.
- **Extend the configuration:**
- Provide detailed parameters per category (e.g., style, tone, structural guidelines).
- Create a configuration file to manage these parameters centrally.
- Explore caching mechanisms for repeated generation requests per category.
---
## Next Steps
1. Define allowed categories and specify instructions per category.
2. Refactor request models and endpoints to include a `category` parameter.
3. Update generation logic to utilize category-specific instructions.
4. Develop a configuration file for system instructions per category.
5. Enhance error handling and logging for better maintainability.