こんにちは。GMOインターネットグループ株式会社の中村です。
今回は、最近ベータ版が提供された【AI Programmer】を使って、
出力された内容を極力変更せずにプログラミングをしていきます。
目次
そもそも【AI Programmer】とは?
簡単に言うと、
日本語でやりたいことを入力すると、任意のプログラミング言語で出力してくれるサービスです。
現在、プロトタイプとして無償公開されています。
https://aiprogrammer.hashlab.jp/
どんなプログラムを書いてもらおうか…
簡単なメッセージをLine Notifyで通知するのを目標にしてみます。
前回のSelenium記事などでも使うことが多かったので、今回はPythonを対象にしています。
とりあえず触ってみる
簡単に日本語でやってほしいことを書いていきましょう。
下記を入力してコードを生成ボタンをクリック!
LineNotifyで通知する

自動で出力されていますね!
では実際にこれのtoken部分を自分のものに置き換えて実行できるか試してみましょう。
LineNotifyで通知する
import requests
token = 'Your Token'
msg = 'Hello, LineNotify!'
line_notify = requests.post('https://notify-api.line.me/api/notify',
headers={'Authorization': 'Bearer ' + token},
data={'message': msg})実行してみる
token部分だけ書き換えて実行してみました。
正常に実行できていますね。ではさらに別の要素を足してみましょう。

他サイトから情報を取ってきてもらう
では次に、今日の福岡の天気を取得して出力してもらいましょう。
天気を出力する

お願いの仕方がよくありませんでした…
天気情報をどこかのAPIで取得してもらうのが理想でしたが、これだと言葉が足りないようです…
もう少し試行錯誤してみます。
天気を出力する
print("天気を出力する")ダメそう…
下記のような文言を色々試した見たのですが、結果が出力されず難しそうなので断念します…
明日の天気をAPIで取得して出力する 
福岡の天気をAPIで取得して出力する 
福岡の明日の天気をAPIで取得して出力する 
明日の天気を取得して出力する 
じゃあAPIとか使わないような処理だと?
外部から値を取得するのは出力されないパターンが多い気がするので
ローカルでできる処理に切り替えてみます
csvを読み込んで最大値、最小値、平均値、中央値を出力する

こちらは動きそうなプログラムが出力されました。
実際に動かしてみましょう。
csvを読み込んで1列目の最大値、最小値、平均値、中央値を出力する。
import csv
with open("sample.csv") as f:
    reader = csv.reader(f)
    header = next(reader)
    col1 = [row[0] for row in reader]
print("最大値:", max(col1))
print("最小値:", min(col1))
print("平均値:", sum(col1)/len(col1))
print("中央値:", sorted(col1)[len(col1)//2])下記のテスト用のcsvを同じディレクトリに配置しておきます。
title
0
1
2
3
4
5
6
7
8
9
10出力がおかしい…?
早速実行してみましたがエラーになっています。
csvの値を文字列で読み込んでいるのが駄目なようです。

命令記載時に“数値”でと具体的に付け加えればエラーが無くなりそうな気配がします。
もう一度、下記でコードを生成してもらいます。
sample.csvを数値で読み込んで、1列目の最大値、最小値、平均値、中央値を出力する。

生成内容が変わりました。
こちらで実行してみましょう。
sample.csvを数値で読み込んで、1列目の最大値、最小値、平均値、中央値を出力する。
import pandas as pd
df = pd.read_csv('sample.csv')
print(df.loc[:,0].max())
print(df.loc[:,0].min())
print(df.loc[:,0].mean())
print(df.loc[:,0].median())やっぱりエラーになる
エラーが出てしまいました。
どうやら使用している【df.loc】が本来は引数に列番号ではなく、ラベル名を指定するのが原因のようです。
列番号を入力するのは【df.iloc】という別の関数があるので、こちらで実行してみましょう。

実行するスクリプトを下記に修正。
sample.csvを数値で読み込んで、1列目の最大値、最小値、平均値、中央値を出力する。
import pandas as pd
df = pd.read_csv('sample.csv')
print(df.iloc[:,0].max())
print(df.iloc[:,0].min())
print(df.iloc[:,0].mean())
print(df.iloc[:,0].median())ようやく実行成功
実行成功しました。
一発で望んだコードを生成してもらうのはかなり指示を具体的にしないと難しそうです。

具体的に指示してみる
下記のように具体的に記載してコードを生成して、望み通りのものが生成されるか試してみます。
sample.csvを数値で読み込んで、ilocを使って、1列目の最大値、最小値、平均値、中央値を出力する。

望み通りのものが生成されました。
sample.csvを数値で読み込んで、ilocを使って、1列目の最大値、最小値、平均値、中央値を出力する。
import pandas as pd
data = pd.read_csv('sample.csv')
print(data.iloc[:, 0].max())
print(data.iloc[:, 0].min())
print(data.iloc[:, 0].mean())
print(data.iloc[:, 0].median())使ってみた所感
使ってみた所感は下記です。
気軽に使えることもあり、今後にも期待です。
・メジャーどころでないとAPIを使うプログラムは難しそう。
・やりたいことを具体的に書かないと望み通りのものは出力されない。
・とりあえずこんなもの気になるなとかでヒントを探すとかにも使えそう。
ブログの著者欄
採用情報
関連記事
KEYWORD
CATEGORY
- 
                  技術情報(516)
 - 
                  イベント(193)
 - 
                  カルチャー(50)
 - 
                  デザイン(47)
 
TAG
- "eVTOL"
 - "Japan Drone"
 - "ロボティクス"
 - "空飛ぶクルマ"
 - 5G
 - Adam byGMO
 - AGI
 - AI
 - AI人財
 - APT攻撃
 - AWX
 - BIT VALLEY
 - Blade
 - blockchain
 - Canva
 - ChatGPT
 - ChatGPT Team
 - Claude Team
 - cloudflare
 - cloudnative
 - CloudStack
 - CM
 - CNDO
 - CNDT
 - CODEGYM Academy
 - ConoHa
 - ConoHa、Dify
 - CS
 - CSS
 - CTF
 - DC
 - design
 - Designship
 - Desiner
 - DeveloperExper
 - DeveloperExpert
 - DevRel
 - DevSecOpsThon
 - DiceCTF
 - Dify
 - DNS
 - Docker
 - DTF
 - Expert
 - Felo
 - GitLab
 - GMO AIR
 - GMO AIロボティクス大会議&表彰式
 - GMO DESIGN AWARD
 - GMO Developers Day
 - GMO Developers Night
 - GMO Developers ブログ
 - GMO Flatt Security
 - GMO GPUクラウド
 - GMO Hacking Night
 - GMO kitaQ
 - GMO SONIC
 - GMOアドパートナーズ
 - GMOアドマーケティング
 - GMOイエラエ
 - GMOインターネット
 - GMOインターネットグループ
 - GMOクラウド]
 - GMOグローバルサイン
 - GMOサイバーセキュリティbyイエラエ
 - GMOサイバーセキュリティ大会議
 - GMOサイバーセキュリティ大会議&表彰式
 - GMOソリューションパートナー
 - GMOデジキッズ
 - GMOブランドセキュリティ
 - GMOペイメントゲートウェイ
 - GMOペパボ
 - GMOメディア
 - GMOリサーチ
 - GMO大会議
 - Go
 - GPU
 - GPUクラウド
 - GTB
 - Hardning
 - Harvester
 - HCI
 - iOS
 - IoT
 - ISUCON
 - JapanDrone
 - Java
 - JJUG
 - K8s
 - Kaigi on Rails
 - Kids VALLEY
 - KidsVALLEY
 - LLM
 - MCP
 - MetaMask
 - MySQL
 - NFT
 - NVIDIA
 - NW構成図
 - NW設定
 - Ollama
 - OpenStack
 - Perl
 - perplexity
 - PHP
 - PHPcon
 - PHPerKaigi
 - PHPカンファレンス
 - QUIC
 - Rancher
 - RPA
 - Ruby
 - Selenium
 - Slack
 - Slack活用
 - Spectrum Tokyo Meetup
 - splunk
 - SRE
 - SSL
 - Terraform
 - TLS
 - TypeScript
 - UI/UX
 - vibe
 - VLAN
 - VS Code
 - Webアプリケーション
 - WEBディレクター
 - XSS
 - アドベントカレンダー
 - イベントレポート
 - インターンシップ
 - インハウス
 - オブジェクト指向
 - オンボーディング
 - お名前.com
 - カルチャー
 - クリエイター
 - クリエイティブ
 - コーディング
 - コンテナ
 - サイバーセキュリティ
 - システム研修
 - スクラム
 - スペシャリスト
 - セキュリティ
 - ソフトウェアテスト
 - チームビルディング
 - デザイン
 - ドローン
 - ネットのセキュリティもGMO
 - ネットワーク
 - ビジネス職
 - ヒューマノイド
 - ヒューマノイドロボット
 - プログラミング教育
 - ブロックチェーン
 - ベイズ統計学
 - マルチプレイ
 - ミドルウェア
 - モバイル
 - ゆめみらいワーク
 - リモートワーク
 - レンタルサーバー
 - ロボット
 - 京大ミートアップ
 - 人材派遣
 - 出展レポート
 - 動画
 - 協賛レポート
 - 基礎
 - 多拠点開発
 - 大学授業
 - 宮崎オフィス
 - 展示会
 - 応用
 - 技育プロジェクト
 - 技術広報
 - 採用
 - 採用サイトリニューアル
 - 採用活動
 - 新卒
 - 新卒研修
 - 日本科学未来館
 - 映像
 - 映像クリエイター
 - 暗号
 - 業務効率化
 - 業務時間削減
 - 機械学習
 - 決済
 - 物理暗号
 - 生成AI
 - 視覚暗号
 - 開発生産性
 - 開発生産性向上
 - 階層ベイズ
 - 高機能暗号
 
PICKUP
- 
                  
                    
                                        東京・福島・福岡の専門学校3校でConoHa AI Canvasを用いた講義を実施しました
技術情報
 - 
                  
                    
                                        【協賛レポート・前編】Designship 2025|参加者と“共につくる”デザインのかたち──私たちの挑戦を振り返る
デザイン
 - 
                  
                    
                                        NFSのパフォーマンストラブルに対応した話
技術情報
 - 
                  
                    
                                        Microsoft Entra アプリケーション プロキシ × Windows 統合認証環境での NTLM 廃止影響と対策
技術情報
 - 
                  
                    
                                        GMOインターネットグループ合同テクノロジーインターンシップ2025 体験記~ML/Webコース編①~
カルチャー
 - 
                  
                    
                                        ChatGPTとConoHa AI Canvasで検証:生成AIが変えるクリエイティブ制作
技術情報