feat(feedback): Add content improvement feedback system

Frontend (frontend/app.js):

- Add textarea for improvement feedback

- Add submit button with loading state

- Handle API response and display improved content

Backend (backend/copywriter.py):

- Add improve_copy() method using Cohere API

- Integrate retry mechanism for API calls

Backend (backend/main.py):

- Add /improve-content POST endpoint

- Implement error handling and return improved content with metadata

Testing:

- Verified feedback submission flow

- Confirmed improved content generation

- Tested error scenarios and loading states
This commit is contained in:
Michael Ikehi
2025-04-18 04:39:06 +01:00
parent 6fd7213076
commit af8f99dea3
13 changed files with 550 additions and 167 deletions
+9 -18
View File
@@ -56,30 +56,21 @@
<label for="content-type">Content Type</label>
<select id="content-type">
<option value="">Select Type</option>
<option value="email_campaign">Email Campaign</option>
<option value="social_media">Social Media</option>
<option value="blog_post">Blog Post</option>
<option value="website_copy">Website Copy</option>
<option value="email">Email Campaign</option>
<option value="social_media">Social Media Post</option>
<option value="blog_post">Blog Post</option>
<option value="sales_copy">Sales Copy</option>
<option value="ad_copy">Ad Copy</option>
<option value="funnel_page">Funnel Page</option>
<option value="video_script">Video Script</option>
<option value="case_study">Case Study</option>
<option value="product_description">Product Description</option>
<option value="landing_page">Landing Page</option>
<option value="press_release">Press Release</option>
<option value="newsletter">Newsletter</option>
</select>
</div>
<div class="form-group">
<label for="tone">Tone</label>
<select id="tone">
<option value="">Select Tone</option>
<option value="professional">Professional</option>
<option value="friendly">Friendly</option>
<option value="excited">Excited</option>
<option value="authoritative">Authoritative</option>
<option value="casual">Casual</option>
<option value="inspirational">Inspirational</option>
<option value="empathetic">Empathetic</option>
<option value="humorous">Humorous</option>
</select>
</div>
<div class="form-group">
<label for="length">Length</label>
<select id="length">