Skip to content

Writing API

Base path: /api/v1/projects/{project_id}/writing

Endpoints

MethodEndpointDescription
POST/projects/{id}/writing/assistGeneral writing assistance
POST/projects/{id}/writing/summarizeSummarize papers
POST/projects/{id}/writing/citationsGenerate citations
POST/projects/{id}/writing/review-outlineReview outline
POST/projects/{id}/writing/gap-analysisGap analysis

Assist (General)

POST /projects/{id}/writing/assist — AI-powered writing assistance for summarize, cite, outline, or gap analysis.

Request body:

json
{
  "task": "summarize",
  "text": "",
  "paper_ids": [1, 2],
  "topic": "Literature Review",
  "style": "gb_t_7714",
  "language": "en"
}
  • tasksummarize, cite, review_outline, or gap_analysis
  • paper_ids — Paper IDs (for summarize/cite)
  • topic — Topic for outline/gap analysis
  • style — Citation style (for cite task)
  • language — Output language (default: en)

Response: { content, citations, suggestions }

Summarize Request

json
{
  "paper_ids": [1, 2, 3]
}

Citations Request

json
{
  "paper_ids": [1, 2],
  "style": "gb_t_7714"
}

Citation styles: gb_t_7714, apa, mla


Literature Review Draft (Streaming)

POST /api/v1/projects/{project_id}/writing/review-draft/stream

Generate a structured literature review draft via SSE (Server-Sent Events).

Request Body:

FieldTypeDefaultDescription
topicstring""Review topic (empty for auto-detection)
stylestring"narrative"Review style: narrative, systematic, thematic
citation_formatstring"numbered"Citation format: numbered, apa, gb_t_7714
languagestring"zh"Output language: zh, en

SSE Events:

EventDataDescription
progressProgress update
outlineGenerated outline sections
section-startSection generation begins
text-deltaText chunk for current section
section-endSection generation complete
citation-map{citations: {[num]: {paper_id, title, number}}}Reference mapping
doneGeneration complete
errorError occurred

Example:

bash
curl -X POST http://localhost:8000/api/v1/projects/1/writing/review-draft/stream \
  -H "Content-Type: application/json" \
  -d '{"topic": "deep learning in NLP", "style": "narrative"}' \
  --no-buffer

Released under the MIT License.