8
n8n 한국어amn8n.com

OpenAI를 사용하여 어떤 Twitter 사용자 스타일을 모방하여 AI 트윗 생성

중급

이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 7개의 노드를 포함합니다.주로 Set, OpenAi, Twitter, Function, ManualTrigger 등의 노드를 사용하며. OpenAI를 사용하여 어떤 Twitter 사용자 스타일을 모방하여 AI 트윗 생성

사전 요구사항
  • OpenAI API Key
  • Twitter API 인증 정보
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "nodes": [
    {
      "name": "수동 트리거",
      "type": "n8n-nodes-base.manualTrigger",
      "notes": {
        "text": "### 1. Start Workflow\n\nThis `Manual Trigger` node is used for easy testing of your style mimicry. \n\n**To trigger the workflow manually:** Click the 'Execute Workflow' button in the top right.\n\n**For automation:** You could connect this to a `Webhook` (if you build a simple form to input handles/content) or integrate it with a content calendar system.",
        "position": "right"
      },
      "position": [
        240,
        300
      ],
      "parameters": {},
      "typeVersion": 1,
      "id": "--0"
    },
    {
      "name": "대상 및 내용 설정",
      "type": "n8n-nodes-base.set",
      "notes": {
        "text": "### 2. Define Target Handle & New Content\n\nThis `Set` node defines who's style you want to copy and what topic you want to tweet about.\n\n**Setup:**\n1.  **`targetTwitterHandle`:** **IMPORTANT:** Change `@n8n_io` to the Twitter handle (username, e.g., `@elonmusk`, `@TheOnion`) of the user whose style you want to mimic.\n2.  **`newTweetContent`:** Describe clearly what you want the AI to write about in the target style.\n\n**For automation:** These values could come from a previous node (e.g., from a spreadsheet, a form input, or an RSS feed item).",
        "position": "right"
      },
      "position": [
        460,
        300
      ],
      "parameters": {
        "values": [
          {
            "name": "targetTwitterHandle",
            "value": "@n8n_io"
          },
          {
            "name": "newTweetContent",
            "value": "Describe the new features coming in n8n version 1.35 focused on advanced AI integrations and new credential types. Make it exciting!"
          }
        ],
        "options": {}
      },
      "typeVersion": 2,
      "id": "--1"
    },
    {
      "name": "사용자 트윗 가져오기",
      "type": "n8n-nodes-base.twitter",
      "notes": {
        "text": "### 3. Get User's Recent Tweets\n\nThis `Twitter` node fetches recent tweets from the specified `targetTwitterHandle`. These tweets will serve as examples for the AI to learn the style.\n\n**Setup:**\n1.  **Twitter Credential:** Click 'Credentials' and select 'New Credential'. Choose 'Twitter API'. You'll need to create a Twitter Developer App, get API keys/tokens, and configure them in n8n. Ensure your app has **Read** permissions for user timelines.\n2.  **User ID:** This field automatically pulls the `targetTwitterHandle` from the previous node.\n3.  **Max Results:** Adjust the number of tweets to fetch. More tweets provide more context for the AI, but also consume more tokens in the next step.\n\n**Test this node by executing it and checking the output to ensure tweets are fetched correctly.**",
        "position": "right"
      },
      "position": [
        700,
        300
      ],
      "parameters": {
        "userId": "={{ $json.targetTwitterHandle }}",
        "options": {
          "exclude": [
            "retweets"
          ],
          "maxResults": 30
        },
        "resource": "tweet",
        "operation": "getUserTimeline"
      },
      "credentials": {
        "twitterApi": {
          "id": "YOUR_TWITTER_CREDENTIAL_ID",
          "resolve": false
        }
      },
      "typeVersion": 1,
      "id": "--2"
    },
    {
      "name": "스타일 예시 준비",
      "type": "n8n-nodes-base.function",
      "notes": {
        "text": "### 4. Prepare Style Examples for AI\n\nThis `Function` node extracts the text content from the fetched tweets and formats them into a clean, list-like string. This string will be embedded directly into the AI prompt.\n\n**Output:** It creates a `tweetExamples` field with formatted tweets and passes along `newTweetContent` for the next step.\n\n**No configuration needed here**; it processes the tweet data.",
        "position": "right"
      },
      "position": [
        940,
        300
      ],
      "parameters": {
        "options": {},
        "function": "let tweetExamples = \"\";\n\nif (items.length === 0) {\n  tweetExamples = \"No example tweets found. Cannot mimic style.\";\n} else {\n  tweetExamples = items.map(item => `- \"${item.json.text}\"`).join('\\n');\n}\n\nreturn [{ json: { tweetExamples: tweetExamples, newTweetContent: items[0].json.newTweetContent } }];"
      },
      "typeVersion": 1,
      "id": "--3"
    },
    {
      "name": "AI: 스타일 모방 및 트윗 생성",
      "type": "n8n-nodes-base.openAi",
      "notes": {
        "text": "### 5. AI: Mimic Style & Generate Tweet (The Magic!)\n\nThis `OpenAI` node is where the core style mimicry happens. It receives the example tweets and your new content, then generates a tweet in the learned style.\n\n**Setup:**\n1.  **OpenAI Credential:** Select your existing OpenAI API Key credential.\n2.  **Model:** Choose `gpt-3.5-turbo` for general use, or `gpt-4o` (or `gpt-4`) for superior style replication at a higher cost.\n3.  **Prompts:** The 'System' prompt provides the example tweets, and the 'User' prompt gives the AI the new content to rewrite.\n\n**Output:** The AI-generated tweet will be in `{{ $node[\"AI: Mimic Style & Generate Tweet\"].json.choices[0].message.content }}`.",
        "position": "right"
      },
      "position": [
        1180,
        300
      ],
      "parameters": {
        "model": "gpt-3.5-turbo",
        "options": {},
        "messages": [
          {
            "role": "system",
            "content": "You are a highly skilled AI specializing in replicating specific writing styles. Your task is to analyze the provided example tweets and then rewrite new content in that exact style. Pay attention to tone, vocabulary, phrasing, brevity, emoji usage, and any unique quirks. The output should be a standalone tweet.\n\nExample Tweets (from target user):\n{{ $json.tweetExamples }}"
          },
          {
            "role": "user",
            "content": "Rewrite the following content as a tweet, mimicking the style of the examples:\n\nOriginal Content: {{ $json.newTweetContent }}"
          }
        ]
      },
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "resolve": false
        }
      },
      "typeVersion": 1,
      "id": "AI--4"
    },
    {
      "name": "생성된 트윗 통합",
      "type": "n8n-nodes-base.set",
      "notes": {
        "text": "### 6. Consolidate Generated Tweet\n\nThis `Set` node simply consolidates the AI-generated tweet into a clearly named field (`generatedTweet`) for easy access in subsequent nodes (e.g., for publishing or review).\n\n**No configuration needed here**; it just maps the data from the previous AI node.",
        "position": "right"
      },
      "position": [
        1420,
        300
      ],
      "parameters": {
        "values": [
          {
            "name": "generatedTweet",
            "value": "={{ $node[\"AI: Mimic Style & Generate Tweet\"].json.choices[0].message.content }}"
          }
        ],
        "options": {}
      },
      "typeVersion": 2,
      "id": "--5"
    },
    {
      "name": "생성된 트윗 게시 (선택사항)",
      "type": "n8n-nodes-base.twitter",
      "notes": {
        "text": "### 7. Publish Generated Tweet (Optional)\n\nThis `Twitter` node allows you to directly publish the AI-generated tweet to your Twitter account.\n\n**Setup:**\n1.  **Twitter Credential:** Select the same Twitter API credential you used for 'Get User's Tweets'. Ensure your app has **Write** permissions (Tweet, Retweet, etc.).\n2.  **Text:** This field pulls the `generatedTweet` from the previous node.\n\n**IMPORTANT:**\n* **Review before publishing!** The AI might not always get the style perfectly or generate content you want to share. It's highly recommended to review the output first.\n* **To disable auto-publishing:** Simply disconnect this node or set it to 'Inactive' if you only want to review the generated tweet without sending it directly.",
        "position": "right"
      },
      "position": [
        1660,
        300
      ],
      "parameters": {
        "text": "={{ $json.generatedTweet }}",
        "options": {},
        "resource": "tweet",
        "operation": "create"
      },
      "credentials": {
        "twitterApi": {
          "id": "YOUR_TWITTER_CREDENTIAL_ID",
          "resolve": false
        }
      },
      "typeVersion": 1,
      "id": "--6"
    }
  ],
  "pinData": {},
  "version": 1,
  "connections": {
    "--0": {
      "main": [
        [
          {
            "node": "--1",
            "type": "main"
          }
        ]
      ]
    },
    "--2": {
      "main": [
        [
          {
            "node": "--3",
            "type": "main"
          }
        ]
      ]
    },
    "--1": {
      "main": [
        [
          {
            "node": "--2",
            "type": "main"
          }
        ]
      ]
    },
    "--3": {
      "main": [
        [
          {
            "node": "AI--4",
            "type": "main"
          }
        ]
      ]
    },
    "--5": {
      "main": [
        [
          {
            "node": "--6",
            "type": "main"
          }
        ]
      ]
    },
    "AI--4": {
      "main": [
        [
          {
            "node": "--5",
            "type": "main"
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

중급 - 콘텐츠 제작, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
중급
노드 수7
카테고리2
노드 유형5
난이도 설명

일정 경험을 가진 사용자를 위한 6-15개 노드의 중간 복잡도 워크플로우

저자
Piotr Sobolewski

Piotr Sobolewski

@piotrsobolewski

AI PhD with 7 years experience as a game dev CEO, currently teaching, helping others and building something new.

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34