
ããã«ã¡ã¯ å ¤ã§ãã
3æ1æ¥ã«ChatGPTã®APIãå ¬éããã¾ããã
APIãå
¬éããããã¨ã§ChatGPTãæ´»ç¨ããã¢ããªãè²ã
ç»å ´ãã¦çãä¸ãã£ã¦ãã¾ããï¼
ä»åã¯Pythonã®ã¿ã§ç°¡åã«Webã¢ããªã使ã§ããStreamlitã¨ChatGPT APIãçµã¿åããã¦ç°¡åã«AIã¢ããªã使ããæ¹æ³ããç´¹ä»ãã¾ãã
Streamlitã«ã¤ãã¦
Streamlitã¯ããã³ããããã¯ã¨ã³ããPythonã®ã¿ã®è¨è¿°ã§Webã¢ããªã±ã¼ã·ã§ã³ã使ã§ãããã¬ã¼ã ã¯ã¼ã¯ã§ãã
Webã¢ããªä½ããããã©ããã³ãã®ç¥èãå
¨ããªãããã¨ãã人ã§ãUIãç°¡åã«ä½æã§ããã®ã§ã¨ã¦ã便å©ã§ãã
ãã¼ã¿å¯è¦åãæ©æ¢°å¦ç¿ã¢ãã«ã®å
±æãã¨ã¦ãç°¡åã«ã§ããã®ã§ãã¼ã¿ãµã¤ã¨ã³ã¹ã®é åã§ãã使ããã¦ãã¾ãã
使ããã¢ããª
ä»åã¯ãã®ChatGPT APIã¨Streamlitãçµã¿åãããã¢ããªãä½ã£ã¦ããã¾ãã
ä»åã¯ä¾ã¨ãã¦å¤æ°åã颿°åãèªåã§å½åãã¦ãããã¢ããªã±ã¼ã·ã§ã³ãä½ãããã¨æãã¾ãï¼
ååã¯ãAutoNamer(ãªã¼ããã¤ãã¼)ãã¨ããååã«ãã¾ãã
ãã¡ããChatGPTã«èãã¦ãããã¾ããã

ããæãã®ååã§ããï¼ãã£ããããã©ããã¯ç½®ãã¦ããã¦
å¦çæ¦è¦
AutoNamerã¯ä»¥ä¸ã®ãããªå¦çãããããã«ãããã¨æãã¾ãã
1. è¨èªã®é¸æ
ãã£ã¡ã«ã±ã¼ã¹ãã¹ãã¼ã¯ã±ã¼ã¹ãªã©è¨èªã«ãã£ã¦å½åè¦åãªã©ãç°ãªãã®ã§ãæåã«ä½ã®è¨èªã§å¤æ°åã颿°åãçæãããã鏿ãã¾ãã
2. 夿°åã颿°åã«ãããå¦çã®æ¦è¦ãè¨è¿°
ããã«ã©ããªå¦çã対象ã®å¤æ°åã颿°åãæ¬²ããããè¨è¿°ãã¾ãã
ä¾ãã°ããããå¹´ãã©ãããå¤å®ãã颿°ãã¨ããã¦ã¼ã¶ã¼ãèªè¨¼ããã¦ãããã示ã夿°ããªã©ã¨å
¥åãã¾ãã
3. å½ååè£ãåºå
æå¾ã«å½åã®åè£ãåºåãã¾ããèªåã§æ°ã«å ¥ã£ããã®ãé¸ã¹ãããã«ä»åã¯10ååè£ã¨ãªãååãåºåãã¦ãããããã«ãã¾ãããã
ã³ã¼ã
ãããã®å¦çãStreamlitã使ã£ã¦è¨è¿°ããã¨ãã®ãããªã³ã¼ãã«ãªãã¾ãã
import streamlit as st import openai import os CHATGPT_API_KEY = os.environ["CHATGPT_API_KEY"] openai.api_key = CHATGPT_API_KEY def generate_name(text,language): res = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ { "role": "system", "content": f"Please output 10 candidates for appropriate variable or function names in English from the input Japanese. Naming conventions must follow the {language} language specification and the output must be on a single line in the format name1,name2,name3." }, { "role": "user", "content": text }, ], ) return res["choices"][0]["message"]["content"] language_list = ["Python", "JavaScript", "Java", "Go"] st.title("AutoNamer") st.header('夿°åã颿°åãèªåã§å½åããã¢ããªã§ã') selected_language = st.selectbox("è¨èªã鏿ãã¦ãã ãã", language_list) text_input = st.text_input("夿°ã颿°ã«ããå¦çã®æ¦è¦ãè¨è¿°ãã¦ãã ãã", "") if st.button("çæ"): names = generate_name(text_input, language=selected_language) for name in names.split(","): st.code(name)
generate_name颿°ã§ChatGPT APIãç¨ãã¦å½åãè¡ãã¾ã
def generate_name(text,language): res = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ { "role": "system", "content": f"Please output 10 candidates for appropriate variable or function names in English from the input Japanese. Naming conventions must follow the {language} language specification and the output must be on a single line in the format name1,name2,name3." }, { "role": "user", "content": text }, ], ) return res["choices"][0]["message"]["content"]
ChatGPT APIã«ã¯ä¸è¨ã®ãããªå½¢å¼ã§ãªã¯ã¨ã¹ããéãã¾ãã
messagesã§ãã¼ã«ã¨ã³ã³ãã³ãããã©ã¡ã¼ã¿ã¨ãã¦æ¸¡ãã¾ãã
roleã«ã¯systemãuserãassistantãè¨å®ã§ããsystemã¯ChatGPTã«ã©ã®ããã«ãµãã¾ã£ã¦ã»ãããã®æ¡ä»¶ãè¨è¿°ããuserã§è³ªåãå½ä»¤ãè¨è¿°ãã¾ããChatGPT APIã¯ä¼è©±ã®å±¥æ´ãä¿æããªã仿§ã«ãªã£ã¦ãããããassistantã«éå»ã®ä¼è©±ã®å
容ãè¨è¼ãããã¨ã§éå»ã®å±¥æ´ãä¿æãã¾ãã
ä»åã¯systemã¨userã使ç¨ãã¾ãã
systemã«ã¯
"Please output 10 candidates for appropriate variable or function names in English from the input Japanese. Naming conventions must follow the {language} language specification and the output must be on a single line in the format name1,name2,name3."
ã¨è¨å®ãã¾ããã
- æ¥æ¬èªã®å ¥åããè±åã§å½ååè£ã10ååºåãããã¨
- å ¥åãããè¨èªã®å½åè¦åã«åããããã¨
- name1,name2,name3ã®ãããªå½¢å¼ã§åºåãããã¨
ãæ¡ä»¶ã¨ãã¦æå®ãã¦ãã¾ãã
userã«ã¯å¤æ°ã颿°ã«ãããå¦çãå¯¾è±¡ãæ¥æ¬èªã§å
¥åãã¾ãã
language_list = ["Python", "JavaScript", "Java", "Go"] st.title("AutoNamer") st.header('夿°åã颿°åãèªåã§å½åããã¢ããªã§ã') selected_language = st.selectbox("è¨èªã鏿ãã¦ãã ãã", language_list) text_input = st.text_input("夿°ã颿°ã«ããå¦çã®æ¦è¦ãè¨è¿°ãã¦ãã ãã", "") if st.button("çæ"): names = generate_name(text_input, language=selected_language) for name in names.split(","): st.code(name)
ãã®ä¸ã®å¦çã§ã¯Streamlitã§ã®å¦çãè¨è¿°ãã¦ãã¾ããHTMLãæ¸ããªãã¦ãst.selectboxãst.buttonã¨æ¸ãã ãã§ç°¡åã«ã»ã¬ã¯ãããã¯ã¹ããã¿ã³ã¨ãã£ãè¦ç´ ãçæã§ãã¾ãã
åä½
ããã ãã®è¨è¿°ã§ãã宿ã§ãã1ã¤ã®ãã¡ã¤ã«ã ãã§å®çµããã£ã¦ç´ æ´ããã...
å®éã«AutoNamerã®åä½ã確èªãã¦ã¿ã¾ãããã
$ streamlit run app.pyã¨ã³ãã³ããå®è¡ããã¨ã¢ããªããã¼ã«ã«ãã¹ãã§ç«ã¡ä¸ããã¾ãã

å®éã«å ¥åãã¦ä½¿ã£ã¦ã¿ã¾ãããã

ã¡ããã¨åºåããã¦ãã¾ã...ãä¸é¨Pythonã®å½åè¦åã¨ã¯ç°ãªããã£ã¡ã«ã±ã¼ã¹ã«ãªã£ã¦ãã¾ã£ã¦ãããã®ãããã¾ãã
éãè¨èªã§ã試ãã¦ã¿ã¾ããã

ä»åº¦ã¯ã¡ããã¨Javaã®å½åè¦åã«æ²¿ã£ããã®ã«ãªã£ã¦ã¾ãï¼ ååãæå³ãéã£ã¦ãã¦ããæãã§ãã
ãã®å¾ä½åã試ãã¦ã¿ã¾ããããåè£ã10å以ä¸åºåããã¦ãã¾ã£ãããå対ã«10ååºåãããªãã£ããã¨ãããã¾ããã
å½åè¦åã«æ²¿ã£ããã®ã«ãããã¨ãåããã¦ãsystemã®æ¡ä»¶ã®æ¸¡ãæ¹(ããã³ããã¨ã³ã¸ãã¢ãªã³ã°)ã«ã¯ã¾ã ã¾ã æ¹åã®ä½å°ãããããã§ãã
ã¾ã¨ã
ä»åã¯Streamlitã¨ChatGPT APIã使ã£ã¦AIã¢ããªã使ãã¦ã¿ã¾ããã ã¾ã ã¾ã æ¹åã®ä½å°ã¯ããã¾ããããã30è¡ã»ã©ã®Pythonã³ã¼ãã®ã¿ã§ãããªãã®ã¢ããªã使ã§ããã®ã§ããªããã¼ãã«ä½ãWebã¢ããªã使ã§ãã¾ããï¼
å¤é¨å ¬éãStreamlitã«ã¯Streamlit Sharingã¨ãããã¹ãã£ã³ã°ãµã¼ãã¹ããããããããã¤ãç¡æã§ç°¡åã«è¡ããã¨ãã§ãã¾ãã
ããã¾ã§UIã¨ãã«ã¯ãã ãããªãã¦ãããã©ã¡ãã£ã¨ããå人ã社å ç¨ã®ã¢ããªãä½ãããã¨ãã®ç¨éã§ããã°ããªã使ããã¨æãã¾ããChatGPT APIã¨ã®ç¸æ§ãã¨ã¦ããããªã¼ã¨å人çã«ã¯æããã®ã§è²ã ã¢ããªãä½ã£ã¦ã¿ããã§ãã