見出し画像

エンジニアのChatGPT活用術!

私たちは現役のエンジニア2人で、「カケアイ」というサービスを開発しています。2人という限られたリソースを有効活用するために、ChatGPTを活用してプログラミングや文書作成を行っております。このおかげで、通常よりも2倍以上のスピードで開発を進めることができています。

ChatGPT を何に使うの?

みなさんが仕事をしていると、同じことを何度もやっていることがあると思います。例えば、メールの挨拶を書くとき、社内ドキュメントを書くときの決まり文句、など同じことを書いていると思います。

プログラミングでも同様で、エンジニアは同じプログラムを何度も書くことがあります。例えば、ホームページを作成するときの冗長なコードや、データベース接続のためのコード、などです。

これらの作業は、大抵の場合、頭を使うことがなく面倒なものです。時間と手間がかかるだけで、生産性が向上することはありません。そこで私たちは、こうした頭を使わない作業をAIに任せるべきだと考えています。

AIによる自動化を活用することで、エンジニアはクリエイティブな仕事に専念することができます。私たちのChatGPTも、プログラミングにおけるボイラーテンプレートの作成や、文章の自動生成に役立っています。こうしたテクノロジーを活用することで、より生産的かつクリエイティブな仕事ができるようになると考えられます。

カケアイの場合

具体的に、カケアイの開発でどのように使っているかを解説します。

データベース接続のためのコード

先程の例にもあったように、データベースに接続するためのコードを書くために使用しました。

以下のデータベースのテーブル定義があったときに

CREATE TABLE users (
    id INT AUTO_INCREMENT NOT NULL,
    name VARCHAR(255),
    age INT,
    PRIMARY KEY (id)
);

ChatGPTに「このテーブル定義からSQLAlchemyのプログラムを書いて」と質問すると、以下のようなプログラムを出力してくれます。

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

engine = create_engine('postgresql://username:password@host:port/database')
Base.metadata.create_all(engine)

ドキュメント作成

また、プログラムの仕様書の作成にも ChatGPT を使用しています。
例えば、OpenAPI(Swagger)の仕様書を書くときには、ChatGPT にドキュメントの作成をお願いしました
これによって、私たちは10以上のドキュメントを自動生成し、何時間もの時間を節約することができました。

たとえば、ChatGPT に「ユーザーを作成する API の OpenAPI 仕様書を書いてください。POST メソッドのみ出力してください。」と指示すると、次のような仕様書を自動生成してくれます。

この仕様書を、openapi-generatoraspida を使用してプログラムとして出力すれば、HTTP クライアントが完成します。

openapi: 3.0.0
info:
  version: 1.0.0
  title: User Creation API

paths:
  /users:
    post:
      summary: ユーザーを作成するAPI
      description: ユーザーを作成するために使用するAPI。リクエストボディには、必須のユーザー情報を含める必要があります。
      requestBody:
        description: ユーザー情報
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: ユーザー名
                  example: johndoe
                password:
                  type: string
                  format: password
                  description: パスワード
                  example: password123
                email:
                  type: string
                  format: email
                  description: メールアドレス
                  example: johndoe@example.com
                full_name:
                  type: string
                  description: フルネーム
                  example: John Doe
              required:
                - username
                - password
                - email
                - full_name
      responses:
        '201':
          description: ユーザーが作成されました
        '400':
          description: リクエストが無効です
        '500':
          description: サーバー内部エラーが発生しました

エンジニアとAI

エンジニアがクリエイティブなタスクに専念することができるようにするために、AIを活用することが重要だと考えています。
先程紹介した使用例は、ほんの一部です。AIを使って開発を行うことで、私たちは何時間もの時間を節約することができました。

しかし、AIには完璧ではないという欠点があります。時にはAIが嘘をつくことがあります
そのため、私たちはAIが生成したものを確認し、その信憑性を確認する必要があります。AIの出力物に対して、正確性を検証することが重要です。

最終的な判断は人間が行う必要があり、AIを支援ツールとして活用することが求められます。

最後に

記事を読んでいただき、ありがとうございました。
最後になりますが、私たちは「カケアイ」というアイデアを生み出すためのサービスを開発しています。未完成ですが、進捗確認できるようにサービス公開済みです!

建築中の家を見守る気持ちでサポートお願いします。
また、コメントも是非よろしくお願いします。
私たちと一緒にサービスを盛り上げていきましょう!

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?