2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GPTsとQiita APIで最強の記事執筆アシスタントを作ろう!【Actions完全ガイド】

Posted at

Qiitaに記事を投稿する際、「構成を考えるのが大変」「どんなタグを付ければ読んでもらえるんだろう」「下書きを投稿するのが少し面倒」と感じたことはありませんか?

もし、そんな悩みを解決してくれる自分専用の執筆アシスタントがいたら素晴らしいですよね。

この記事では、ChatGPTのGPTsQiita APIを連携させ、記事の構成案作成から、最適なタグの推薦、さらには下書きの自動投稿までをこなす「Qiita記事執筆&自動投稿アシスタント」の作り方を、初心者にも分かりやすく解説します。

プログラミングの深い知識は不要です。この記事を読みながら進めれば、あなただけの強力な執筆パートナーが手に入ります。

完成イメージ

このGPTsができることは以下の通りです。

  1. 構成案の提案: 書きたい記事のテーマを伝えるだけで、読者の興味を引く構成案を提案します。
  2. 本文の執筆: 構成案に沿った本文を生成します。
  3. タグの推薦(API連携): 記事の内容に最適なQiitaの人気タグをAPI経由で推薦します。
  4. 下書き自動投稿(API連携): 完成した記事を、あなたのQiitaアカウントに下書きとして自動で投稿します。

準備するもの

  1. ChatGPT Plus、Team、またはEnterpriseアカウント: GPTsを作成するには有料プランへの加入が必要です。
  2. Qiitaアカウント: 当然ながら、記事を投稿するためのアカウントが必要です。
  3. Qiita 個人用アクセストークン: GPTsがあなたの代わりにQiitaへ投稿するために必要な「鍵」です。取得方法は後ほど詳しく説明します。

作成手順

それでは、さっそく作成していきましょう。

Step 1: GPTの基本設定を行う

まずは、GPTの器を作ります。

  1. ChatGPTにログインし、左のメニューから「GPT」をクリックします。

  2. 画面右上の「作成する」ボタンを押して、GPT Builderを起動します。

  3. 作成画面には作成する構成の2つのタブがありますが、今回はより詳細な設定ができる「構成」タブを使います。

  4. 以下の項目を入力します。

    • 名前: GPTの名前です。分かりやすく「Qiita記事執筆アシスタント」としましょう。
    • 説明: GPTの説明です。「Qiitaの記事作成を、構成案からタグ推薦、下書き投稿まで一貫してサポートします。」のように入力します。
    • 指示: GPTの振る舞いを定義する最も重要な部分です。まずは基本的な役割を設定しましょう。後ほどAPI連携のための指示を追記します。

    あなたの役割

    あなたは、Qiitaのユーザーが質の高い技術記事を効率的に執筆できるよう支援する、プロフェッショナルな編集アシスタントです。ユーザーとの対話を通じて、記事のアイデア出し、構成案の作成、本文の執筆、そして投稿までをサポートします。

    口調

    丁寧かつ、技術的な内容を正確に伝えるプロフェッショナルな口調で話してください。

    • 会話のきっかけ: 会話の開始ボタンです。ユーザーが使い始めやすいように、以下のような例を設定しておくと親切です。
      • 「GPTsの作り方」についての記事構成案を考えて
      • この記事におすすめのタグを教えて
    • 機能: ウェブ検索Canvas4o 画像生成、のチェックは外しておきましょう。今回はコード インタープリターとデータ分析のみで十分です。

これでGPTの基本的な設定は完了です。

Step 2: Qiita APIのアクセストークンを取得する

次に、GPTsがQiita APIを叩くための「個人用アクセストークン」を取得します。

  1. Qiitaにログインした状態で、設定 > アプリケーションのページにアクセスします。
  2. 「個人用アクセストークン」のセクションで、「新しくトークンを発行する」をクリックします。
  3. トークンの説明を「GPTsからの投稿用」など分かりやすく入力し、スコープで以下の2つにチェックを入れます。
    • read_qiita: タグ情報などを読み込むために必要です。
    • write_qiita: 記事を投稿するために必要です。
  4. 発行する」ボタンをクリックすると、アクセストークンが表示されます。このトークンは一度しか表示されないため、必ずコピーして安全な場所に保管してください。

Step 3: Actionsを設定する(API連携の核心部)

いよいよ、このGPTsの核心機能であるアクションを設定し、Qiita APIと連携させます。

  1. GPTsの構成画面に戻り、一番下の「新しいアクションを作成する」ボタンをクリックします。
  2. アクションの設定画面が開きます。ここに「認証(Authentication)」と「スキーマ(Schema)」の2つを設定していきます。

認証 (Authentication) の設定

まず、先ほど取得したアクセストークンを設定します。

  1. 認証の右側にあるボタンをクリックします。
  2. A認証タイプで「API キー」を選択します。
  3. API Keyの入力欄に、Step 2で取得したQiitaの個人用アクセストークンを貼り付けます。
  4. 認証タイプで「Bearer」を選択します。
  5. 保存する」をクリックして設定を保存します。

スキーマ (Schema) の設定

次に、GPTに「Qiita APIのどの機能(エンドポイント)を、どのように使うか」を教えるための設計図(OpenAPIスキーマ)を記述します。今回は「タグの取得」と「記事の投稿」の2つの機能を使います。

以下のYAMLコードをコピーして、スキーマのテキストエリアに貼り付けてください。

openapi: 3.1.0
info:
  title: Qiita API for GPTs
  description: Helps users with their Qiita article creation process.
  version: 1.0.0
servers:
  - url: https://qiita.com/api/v2
paths:
  /tags:
    get:
      operationId: getPopularTags
      summary: Get a list of popular tags
      description: Fetches a list of tags sorted by the number of items associated with them.
      parameters:
        - in: query
          name: page
          required: false
          schema:
            type: integer
            default: 1
          description: Page number.
        - in: query
          name: per_page
          required: false
          schema:
            type: integer
            default: 100
          description: Number of items per page.
        - in: query
          name: sort
          required: false
          schema:
            type: string
            enum:
              - count
              - name
            default: count
          description: Sort key.
      responses:
        '200':
          description: A list of tags.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    followers_count:
                      type: integer
                    items_count:
                      type: integer
  /items:
    post:
      operationId: postDraftToQiita
      summary: Create a new item as a draft
      description: Creates a new item on Qiita. It will be posted as a private draft.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: The title of the item.
                body:
                  type: string
                  description: The body of the item in Markdown format.
                private:
                  type: boolean
                  description: A flag to post as a private item. Should always be true for drafts.
                tags:
                  type: array
                  description: A list of tags.
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                      versions:
                        type: array
                        items:
                          type: string
      responses:
        '201':
          description: Item created successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    description: The URL of the created item.

このスキーマが何をしているかを簡単に説明します。

  • GET /tags: getPopularTagsという名前で、Qiitaの人気タグ一覧を取得する機能を定義しています。
  • POST /items: postDraftToQiitaという名前で、Qiitaに新しい記事を投稿する機能を定義しています [5]。requestBodyで、投稿に必要な「タイトル(title)」「本文(body)」「非公開設定(private)」「タグ(tags)」を指定しています。

スキーマを貼り付けると、Available actionsgetPopularTagspostDraftToQiitaが表示されるはずです。これでAPI連携の準備は完了です。

Step 4: 指示を更新してアクションの利用を指示する

GPTに、いつ、どのようにアクションを使えばよいかを教えます。Step 1で設定した指示に、以下の内容を追記してください。

アクションの利用ルール

あなたは以下の2つの特別な能力(Actions)を持っています。

  1. getPopularTags: Qiitaで人気のタグを検索する能力です。
  2. postDraftToQiita: Qiitaに記事を下書きとして投稿する能力です。

タグ推薦の実行プロセス

  1. ユーザーから「タグを推薦して」「おすすめのタグは?」といった依頼があった場合、まず記事の本文を理解します。
  2. 次に、getPopularTagsアクションを実行して、人気のタグリストを取得します。
  3. 取得したリストの中から、記事の内容と関連性が高いものを5つ選び、ユーザーに提案してください。

記事投稿の実行プロセス

  1. ユーザーから「下書きを投稿して」「投稿をお願い」といった依頼があった場合、以下の手順に従ってください。
  2. まず、投稿に必要な情報(タイトル、本文、タグ)が揃っているかを確認します。不足している場合は、ユーザーに尋ねてください。
  3. 全ての情報が揃ったら、「以下の内容でQiitaに下書き投稿します。よろしいですか?」と最終確認をユーザーに取ってください。その際、タイトルとタグの一覧を提示してください。
  4. ユーザーが「はい」「OK」などで承認した場合にのみ、postDraftToQiitaアクションを実行してください。privateパラメータは必ずtrueに設定してください。
  5. 投稿が成功したら、返ってきた記事のURLをユーザーに伝えて完了を報告してください。

この指示により、GPTはユーザーとの対話の流れを理解し、適切なタイミングでAPIを呼び出すようになります。

Step 5: テストとデバッグ

いよいよ最終段階です。画面右側のプレビューペインで、作成したGPTsが意図通りに動くかテストしましょう。

【テストシナリオ例】

  1. あなた:

    「GPTsとQiita APIを連携する方法」というテーマで記事の構成案を考えて。

  2. Qiita記事執筆アシスタント:

    (構成案を提案してくる)

  3. あなた:

    いいね!この構成案で記事を書いてください。

  4. Qiita記事執筆アシスタント:

    (記事の本文を生成してくる)

  5. あなた:

    この記事におすすめのタグを教えて。

  6. Qiita記事執筆アシスタント:

    (ここでgetPopularTagsアクションが実行されるはずです。許可を求めるポップアップが表示されたら「Allow」をクリックします)
    承知いたしました。記事の内容を分析し、最適なタグを推薦します。
    ...

    • GPTs
    • ChatGPT
    • Qiita
    • API
    • API連携

    こちらの5つはいかがでしょうか?

  7. あなた:

    素晴らしい!では、この内容でQiitaに下書き投稿をお願いします。

  8. Qiita記事執筆アシスタント:

    承知いたしました。以下の内容でQiitaに下書き投稿します。よろしいですか?

    タイトル: GPTsとQiita APIで最強の記事執筆アシスタントを作ろう!【Actions完全ガイド】
    タグ: GPTs, ChatGPT, Qiita, API, API連携

  9. あなた:

    はい、お願いします。

  10. Qiita記事執筆アシスタント:

    (ここでpostDraftToQiitaアクションが実行されます。再度許可を求められたら「Allow」をクリックします)
    投稿が完了しました。こちらの下書きURLから内容をご確認ください。
    https://qiita.com/YOUR_USER_ID/items/xxxxxxxxxxxxxxxxxxxx/edit

もしうまく動かない場合は、プレビューペインでアクションが実行された部分を開くと、APIへのリクエスト内容やレスポンスを確認できます。スキーマの記述ミスや認証トークンの間違いがないか確認してみましょう。

最後に、画面右上の「保存する」をクリックし、公開範囲(自分のみ、リンクを知っている人、全員)を選んで保存すれば、あなただけの「Qiita記事執筆アシスタント」の完成です!

まとめ

今回は、GPTsのActions機能を使ってQiita APIと連携し、記事作成のプロセスを大幅に効率化するカスタムGPTの作り方を紹介しました。

  • 指示でGPTの役割と振る舞いを定義する
  • アクションで外部APIとの連携を設定する
    • 認証で認証情報を安全に管理する
    • スキーマでAPIの仕様をGPTに教える

この基本を押さえれば、Qiita APIの他の機能(例: 既存記事の更新、コメントの取得など)を組み込んで、さらに高機能なアシスタントに育てることも可能です。

ぜひ、あなたも自分だけの最強の執筆アシスタントを育てて、快適なQiitaライフを送ってください!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?