前提
本稿では生成AIのサービスはChatGPTを使うことのみ想定。GitHubCopilotなど他のサービスでは普通に使える機能も混ざっている可能性がある。
本稿では「さっと使って部分的に」がテーマである。要件確定~設計~開発まで生成AIドリブンで限りなく自動化して、という大層なことには触れない。
使い道
データ変換系
json⇔csv切り替え
以下のjson配列を、「キー1」「キー2」「キー3」が列名であるcsvに変換してください。
{json配列}
jsonデータからjsonスキーマ作成
以下のjson配列について考えます{json配列}
これを以下のjsonスキーマのような形にしてください。
{jsonスキーマ}
ここでいうjsonスキーマは以下のようなfunction callingのスキーマを想定しています。
"parameters": {
"type": "object",
"properties": {
"list":{
"type" "array",
"items": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "日本の都市名を表す文字列です。",
},
"unit": {
"type": "string",
"description": "気温を取得する場合の単位です。摂氏と華氏のいずれかです。",
"enum": ["celsius", "fahrenheit"],
"default": "celsius",
},
"required": ["location", "unit"],
}
}
}
},
"required": ["list"],
},
json⇔pydanticモデル
以下のjson配列をpydanticモデルに変換してください。{json配列}
入力
{
"function_call": {
"function_name": "get_weather_forecast",
"parameters": {
"location": {
"city": "Tokyo",
"country": "Japan"
},
"date": "2024-12-03",
"units": "metric"
}
},
"response": {
"status": "success",
"data": {
"location": {
"city": "Tokyo",
"country": "Japan"
},
"forecast": [
{
"date": "2024-12-03",
"temperature": {
"min": 8,
"max": 15
},
"condition": "Cloudy"
},
{
"date": "2024-12-04",
"temperature": {
"min": 9,
"max": 16
},
"condition": "Sunny"
}
]
}
},
"error": null
}
出力
from typing import List, Optional
from pydantic import BaseModel
class Location(BaseModel):
city: str
country: str
class Temperature(BaseModel):
min: int
max: int
class Forecast(BaseModel):
date: str
temperature: Temperature
condition: str
class ResponseData(BaseModel):
location: Location
forecast: List[Forecast]
class FunctionCallParameters(BaseModel):
location: Location
date: str
units: str
class FunctionCall(BaseModel):
function_name: str
parameters: FunctionCallParameters
class Response(BaseModel):
status: str
data: Optional[ResponseData]
class Error(BaseModel):
code: Optional[str]
message: Optional[str]
class RootModel(BaseModel):
function_call: FunctionCall
response: Optional[Response]
error: Optional[Error]
# JSONデータをPythonオブジェクトに変換する例
json_data = {
"function_call": {
"function_name": "get_weather_forecast",
"parameters": {
"location": {
"city": "Tokyo",
"country": "Japan"
},
"date": "2024-12-03",
"units": "metric"
}
},
"response": {
"status": "success",
"data": {
"location": {
"city": "Tokyo",
"country": "Japan"
},
"forecast": [
{
"date": "2024-12-03",
"temperature": {
"min": 8,
"max": 15
},
"condition": "Cloudy"
},
{
"date": "2024-12-04",
"temperature": {
"min": 9,
"max": 16
},
"condition": "Sunny"
}
]
}
},
"error": None
}
# Pydanticモデルのインスタンスを作成
model_instance = RootModel(**json_data)
print(model_instance)
unicode文字を変換
ログで日本語がunicode文字で出てきてしまったときによく使う
{対象のunicode文字}を日本語に変換してください
その他
テストデータ準備
以下の関数のテストデータを作成してください。
ただし、境界値やカバレッジなどについても考慮して複数セット用意してください。
{関数}
cURL⇔wget⇔pythonのrequestsモジュールでの記法変換
(省略)