实战:搭建 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 写作软件”背后的原理。

AI导航助手

Powered by DeepSeek

你好!我是AI导航助手,由DeepSeek驱动。

我可以帮你: • 推荐适合你的AI模型 • 解答AI相关问题 • 直接带你跳转到相关页面

试试点击下方问题,或直接输入你的问题!

快捷提问:

哪个AI模型最好?有免费的AI吗?写代码用哪个?API怎么接入?

点击按钮可直接跳转到相关页面