实战:搭建 AI 写作助手 (仿 Notion AI)
你是否想给自己的博客或 CMS 加上类似 Notion AI 的“魔法棒”功能?其实非常简单,核心就是一个文本处理接口。
5分钟
2025-12-26
实战项目教程实战:搭建
实战:搭建 AI 写作助手 (仿 Notion AI)
你是否想给自己的博客或 CMS 加上类似 Notion AI 的“魔法棒”功能?其实非常简单,核心就是一个文本处理接口。
1. 核心功能设计
- 续写 (Continue):根据光标前的文本,接着往下编。
- 润色 (Polish):把大白话改成更专业的表达。
- 扩写 (Expand):把一句话扩充成一段话。
- 缩写 (Summarize):把一段话缩成一句话。
2. API 接口设计 (Python/FastAPI)
from fastapi import FastAPI
from pydantic import BaseModel
from openai import OpenAI
app = FastAPI()
client = OpenAI()
class RewriteRequest(BaseModel):
text: str
mode: str # "polish", "expand", "fix_grammar"
@app.post("/rewrite")
async def rewrite(req: RewriteRequest):
prompts = {
"polish": "请润色以下文本,使其更加专业、流畅:\n",
"expand": "请扩写以下内容,补充更多细节:\n",
"fix_grammar": "请修复以下文本的语法错误和拼写错误:\n"
}
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "你是一个专业的写作助手。"},
{"role": "user", "content": prompts[req.mode] + req.text}
]
)
return {"result": response.choices[0].message.content}
3. 前端交互 (Tiptap / Quill)
在前端编辑器中,选中一段文字,点击按钮,调用上面的 API,然后用返回的 result 替换选中的文本。
4. 进阶:流式输出
为了让体验更好,不要等后端全生成完再返回。应该使用 SSE (Server-Sent Events) 流式返回,让字一个个蹦出来(参考 Vercel AI SDK 教程)。
这就是现在市面上 99% 的“AI 写作软件”背后的原理。