55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
import os
|
|
import openai
|
|
|
|
# ====================
|
|
# 設定
|
|
# ====================
|
|
openai.api_key = os.getenv("OPENAI_API_KEY") # または直接キーをここに書く
|
|
|
|
# 保存先ディレクトリ
|
|
SAVE_DIR = "generated_svgs"
|
|
os.makedirs(SAVE_DIR, exist_ok=True)
|
|
|
|
# 生成したいアイコン名リスト
|
|
icon_names = ["home", "star", "chat", "user"]
|
|
|
|
# ====================
|
|
# ChatGPTを使ってSVGコードを生成
|
|
# ====================
|
|
def generate_svg_code(icon_name):
|
|
prompt = f"""
|
|
SVGアイコンを作ってください。テーマは「{icon_name}」です。
|
|
SVGのコードだけを出力してください。サイズは24x24pxで、シンプルでCSSで色指定可能にしてください。
|
|
"""
|
|
|
|
response = openai.ChatCompletion.create(
|
|
model="gpt-4",
|
|
messages=[
|
|
{"role": "system", "content": "あなたはSVGアイコンを生成するアシスタントです。"},
|
|
{"role": "user", "content": prompt}
|
|
]
|
|
)
|
|
|
|
svg_code = response.choices[0].message.content.strip()
|
|
return svg_code
|
|
|
|
# ====================
|
|
# SVGファイルを保存
|
|
# ====================
|
|
def save_svg(icon_name, svg_code):
|
|
filename = os.path.join(SAVE_DIR, f"{icon_name}.svg")
|
|
with open(filename, "w", encoding="utf-8") as f:
|
|
f.write(svg_code)
|
|
print(f"✅ Saved: {filename}")
|
|
|
|
# ====================
|
|
# メイン処理
|
|
# ====================
|
|
if __name__ == "__main__":
|
|
for name in icon_names:
|
|
try:
|
|
svg = generate_svg_code(name)
|
|
save_svg(name, svg)
|
|
except Exception as e:
|
|
print(f"❌ Error generating {name}: {e}")
|