|
from fastapi import FastAPI |
|
from pydantic import BaseModel |
|
from transformers import T5ForConditionalGeneration, T5Tokenizer |
|
|
|
|
|
app = FastAPI() |
|
|
|
|
|
model_name = "google-t5/t5-small" |
|
model = T5ForConditionalGeneration.from_pretrained(model_name) |
|
tokenizer = T5Tokenizer.from_pretrained(model_name) |
|
|
|
|
|
class ContentRequest(BaseModel): |
|
content: str |
|
|
|
|
|
def generate_humanized_content(content: str) -> str: |
|
prompt = f""" |
|
You are a skilled writer tasked with rewriting AI-generated text to make it sound more human, engaging, and relatable. Please follow these instructions: |
|
|
|
**Humanizing Instructions:** |
|
To generate human-written text or convert AI-written text into humanized content, here are some instructions you can give to a Large Language Model (LLM): |
|
|
|
1. Write in a conversational tone: Imagine you're having a discussion with a friend. Use everyday language and avoid jargon or overly formal tone. |
|
2. Add personal touches: Include personal anecdotes, emotions, or experiences to make the text more relatable and authentic. |
|
3. Use contractions and colloquialisms: Incorporate contractions (e.g., "don't" instead of "do not") and colloquial expressions (e.g., "break a leg") to give the text a more human feel. |
|
4. Vary sentence structure: Mix up short and long sentences to create a natural flow, just like human writing. |
|
5. Show, don't tell: Instead of stating facts, use descriptive language to paint a picture in the reader's mind. |
|
|
|
**For converting AI-written text into humanized content**: |
|
1. Rewrite in a more conversational tone: Take the AI-written text and rephrase it in a more relaxed, everyday language. |
|
2. Add emotional depth: Inject emotions, empathy, or personal experiences to make the text more relatable and engaging. |
|
3. Use more descriptive language: Replace generic terms with vivid, descriptive words to add flavor and personality to the text. |
|
4. Break up long sentences: Split lengthy sentences into shorter, more manageable ones to improve readability. |
|
5. Add idioms and colloquialisms: Incorporate common idioms and colloquial expressions to give the text a more human-like quality. |
|
6. Read it aloud: Read the text aloud to ensure it sounds natural and conversational. |
|
|
|
**Additional Tips**: |
|
- Use active voice: It's more engaging and easier to read than passive voice. |
|
- Show vulnerability: Share imperfections, doubts, or fears to make the text more relatable and authentic. |
|
- Use humor: Humor can help humanize the text and make it more enjoyable to read. |
|
- Edit and refine: Review the text multiple times to refine the language, tone, and flow. |
|
|
|
Now, please humanize the following text: |
|
{content} |
|
""" |
|
inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncation=True) |
|
output = model.generate(inputs["input_ids"], max_length=512, num_beams=4, early_stopping=True) |
|
return tokenizer.decode(output[0], skip_special_tokens=True) |
|
|
|
|
|
@app.post("/humanize/") |
|
async def humanize_content(request: ContentRequest): |
|
humanized_content = generate_humanized_content(request.content) |
|
return {"humanized_content": humanized_content} |
|
|
|
|