← Back to Gene Catalog

wechat-article-writer

Hybrid content.writing

Analyze the writing style of reference WeChat articles and generate new articles matching that style on a given topic. Supports style extraction (tone, structure, rhetoric), outline generation, and full article writing via LLM.

README

No documentation yet.

Gene authors can add a README when publishing.

Phenotype

Input

PropertyType Req Description
topic string The topic or subject for the new article to be generated
apiKeys object
sections integer Number of sections/paragraphs. If omitted, auto-determined from reference style.
wordCount integer = 2000 Target word count for the generated article
outputFormat markdown | plaintext | html = markdown Output format of the article
requirements string Additional requirements: e.g. 'add more data', 'keep it casual', 'include a call-to-action'
referenceArticles array One or more reference articles for style analysis. Paste the full text of each article.

Output

PropertyType Req Description
title string Generated article title
article string The full generated article
outline array Article outline with section titles and key points
summary string Brief summary of the generated article
subtitle string Optional subtitle
wordCount integer
styleProfile object Extracted style characteristics from reference articles
Raw JSON Schema

inputSchema

{
  "type": "object",
  "required": [
    "referenceArticles",
    "topic",
    "apiKeys"
  ],
  "properties": {
    "topic": {
      "type": "string",
      "maxLength": 500,
      "minLength": 2,
      "description": "The topic or subject for the new article to be generated"
    },
    "apiKeys": {
      "type": "object",
      "required": [
        "llm"
      ],
      "properties": {
        "llm": {
          "type": "object",
          "required": [
            "apiKey"
          ],
          "properties": {
            "model": {
              "type": "string",
              "default": "deepseek-chat"
            },
            "apiKey": {
              "type": "string",
              "description": "LLM API key"
            },
            "baseUrl": {
              "type": "string",
              "description": "Custom API base URL"
            },
            "provider": {
              "enum": [
                "deepseek",
                "openai",
                "anthropic"
              ],
              "type": "string",
              "default": "deepseek"
            }
          },
          "description": "LLM provider for style analysis and article generation (default: DeepSeek)"
        }
      }
    },
    "sections": {
      "type": "integer",
      "maximum": 20,
      "minimum": 1,
      "description": "Number of sections/paragraphs. If omitted, auto-determined from reference style."
    },
    "wordCount": {
      "type": "integer",
      "default": 2000,
      "maximum": 10000,
      "minimum": 300,
      "description": "Target word count for the generated article"
    },
    "outputFormat": {
      "enum": [
        "markdown",
        "plaintext",
        "html"
      ],
      "type": "string",
      "default": "markdown",
      "description": "Output format of the article"
    },
    "requirements": {
      "type": "string",
      "maxLength": 1000,
      "description": "Additional requirements: e.g. 'add more data', 'keep it casual', 'include a call-to-action'"
    },
    "referenceArticles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 10,
      "minItems": 1,
      "description": "One or more reference articles for style analysis. Paste the full text of each article."
    }
  }
}

outputSchema

{
  "type": "object",
  "required": [
    "title",
    "article",
    "styleProfile",
    "outline",
    "wordCount"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "Generated article title"
    },
    "article": {
      "type": "string",
      "description": "The full generated article"
    },
    "outline": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "section": {
            "type": "string"
          },
          "keyPoints": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "description": "Article outline with section titles and key points"
    },
    "summary": {
      "type": "string",
      "description": "Brief summary of the generated article"
    },
    "subtitle": {
      "type": "string",
      "description": "Optional subtitle"
    },
    "wordCount": {
      "type": "integer"
    },
    "styleProfile": {
      "type": "object",
      "properties": {
        "tone": {
          "type": "string",
          "description": "e.g. 严肃专业 / 轻松幽默 / 温暖治愈"
        },
        "summary": {
          "type": "string",
          "description": "One-paragraph style summary"
        },
        "rhetoric": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Common rhetorical devices used"
        },
        "structure": {
          "type": "string",
          "description": "e.g. 总分总 / 递进式 / 并列式"
        },
        "vocabulary": {
          "type": "string",
          "description": "Vocabulary level and characteristics"
        },
        "closingStyle": {
          "type": "string",
          "description": "How articles typically close"
        },
        "openingStyle": {
          "type": "string",
          "description": "How articles typically open"
        },
        "sentenceStyle": {
          "type": "string",
          "description": "Sentence length and rhythm pattern"
        }
      },
      "description": "Extracted style characteristics from reference articles"
    }
  }
}

Arena History

Date Fitness Safety Calls
Mar 20 0.5000 1.00 1