68 genai enhance course generation api confirmation chat and crawling#69
Conversation
…r context and fallback logic
…d confirmation methods
… response methods
…bedding, and advanced course logic
There was a problem hiding this comment.
Pull Request Overview
This PR introduces Generative AI (GenAI) capabilities to course management, enhances search filters, and reorganizes API contracts.
- Adds GenAI-based course generation preview and confirmation workflows
- Implements prompt completion and web crawling endpoints returning structured DTOs
- Updates
CourseServiceAPI and advanced search to includeisPublished/isPublicfilters
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| CourseServiceImpl.java | Implements GenAI workflows, updates getPublishedCourses, adds cache for previews |
| CourseService.java | Extends interface with new GenAI and crawling methods, updates signatures and Javadoc |
| PromptResponse.java | New DTO for GenAI prompt completions |
| EmbedResult.java | New DTO for web crawling embedding results |
| CourseController.java | Exposes GenAI generation and confirmation REST endpoints |
Comments suppressed due to low confidence (5)
server/skillforge-course/src/main/java/com/gitittogether/skillForge/server/course/service/courses/CourseService.java:248
- The Javadoc states a boolean return but the method signature returns
EmbedResult. Update the@returntag to reflect the correct return type.
* @return boolean indicating whether the crawling was successful.
server/skillforge-course/src/main/java/com/gitittogether/skillForge/server/course/dto/response/utils/PromptResponse.java:20
- Field
generated_textuses snake_case, which is inconsistent with Java naming conventions. Consider renaming togeneratedTextand using@JsonProperty("generated_text")if needed.
private String generated_text;
server/skillforge-course/src/main/java/com/gitittogether/skillForge/server/course/service/courses/CourseServiceImpl.java:537
- [nitpick] Log message references the old method name
generateFromGenAi; update it togenerateCourseFromGenAifor consistency.
log.error("❌ generateFromGenAi failed due to duplicate course title: {}", e.getMessage());
server/skillforge-course/src/main/java/com/gitittogether/skillForge/server/course/service/courses/CourseServiceImpl.java:454
- New GenAI methods (
generateCourseFromGenAi&confirmCourseGeneration) lack accompanying unit tests. Consider adding coverage for happy path and failure scenarios.
public CourseRequest generateCourseFromGenAi(LearningPathRequest req, String userId, String authHeader) {
server/skillforge-course/src/main/java/com/gitittogether/skillForge/server/course/service/courses/CourseServiceImpl.java:474
- The
restTemplateinstance is used here but not injected or declared in this class. Ensure a RestTemplate bean is autowired or provided via constructor.
ResponseEntity<String> profileResp = restTemplate.exchange(profileUrl, HttpMethod.GET, entity, String.class);
.../main/java/com/gitittogether/skillForge/server/course/service/courses/CourseServiceImpl.java
Outdated
Show resolved
Hide resolved
.../main/java/com/gitittogether/skillForge/server/course/service/courses/CourseServiceImpl.java
Show resolved
Hide resolved
.../src/main/java/com/gitittogether/skillForge/server/course/service/courses/CourseService.java
Outdated
Show resolved
Hide resolved
…to getPublishedCourses
…rmation-chat-and-crawling
…Forge/server/course/service/courses/CourseService.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…Forge/server/course/service/courses/CourseServiceImpl.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
GravityDarkLab
left a comment
There was a problem hiding this comment.
Just what was missing - this PR was already discussed in person (peer-programming) - so ready to merge
Features
GenAI Course Generation
generateCourseFromGenAi()fetches user skills, sends prompt to GenAI service, returns a generatedCourseRequest.confirmCourseGeneration()persists the generated course and auto-enrolls the user.Prompt Completion via GenAI
generateResponseFromGenAi(prompt)sends prompt to GenAI service and returns a generated response.Web Crawling & Embedding
crawlWebForCourseContent(url)hits GenAI/embedendpoint and returnsEmbedResult.DTOs & Utilities
PromptResponseandEmbedResultDTOs indto.response.utils.Enhancements
CourseServiceinterface updated with:generateCourseFromGenAi(...)confirmCourseGeneration(...)generateResponseFromGenAi(...)crawlWebForCourseContent(...)Extended
advancedSearch(...)withisPublishedandisPublicfilters.Commit Summary
feat(course): add GenAI-based course generation and confirmationfeat(course): add support for GenAI prompt response generationfeat(course): implement web crawling and embedding via GenAIchore: cleanup imports and organize code structure