<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>다만사의 블로그</title>
    <link>https://damansa1.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 8 Jul 2026 08:16:24 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>다만사 </managingEditor>
    <item>
      <title>소라군2</title>
      <link>https://damansa1.tistory.com/91</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;20240331_082905.jpg&quot; data-origin-width=&quot;3492&quot; data-origin-height=&quot;4656&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmOekh/btsGn9bA7w7/gYNCOFkOXrVDjRKapVDEa0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmOekh/btsGn9bA7w7/gYNCOFkOXrVDjRKapVDEa0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmOekh/btsGn9bA7w7/gYNCOFkOXrVDjRKapVDEa0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmOekh%2FbtsGn9bA7w7%2FgYNCOFkOXrVDjRKapVDEa0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3492&quot; height=&quot;4656&quot; data-filename=&quot;20240331_082905.jpg&quot; data-origin-width=&quot;3492&quot; data-origin-height=&quot;4656&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 잡니다... 쿨쿨&lt;/p&gt;</description>
      <category>Etc</category>
      <author>다만사</author>
      <guid isPermaLink="true">https://damansa1.tistory.com/91</guid>
      <comments>https://damansa1.tistory.com/91#entry91comment</comments>
      <pubDate>Fri, 5 Apr 2024 15:15:06 +0900</pubDate>
    </item>
    <item>
      <title>소라군</title>
      <link>https://damansa1.tistory.com/90</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;20240331_170523_HDR.jpg&quot; data-origin-width=&quot;3492&quot; data-origin-height=&quot;4656&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdsYhS/btsGpT6AWDs/zzzRiLK5Li32SewmzStUQ0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdsYhS/btsGpT6AWDs/zzzRiLK5Li32SewmzStUQ0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdsYhS/btsGpT6AWDs/zzzRiLK5Li32SewmzStUQ0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdsYhS%2FbtsGpT6AWDs%2FzzzRiLK5Li32SewmzStUQ0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3492&quot; height=&quot;4656&quot; data-filename=&quot;20240331_170523_HDR.jpg&quot; data-origin-width=&quot;3492&quot; data-origin-height=&quot;4656&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;훌륭한 가족 소라군&lt;/p&gt;</description>
      <category>Etc</category>
      <author>다만사</author>
      <guid isPermaLink="true">https://damansa1.tistory.com/90</guid>
      <comments>https://damansa1.tistory.com/90#entry90comment</comments>
      <pubDate>Fri, 5 Apr 2024 15:12:44 +0900</pubDate>
    </item>
    <item>
      <title>babel fish</title>
      <link>https://damansa1.tistory.com/88</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;#&amp;nbsp;babel_fish.py &lt;br /&gt;import&amp;nbsp;tkinter&amp;nbsp;as&amp;nbsp;tk &lt;br /&gt;from&amp;nbsp;tkinter&amp;nbsp;import&amp;nbsp;ttk &lt;br /&gt;import&amp;nbsp;openai &lt;br /&gt;import&amp;nbsp;sounddevice&amp;nbsp;as&amp;nbsp;sd &lt;br /&gt;from&amp;nbsp;gtts&amp;nbsp;import&amp;nbsp;gTTS &lt;br /&gt;import&amp;nbsp;pygame &lt;br /&gt;import&amp;nbsp;wavio &lt;br /&gt;from&amp;nbsp;openai&amp;nbsp;import&amp;nbsp;OpenAI &lt;br /&gt;import&amp;nbsp;os &lt;br /&gt;&lt;br /&gt;API_KEY&amp;nbsp;=&amp;nbsp;os.environ.get('OPEN_API_KEY') &lt;br /&gt;client&amp;nbsp;=&amp;nbsp;OpenAI( &lt;br /&gt;api_key&amp;nbsp;=&amp;nbsp;API_KEY, &lt;br /&gt;) &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;create&amp;nbsp;a&amp;nbsp;dictionary&amp;nbsp;to&amp;nbsp;store&amp;nbsp;the&amp;nbsp;language&amp;nbsp;and &lt;br /&gt;#&amp;nbsp;their&amp;nbsp;corresponding&amp;nbsp;codes &lt;br /&gt;languages&amp;nbsp;=&amp;nbsp;{'English':&amp;nbsp;'en',&amp;nbsp;'Spanish':&amp;nbsp;'es',&amp;nbsp;'French':&amp;nbsp;'fr',&amp;nbsp;'Korean':&amp;nbsp;'ko',&amp;nbsp;'Japanese':&amp;nbsp;'ja'} &lt;br /&gt;&lt;br /&gt;app&amp;nbsp;=&amp;nbsp;tk.Tk() &lt;br /&gt;app.title(&quot;Babel&amp;nbsp;Fish&quot;) &lt;br /&gt;style&amp;nbsp;=&amp;nbsp;ttk.Style() &lt;br /&gt;&lt;br /&gt;def&amp;nbsp;set_wait_cursor(): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;submit_btn.config(cursor=&quot;watch&quot;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;app.update_idletasks()&amp;nbsp;&amp;nbsp;#&amp;nbsp;Force&amp;nbsp;an&amp;nbsp;immediate&amp;nbsp;update&amp;nbsp;of&amp;nbsp;the&amp;nbsp;window &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def&amp;nbsp;set_normal_cursor(): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;submit_btn.config(cursor=&quot;&quot;) &lt;br /&gt;&lt;br /&gt;def&amp;nbsp;translate(language1,&amp;nbsp;language2,&amp;nbsp;text): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set_label(&quot;Translating...&quot;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;prompt&amp;nbsp;=&amp;nbsp;f&quot;Translate&amp;nbsp;the&amp;nbsp;following&amp;nbsp;from&amp;nbsp;{language1}&amp;nbsp;to&amp;nbsp;{language2}:&amp;nbsp;{text}&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;prompt&amp;nbsp;=&amp;nbsp;'Hi&amp;nbsp;There' &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;messages&amp;nbsp;=&amp;nbsp;[{'role':&amp;nbsp;'user',&amp;nbsp;'content':&amp;nbsp;prompt}] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response&amp;nbsp;=&amp;nbsp;client.chat.completions.create( &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;model=&quot;gpt-3.5-turbo&quot;, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;messages=messages, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;temperature=0.8, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;top_p=1.0, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;frequency_penalty=0.0, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;presence_penalty=0.6, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;) &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;chat_gpt_translation&amp;nbsp;=&amp;nbsp;response.choices[0].message.content &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print('translation:&amp;nbsp;'&amp;nbsp;+&amp;nbsp;chat_gpt_translation) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;chat_gpt_translation &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def&amp;nbsp;text_to_speech(translated_text,&amp;nbsp;language): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set_label(&quot;Playing...&quot;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tts&amp;nbsp;=&amp;nbsp;gTTS(translated_text,&amp;nbsp;lang=languages[language],&amp;nbsp;slow=False) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tts.save('C:\\temp\\translation.mp3') &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;5.&amp;nbsp;Convert&amp;nbsp;Translated&amp;nbsp;Text&amp;nbsp;to&amp;nbsp;Speech &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;Placeholder&amp;nbsp;for&amp;nbsp;a&amp;nbsp;TTS&amp;nbsp;service&amp;nbsp;(like&amp;nbsp;Google&amp;nbsp;Cloud&amp;nbsp;TTS). &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;Initialize&amp;nbsp;pygame&amp;nbsp;mixer &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pygame.mixer.init() &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pygame.mixer.music.load('C:\\temp\\translation.mp3') &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pygame.mixer.music.play() &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;If&amp;nbsp;you&amp;nbsp;want&amp;nbsp;to&amp;nbsp;keep&amp;nbsp;the&amp;nbsp;program&amp;nbsp;running&amp;nbsp;until&amp;nbsp;the&amp;nbsp;audio&amp;nbsp;is&amp;nbsp;done&amp;nbsp;playing: &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while&amp;nbsp;pygame.mixer.music.get_busy(): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pygame.time.Clock().tick(10)&amp;nbsp;&amp;nbsp;#&amp;nbsp;This&amp;nbsp;will&amp;nbsp;wait&amp;nbsp;and&amp;nbsp;let&amp;nbsp;the&amp;nbsp;music&amp;nbsp;play. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;close&amp;nbsp;the&amp;nbsp;mp3&amp;nbsp;file &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pygame.mixer.music.stop() &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pygame.mixer.quit() &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;os.remove('C:\\temp\\translation.mp3') &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def&amp;nbsp;capture_audio(): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;Indicate&amp;nbsp;start&amp;nbsp;of&amp;nbsp;recording &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label_recording.config(text=&quot;Recording...&quot;,&amp;nbsp;bg=&quot;red&quot;) &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;app.update() &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;get&amp;nbsp;number&amp;nbsp;of&amp;nbsp;seconds&amp;nbsp;from&amp;nbsp;dropdown &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;duration&amp;nbsp;=&amp;nbsp;int(combo_duration.get()) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;samplerate&amp;nbsp;=&amp;nbsp;44100 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;audio&amp;nbsp;=&amp;nbsp;sd.rec(int(samplerate&amp;nbsp;*&amp;nbsp;duration), &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;samplerate=samplerate,&amp;nbsp;channels=2,&amp;nbsp;dtype='int16') &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sd.wait() &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label_recording.config(text=&quot;Finished&amp;nbsp;Recording&quot;,&amp;nbsp;bg=&quot;green&quot;) &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;app.update() &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;Save&amp;nbsp;the&amp;nbsp;numpy&amp;nbsp;array&amp;nbsp;to&amp;nbsp;a&amp;nbsp;WAV&amp;nbsp;file&amp;nbsp;using&amp;nbsp;wavio &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wav_path&amp;nbsp;=&amp;nbsp;&quot;c:\\temp\\myrecording.wav&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wavio.write(wav_path,&amp;nbsp;audio,&amp;nbsp;samplerate,&amp;nbsp;sampwidth=2) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def&amp;nbsp;set_label(text): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label_recording.config(text=text,&amp;nbsp;bg=&quot;green&quot;,&amp;nbsp;fg=&quot;white&quot;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label_recording.update() &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def&amp;nbsp;transcribe(): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;audio_file&amp;nbsp;=&amp;nbsp;open(&quot;c:\\temp\\myrecording.wav&quot;,&amp;nbsp;&quot;rb&quot;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;set_label(&quot;Transcribing...&quot;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;transcription&amp;nbsp;=&amp;nbsp;client.audio.transcriptions.create( &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; model='whisper-1',&amp;nbsp;file=audio_file,&amp;nbsp;response_format='text') &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;audio_file.close() &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print('transcription:&amp;nbsp;'&amp;nbsp;+&amp;nbsp;f'{transcription}\n\n') &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;transcription &lt;br /&gt;&lt;br /&gt;def&amp;nbsp;reset_status(): &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label_recording.config(text=&quot;Click&amp;nbsp;the&amp;nbsp;button&amp;nbsp;to&amp;nbsp;start&amp;nbsp;recording&quot;, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bg=&quot;lightgray&quot;,&amp;nbsp;fg=&quot;white&quot;) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label_recording.update() &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;def&amp;nbsp;submit(): &lt;br /&gt;&lt;br /&gt;set_wait_cursor() &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;1.&amp;nbsp;Capture&amp;nbsp;Audio &lt;br /&gt;capture_audio() &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;2.&amp;nbsp;Transcibe&amp;nbsp;the&amp;nbsp;Audio &lt;br /&gt;transcription&amp;nbsp;=&amp;nbsp;transcribe() &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;3.&amp;nbsp;Translate&amp;nbsp;the&amp;nbsp;Transcribed&amp;nbsp;Audio &lt;br /&gt;resulting_traslation&amp;nbsp;=&amp;nbsp;translate(combo1.get(),&amp;nbsp;combo2.get(),&amp;nbsp;transcription) &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;4,&amp;nbsp;Voice&amp;nbsp;the&amp;nbsp;Translated&amp;nbsp;Text &lt;br /&gt;text_to_speech(resulting_traslation,&amp;nbsp;combo2.get()) &lt;br /&gt;reset_status() &lt;br /&gt;set_normal_cursor() &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;Label&amp;nbsp;and&amp;nbsp;ComboBox&amp;nbsp;for&amp;nbsp;the&amp;nbsp;Known&amp;nbsp;Language &lt;br /&gt;label1&amp;nbsp;=&amp;nbsp;ttk.Label(app,&amp;nbsp;text=&quot;Select&amp;nbsp;Known&amp;nbsp;Language&quot;) &lt;br /&gt;label1.grid(column=0,&amp;nbsp;row=0,&amp;nbsp;padx=10,&amp;nbsp;pady=5) &lt;br /&gt;combo1&amp;nbsp;=&amp;nbsp;ttk.Combobox(app,&amp;nbsp;values=list(languages.keys())) &lt;br /&gt;combo1.grid(column=1,&amp;nbsp;row=0,&amp;nbsp;padx=10,&amp;nbsp;pady=5) &lt;br /&gt;combo1.set(&quot;English&quot;) &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;Label&amp;nbsp;and&amp;nbsp;ComboBox&amp;nbsp;for&amp;nbsp;the&amp;nbsp;Translated&amp;nbsp;Language &lt;br /&gt;label2&amp;nbsp;=&amp;nbsp;ttk.Label(app,&amp;nbsp;text=&quot;Select&amp;nbsp;Traslated&amp;nbsp;Language&quot;) &lt;br /&gt;label2.grid(column=0,&amp;nbsp;row=1,&amp;nbsp;padx=10,&amp;nbsp;pady=5) &lt;br /&gt;combo2&amp;nbsp;=&amp;nbsp;ttk.Combobox(app,&amp;nbsp;values=list(languages.keys())) &lt;br /&gt;combo2.grid(column=1,&amp;nbsp;row=1,&amp;nbsp;padx=10,&amp;nbsp;pady=5) &lt;br /&gt;combo2.set(&quot;Spanish&quot;) &lt;br /&gt;&lt;br /&gt;label_recording_duration&amp;nbsp;=&amp;nbsp;tk.Label(app,&amp;nbsp;text=&quot;Recoding&amp;nbsp;Duration(seconds):&quot;) &lt;br /&gt;label_recording_duration.grid(column=0,&amp;nbsp;row=2,&amp;nbsp;padx=10,&amp;nbsp;pady=5) &lt;br /&gt;combo_duration&amp;nbsp;=&amp;nbsp;ttk.Combobox(app,&amp;nbsp;values=[5,&amp;nbsp;10,&amp;nbsp;15,&amp;nbsp;20,&amp;nbsp;25,&amp;nbsp;30]) &lt;br /&gt;combo_duration.grid(column=1,&amp;nbsp;row=2,&amp;nbsp;padx=10,&amp;nbsp;pady=5) &lt;br /&gt;combo_duration.set(5) &lt;br /&gt;&lt;br /&gt;#&amp;nbsp;Button&amp;nbsp;to&amp;nbsp;submit&amp;nbsp;the&amp;nbsp;text&amp;nbsp;to&amp;nbsp;traslate &lt;br /&gt;submit_btn&amp;nbsp;=&amp;nbsp;ttk.Button(app,&amp;nbsp;text=&quot;Record&quot;,&amp;nbsp;command=submit) &lt;br /&gt;submit_btn.grid(column=1,&amp;nbsp;row=3,&amp;nbsp;padx=10,&amp;nbsp;pady=20) &lt;br /&gt;label_recording&amp;nbsp;=&amp;nbsp;tk.Label(app,&amp;nbsp;text=&quot;Click&amp;nbsp;the&amp;nbsp;button&amp;nbsp;to&amp;nbsp;start&amp;nbsp;recording&quot;, &lt;br /&gt;bg=&quot;lightgray&quot;,&amp;nbsp;fg=&quot;white&quot;,&amp;nbsp;width=60,&amp;nbsp;height=2) &lt;br /&gt;label_recording.grid(column=0,&amp;nbsp;columnspan=2,&amp;nbsp;row=4,&amp;nbsp;padx=10,&amp;nbsp;pady=20) &lt;br /&gt;&lt;br /&gt;app.mainloop() &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>python</category>
      <author>다만사</author>
      <guid isPermaLink="true">https://damansa1.tistory.com/88</guid>
      <comments>https://damansa1.tistory.com/88#entry88comment</comments>
      <pubDate>Thu, 23 Nov 2023 00:52:49 +0900</pubDate>
    </item>
    <item>
      <title>pdf 출력</title>
      <link>https://damansa1.tistory.com/87</link>
      <description>&lt;div style=&quot;background-color: #ffffff; color: #080808;&quot;&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;tkinter &lt;span style=&quot;color: #0033b3;&quot;&gt;as &lt;/span&gt;tk&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;io &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;BytesIO&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;tkinter &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;ttk, messagebox&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;openai&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;os&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;requests&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;PIL &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;Image, ImageTk&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;reportlab.lib.pagesizes &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;letter&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;reportlab.lib.units &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;inch&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;reportlab.platypus &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;SimpleDocTemplate, Image &lt;span style=&quot;color: #0033b3;&quot;&gt;as &lt;/span&gt;ReportLabImage, Paragraph&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;reportlab.lib.styles &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;getSampleStyleSheet, ParagraphStyle&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;reportlab.pdfbase &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;pdfmetrics&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;reportlab.pdfbase.ttfonts &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;TTFont&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;reportlab.pdfbase.cidfonts &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;UnicodeCIDFont&lt;br /&gt;&lt;br /&gt;API_KEY = os.environ.get(&lt;span style=&quot;color: #067d17;&quot;&gt;'OPENAI_API_KEY'&lt;/span&gt;)&lt;br /&gt;openai.api_key = API_KEY&lt;br /&gt;&lt;br /&gt;pil_image_path = &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;c:&lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;\\&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;animal_play_image.png&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;def &lt;/span&gt;&lt;span style=&quot;color: #00627a;&quot;&gt;create_pdf&lt;/span&gt;(dialog_text):&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;if &lt;/span&gt;&lt;span style=&quot;color: #000080;&quot;&gt;len&lt;/span&gt;(dialog_text) == &lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;:&lt;br /&gt;messagebox.showerror(&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Error&quot;&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Please generate the dialog first!&quot;&lt;/span&gt;)&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;return&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt; &lt;/span&gt;pdfmetrics.registerFont(TTFont(&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;맑은고딕&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;malgun.ttf&quot;&lt;/span&gt;))&lt;br /&gt;doc = SimpleDocTemplate(&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;output.pdf&quot;&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;papersize&lt;/span&gt;=letter)&lt;br /&gt;&lt;br /&gt;contents = []&lt;br /&gt;img = ReportLabImage(pil_image_path,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;width&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;2.5&lt;/span&gt;*inch,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;height&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;2.5&lt;/span&gt;*inch)&lt;br /&gt;contents.append(img)&lt;br /&gt;&lt;br /&gt;dialog_text = &lt;span style=&quot;color: #067d17;&quot;&gt;'&amp;lt;br/&amp;gt;' &lt;/span&gt;+ dialog_text&lt;br /&gt;dialog_text = dialog_text.replace(&lt;span style=&quot;color: #067d17;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;'&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;'&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;'&lt;/span&gt;)&lt;br /&gt;styles = getSampleStyleSheet()&lt;br /&gt;styles.add(ParagraphStyle(&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Hangul&quot;&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;fontName&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;맑은고딕&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt; &lt;/span&gt;))&lt;br /&gt;paragraph = Paragraph(dialog_text, styles[&lt;span style=&quot;color: #067d17;&quot;&gt;'Hangul'&lt;/span&gt;])&lt;br /&gt;&lt;br /&gt;contents.append(paragraph)&lt;br /&gt;&lt;br /&gt;doc.build(contents)&lt;br /&gt;&lt;br /&gt;messagebox.showinfo(&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;PDF Created&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;PDF created successfully!&quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;def &lt;/span&gt;&lt;span style=&quot;color: #00627a;&quot;&gt;generateImage&lt;/span&gt;(animal1, animal2, scenario):&lt;br /&gt;response = openai.Image.create(&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;model&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;'dall-e-3'&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;#prompt=f&quot;cartoon image of a {animal1} and a {animal2} discussing {scenario}&quot;,&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #660099;&quot;&gt;prompt&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;f&quot;&lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;animal1&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;와&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;과&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;animal2&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;가&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;이&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;scenario&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;에서 이야기하고 있는 카툰 이미지&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;n&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;size&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;1024x1024&quot;&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;response_format&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;url&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt; &lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;image_url = response.data[&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;][&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;url&quot;&lt;/span&gt;]&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;return &lt;/span&gt;image_url&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;def &lt;/span&gt;&lt;span style=&quot;color: #00627a;&quot;&gt;update_label_with_new_image&lt;/span&gt;(label, photo):&lt;br /&gt;label.config(&lt;span style=&quot;color: #660099;&quot;&gt;image&lt;/span&gt;=photo)&lt;br /&gt;label.image = photo&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;def &lt;/span&gt;&lt;span style=&quot;color: #00627a;&quot;&gt;display_image_from_url&lt;/span&gt;(image_holder, url):&lt;br /&gt;response = requests.get(url)&lt;br /&gt;image_data = BytesIO(response.content)&lt;br /&gt;&lt;br /&gt;image = Image.open(image_data)&lt;br /&gt;image.save(pil_image_path, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;PNG&quot;&lt;/span&gt;)&lt;br /&gt;photo = ImageTk.PhotoImage(image)&lt;br /&gt;&lt;br /&gt;update_label_with_new_image(image_holder, photo)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;def &lt;/span&gt;&lt;span style=&quot;color: #00627a;&quot;&gt;submit&lt;/span&gt;():&lt;br /&gt;animal1 = combo1.get()&lt;br /&gt;animal2 = combo2.get()&lt;br /&gt;scenario = entry_box.get()&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;사자와 판다사이에 각각의 동물이 서로 말을 주고받는&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; 10&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;줄의 연극대본을 작성하여라&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;작성할 시나리오는 다음과 같다&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;그들이 만나는 장소&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;스타벅스&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# prompt = f&quot;Create a play between a {animal1} and a {animal2} with 10 lines of dialog with each animal taking &quot; \&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; # f&quot;turns to speak. Hear the scenario in which they will engage: {scenario}\n&quot;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; &lt;/span&gt;prompt = &lt;span style=&quot;color: #067d17;&quot;&gt;f&quot;&lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;animal1&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;와&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;과&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;animal2&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;사이에 각각의 동물이 서로 말을 주고받는&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt; 10&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;줄의 연극대본을 작성하여라&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;작성할 시나리오는 다음과 같다&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;그들이 만나는 장소&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;scenario&lt;span style=&quot;color: #0037a6;&quot;&gt;}\n&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt; &lt;/span&gt;messages = [{&lt;span style=&quot;color: #067d17;&quot;&gt;'role'&lt;/span&gt;: &lt;span style=&quot;color: #067d17;&quot;&gt;'user'&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;'content'&lt;/span&gt;: prompt}]&lt;br /&gt;response = openai.ChatCompletion.create(&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;model&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;gpt-3.5-turbo&quot;&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;messages &lt;/span&gt;= messages,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;temperature&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0.8&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;presence_penalty&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0.6&lt;/span&gt;,&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;chatGPTAnswer = response[&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;choices&quot;&lt;/span&gt;][&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;][&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;message&quot;&lt;/span&gt;][&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;content&quot;&lt;/span&gt;]&lt;br /&gt;&lt;span style=&quot;color: #000080;&quot;&gt;print&lt;/span&gt;(chatGPTAnswer)&lt;br /&gt;&lt;br /&gt;result_text.config(&lt;span style=&quot;color: #660099;&quot;&gt;state&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;normal&quot;&lt;/span&gt;)&lt;br /&gt;result_text.delete(&lt;span style=&quot;color: #1750eb;&quot;&gt;1.0&lt;/span&gt;, tk.END) &lt;span style=&quot;color: #8c8c8c;&quot;&gt;# Clear any previous results&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; # result_text.insert(tk.END, f&quot;Animal 1: {animal1}\n&quot;)&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; # result_text.insert(tk.END, f&quot;Animal 2: {animal2}\n&quot;)&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; # result_text.insert(tk.END, f&quot;Discussion scenario: {scenario}\n&quot;)&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; &lt;/span&gt;result_text.insert(tk.END, chatGPTAnswer)&lt;br /&gt;result_text.config(&lt;span style=&quot;color: #660099;&quot;&gt;state&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;disabled&quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;image_url = generateImage(animal1, animal2, scenario)&lt;br /&gt;display_image_from_url(image_holder, image_url)&lt;br /&gt;&lt;br /&gt;app = tk.Tk()&lt;br /&gt;app.title(&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Animal Discussion Scenario&quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# Label and ComboBox for the first animal&lt;br /&gt;&lt;/span&gt;label1 = ttk.Label(app, &lt;span style=&quot;color: #660099;&quot;&gt;text&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Select Animal 1:&quot;&lt;/span&gt;)&lt;br /&gt;label1.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;)&lt;br /&gt;combo1 = ttk.Combobox(app, &lt;span style=&quot;color: #660099;&quot;&gt;values&lt;/span&gt;=[&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;사자&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;코끼리&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;기린&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;캥거루&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;판다&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;])&lt;br /&gt;combo1.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;)&lt;br /&gt;combo1.set(&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;사자&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;#Label and ComboBox for the second animal&lt;br /&gt;&lt;/span&gt;label2 = ttk.Label(app, &lt;span style=&quot;color: #660099;&quot;&gt;text&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Select Animal 2:&quot;&lt;/span&gt;)&lt;br /&gt;label2.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;)&lt;br /&gt;combo2 = ttk.Combobox(app, &lt;span style=&quot;color: #660099;&quot;&gt;values&lt;/span&gt;=[&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;사자&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;코끼리&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;기린&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;캥거루&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;판다&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;])&lt;br /&gt;combo2.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;)&lt;br /&gt;combo2.set(&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;코끼리&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# Label and Entry for entering the discussion scenario&lt;br /&gt;&lt;/span&gt;label3 = ttk.Label(app, &lt;span style=&quot;color: #660099;&quot;&gt;text&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Enter Discussion Scenario:&quot;&lt;/span&gt;)&lt;br /&gt;label3.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;2&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;)&lt;br /&gt;entry_box = ttk.Entry(app, &lt;span style=&quot;color: #660099;&quot;&gt;width&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;30&lt;/span&gt;)&lt;br /&gt;entry_box.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;2&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# Button to submit the details&lt;br /&gt;&lt;/span&gt;submit_btn = ttk.Button(app, &lt;span style=&quot;color: #660099;&quot;&gt;text&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Submit&quot;&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;command&lt;/span&gt;=submit)&lt;br /&gt;submit_btn.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;3&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;20&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# Button to submit the details to pdf&lt;br /&gt;&lt;/span&gt;create_pdf_btn = ttk.Button(app, &lt;span style=&quot;color: #660099;&quot;&gt;text&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Create Pdf&quot;&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;command&lt;/span&gt;=&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;lambda&lt;/span&gt;: create_pdf(result_text.get(&lt;span style=&quot;color: #1750eb;&quot;&gt;1.0&lt;/span&gt;, tk.END)))&lt;br /&gt;create_pdf_btn.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;2&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;3&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;20&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# scrollbar&lt;br /&gt;&lt;/span&gt;scrollbar = tk.Scrollbar(app)&lt;br /&gt;scrollbar.grid(&lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;4&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;3&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;sticky&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;'ns'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# Text widget to display results&lt;br /&gt;&lt;/span&gt;result_text = tk.Text(app, &lt;span style=&quot;color: #660099;&quot;&gt;width&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;40&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;height&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;wrap&lt;/span&gt;=tk.WORD, &lt;span style=&quot;color: #660099;&quot;&gt;yscrollcommand&lt;/span&gt;=scrollbar.set)&lt;br /&gt;result_text.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;4&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;columnspan&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;2&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;scrollbar.config(&lt;span style=&quot;color: #660099;&quot;&gt;command&lt;/span&gt;=result_text.yview)&lt;br /&gt;&lt;br /&gt;image_holder = tk.Label(app)&lt;br /&gt;image_holder.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;columnspan&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;4&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;app.mainloop()&lt;/div&gt;</description>
      <category>python</category>
      <author>다만사</author>
      <guid isPermaLink="true">https://damansa1.tistory.com/87</guid>
      <comments>https://damansa1.tistory.com/87#entry87comment</comments>
      <pubDate>Wed, 22 Nov 2023 19:28:29 +0900</pubDate>
    </item>
    <item>
      <title>사자와 코끼리가 휴대폰 대리점에 나누는 대화</title>
      <link>https://damansa1.tistory.com/86</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;장면:&amp;nbsp;휴대폰&amp;nbsp;대리점 &lt;br /&gt;&lt;br /&gt;(사자가&amp;nbsp;대리점에&amp;nbsp;도착한다.&amp;nbsp;코끼리는&amp;nbsp;이미&amp;nbsp;대기&amp;nbsp;중이다.) &lt;br /&gt;&lt;br /&gt;사자:&amp;nbsp;안녕,&amp;nbsp;코끼리!&amp;nbsp;너도&amp;nbsp;휴대폰을&amp;nbsp;고치러&amp;nbsp;왔니? &lt;br /&gt;&lt;br /&gt;코끼리:&amp;nbsp;네,&amp;nbsp;맞아.&amp;nbsp;내&amp;nbsp;휴대폰이&amp;nbsp;이상해져서&amp;nbsp;왔어.&amp;nbsp;너도&amp;nbsp;그래? &lt;br /&gt;&lt;br /&gt;사자:&amp;nbsp;그래,&amp;nbsp;내&amp;nbsp;휴대폰&amp;nbsp;카메라가&amp;nbsp;작동하지&amp;nbsp;않아서&amp;nbsp;왔어.&amp;nbsp;고쳐줄&amp;nbsp;수&amp;nbsp;있을까? &lt;br /&gt;&lt;br /&gt;코끼리:&amp;nbsp;그럼&amp;nbsp;우리&amp;nbsp;둘&amp;nbsp;다&amp;nbsp;기다려야겠네. &lt;br /&gt;&lt;br /&gt;(사자와&amp;nbsp;코끼리가&amp;nbsp;대기하고&amp;nbsp;있는데&amp;nbsp;개구리가&amp;nbsp;들어온다.) &lt;br /&gt;&lt;br /&gt;개구리:&amp;nbsp;어이,&amp;nbsp;여기가&amp;nbsp;휴대폰&amp;nbsp;대리점이구나!&amp;nbsp;나도&amp;nbsp;휴대폰&amp;nbsp;고치려고&amp;nbsp;왔어. &lt;br /&gt;&lt;br /&gt;사자:&amp;nbsp;안녕,&amp;nbsp;개구리!&amp;nbsp;휴대폰에&amp;nbsp;문제가&amp;nbsp;생겼니? &lt;br /&gt;&lt;br /&gt;개구리:&amp;nbsp;그래,&amp;nbsp;배터리가&amp;nbsp;너무&amp;nbsp;빨리&amp;nbsp;닳아서&amp;nbsp;왔어.&amp;nbsp;너희들은&amp;nbsp;무슨&amp;nbsp;문제야? &lt;br /&gt;&lt;br /&gt;코끼리:&amp;nbsp;나는&amp;nbsp;휴대폰이&amp;nbsp;자꾸&amp;nbsp;꺼져버려서&amp;nbsp;왔어. &lt;br /&gt;&lt;br /&gt;(갑자기&amp;nbsp;원숭이가&amp;nbsp;대리점에&amp;nbsp;들어온다.) &lt;br /&gt;&lt;br /&gt;원숭이:&amp;nbsp;이런,&amp;nbsp;여긴&amp;nbsp;휴대폰&amp;nbsp;대리점이구나!&amp;nbsp;내&amp;nbsp;휴대폰도&amp;nbsp;고치러&amp;nbsp;왔어. &lt;br /&gt;&lt;br /&gt;사자:&amp;nbsp;안녕,&amp;nbsp;원숭이!&amp;nbsp;무슨&amp;nbsp;문제가&amp;nbsp;생겼어? &lt;br /&gt;&lt;br /&gt;원숭이:&amp;nbsp;내&amp;nbsp;휴대폰&amp;nbsp;터치스크린이&amp;nbsp;제대로&amp;nbsp;작동하지&amp;nbsp;않아서&amp;nbsp;왔어.&amp;nbsp;너희들은&amp;nbsp;어떤&amp;nbsp;문제야? &lt;br /&gt;&lt;br /&gt;개구리:&amp;nbsp;나는&amp;nbsp;배터리&amp;nbsp;문제야. &lt;br /&gt;&lt;br /&gt;코끼리:&amp;nbsp;나는&amp;nbsp;전원&amp;nbsp;문제야. &lt;br /&gt;&lt;br /&gt;(여우가&amp;nbsp;대리점에&amp;nbsp;들어온다.) &lt;br /&gt;&lt;br /&gt;여우:&amp;nbsp;저기,&amp;nbsp;여긴&amp;nbsp;휴대폰&amp;nbsp;대리점이지?&amp;nbsp;나도&amp;nbsp;휴대폰을&amp;nbsp;수리해야&amp;nbsp;해서&amp;nbsp;왔어. &lt;br /&gt;&lt;br /&gt;사자:&amp;nbsp;맞아,&amp;nbsp;여우!&amp;nbsp;우리도&amp;nbsp;여기&amp;nbsp;왔어.&amp;nbsp;무슨&amp;nbsp;문제가&amp;nbsp;생겼어? &lt;br /&gt;&lt;br /&gt;여우:&amp;nbsp;내&amp;nbsp;휴대폰&amp;nbsp;스피커에서&amp;nbsp;이상한&amp;nbsp;소리가&amp;nbsp;나와서&amp;nbsp;왔어.&amp;nbsp;다른&amp;nbsp;사람들은&amp;nbsp;어떤&amp;nbsp;문제인지&amp;nbsp;아니? &lt;br /&gt;&lt;br /&gt;원숭이:&amp;nbsp;나는&amp;nbsp;터치스크린&amp;nbsp;문제야. &lt;br /&gt;&lt;br /&gt;개구리:&amp;nbsp;나는&amp;nbsp;배터리&amp;nbsp;문제야. &lt;br /&gt;&lt;br /&gt;코끼리:&amp;nbsp;나는&amp;nbsp;전원&amp;nbsp;문제야. &lt;br /&gt;&lt;br /&gt;(사자가&amp;nbsp;대리점&amp;nbsp;직원에게&amp;nbsp;다가가서&amp;nbsp;상담을&amp;nbsp;한다.) &lt;br /&gt;&lt;br /&gt;사자:&amp;nbsp;죄송해요,&amp;nbsp;우리&amp;nbsp;다섯&amp;nbsp;명&amp;nbsp;모두&amp;nbsp;휴대폰&amp;nbsp;문제로&amp;nbsp;왔어요.&amp;nbsp;도와주실&amp;nbsp;수&amp;nbsp;있을까요? &lt;br /&gt;&lt;br /&gt;대리점&amp;nbsp;직원:&amp;nbsp;물론이죠.&amp;nbsp;각각의&amp;nbsp;문제를&amp;nbsp;검토해&amp;nbsp;보고&amp;nbsp;최대한&amp;nbsp;빨리&amp;nbsp;해결해드릴게요. &lt;br /&gt;&lt;br /&gt;(연극은&amp;nbsp;계속되며,&amp;nbsp;사자,&amp;nbsp;코끼리,&amp;nbsp;개구리,&amp;nbsp;원숭이,&amp;nbsp;여우는&amp;nbsp;대리점&amp;nbsp;직원과&amp;nbsp;함께&amp;nbsp;휴대폰을&amp;nbsp;수리하는&amp;nbsp;과정을&amp;nbsp;보여준다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-11-22 180625.png&quot; data-origin-width=&quot;1054&quot; data-origin-height=&quot;1386&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZirqD/btsAGRnXzYe/yswFv3OHAVkDZfqKs3fFpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZirqD/btsAGRnXzYe/yswFv3OHAVkDZfqKs3fFpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZirqD/btsAGRnXzYe/yswFv3OHAVkDZfqKs3fFpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZirqD%2FbtsAGRnXzYe%2FyswFv3OHAVkDZfqKs3fFpK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1054&quot; height=&quot;1386&quot; data-filename=&quot;스크린샷 2023-11-22 180625.png&quot; data-origin-width=&quot;1054&quot; data-origin-height=&quot;1386&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>python</category>
      <author>다만사</author>
      <guid isPermaLink="true">https://damansa1.tistory.com/86</guid>
      <comments>https://damansa1.tistory.com/86#entry86comment</comments>
      <pubDate>Wed, 22 Nov 2023 18:08:12 +0900</pubDate>
    </item>
    <item>
      <title>챗gpt 전체소스</title>
      <link>https://damansa1.tistory.com/85</link>
      <description>&lt;div style=&quot;background-color: #ffffff; color: #080808;&quot;&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;tkinter &lt;span style=&quot;color: #0033b3;&quot;&gt;as &lt;/span&gt;tk&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;io &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;BytesIO&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;tkinter &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;ttk&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;openai&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;os&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;requests&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;from &lt;/span&gt;PIL &lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;Image, ImageTk&lt;br /&gt;&lt;br /&gt;API_KEY = os.environ.get(&lt;span style=&quot;color: #067d17;&quot;&gt;'OPENAI_API_KEY'&lt;/span&gt;)&lt;br /&gt;openai.api_key = API_KEY&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;def &lt;/span&gt;&lt;span style=&quot;color: #00627a;&quot;&gt;generateImage&lt;/span&gt;(animal1, animal2, scenario):&lt;br /&gt;response = openai.Image.create(&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;model&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;'dall-e-3'&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;#prompt=f&quot;cartoon image of a {animal1} and a {animal2} discussing {scenario}&quot;,&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #660099;&quot;&gt;prompt&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;f&quot;&lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;animal1&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;와&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;과&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;animal2&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;가&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;이&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;scenario&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;에서 이야기하고 있는 카툰 이미지&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;n&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;size&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;1024x1024&quot;&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;response_format&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;url&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt; &lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;image_url = response.data[&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;][&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;url&quot;&lt;/span&gt;]&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;return &lt;/span&gt;image_url&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;def &lt;/span&gt;&lt;span style=&quot;color: #00627a;&quot;&gt;update_label_with_new_image&lt;/span&gt;(label, photo):&lt;br /&gt;label.config(&lt;span style=&quot;color: #660099;&quot;&gt;image&lt;/span&gt;=photo)&lt;br /&gt;label.image = photo&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;def &lt;/span&gt;&lt;span style=&quot;color: #00627a;&quot;&gt;display_image_from_url&lt;/span&gt;(image_holder, url):&lt;br /&gt;response = requests.get(url)&lt;br /&gt;image_data = BytesIO(response.content)&lt;br /&gt;&lt;br /&gt;image = Image.open(image_data)&lt;br /&gt;photo = ImageTk.PhotoImage(image)&lt;br /&gt;&lt;br /&gt;update_label_with_new_image(image_holder, photo)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;def &lt;/span&gt;&lt;span style=&quot;color: #00627a;&quot;&gt;submit&lt;/span&gt;():&lt;br /&gt;animal1 = combo1.get()&lt;br /&gt;animal2 = combo2.get()&lt;br /&gt;scenario = entry_box.get()&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# &lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;사자와 판다사이에 각각의 동물이 서로 말을 주고받는&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; 10&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;줄의 연극대본을 작성하여라&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;작성할 시나리오는 다음과 같다&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;그들이 만나는 장소&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;스타벅스&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# prompt = f&quot;Create a play between a {animal1} and a {animal2} with 10 lines of dialog with each animal taking &quot; \&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; # f&quot;turns to speak. Hear the scenario in which they will engage: {scenario}\n&quot;;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; &lt;/span&gt;prompt = &lt;span style=&quot;color: #067d17;&quot;&gt;f&quot;&lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;animal1&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;와&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;과&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;animal2&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;사이에 각각의 동물이 서로 말을 주고받는&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt; 10&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;줄의 연극대본을 작성하여라&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;작성할 시나리오는 다음과 같다&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;그들이 만나는 장소&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;scenario&lt;span style=&quot;color: #0037a6;&quot;&gt;}\n&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt; &lt;/span&gt;messages = [{&lt;span style=&quot;color: #067d17;&quot;&gt;'role'&lt;/span&gt;: &lt;span style=&quot;color: #067d17;&quot;&gt;'user'&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;'content'&lt;/span&gt;: prompt}]&lt;br /&gt;response = openai.ChatCompletion.create(&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;model&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;gpt-3.5-turbo&quot;&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;messages &lt;/span&gt;= messages,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;temperature&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0.8&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;presence_penalty&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0.6&lt;/span&gt;,&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;chatGPTAnswer = response[&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;choices&quot;&lt;/span&gt;][&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;][&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;message&quot;&lt;/span&gt;][&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;content&quot;&lt;/span&gt;]&lt;br /&gt;&lt;span style=&quot;color: #000080;&quot;&gt;print&lt;/span&gt;(chatGPTAnswer)&lt;br /&gt;&lt;br /&gt;result_text.config(&lt;span style=&quot;color: #660099;&quot;&gt;state&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;normal&quot;&lt;/span&gt;)&lt;br /&gt;result_text.delete(&lt;span style=&quot;color: #1750eb;&quot;&gt;1.0&lt;/span&gt;, tk.END) &lt;span style=&quot;color: #8c8c8c;&quot;&gt;# Clear any previous results&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; # result_text.insert(tk.END, f&quot;Animal 1: {animal1}\n&quot;)&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; # result_text.insert(tk.END, f&quot;Animal 2: {animal2}\n&quot;)&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; # result_text.insert(tk.END, f&quot;Discussion scenario: {scenario}\n&quot;)&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; &lt;/span&gt;result_text.insert(tk.END, chatGPTAnswer)&lt;br /&gt;result_text.config(&lt;span style=&quot;color: #660099;&quot;&gt;state&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;disabled&quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;image_url = generateImage(animal1, animal2, scenario)&lt;br /&gt;display_image_from_url(image_holder, image_url)&lt;br /&gt;&lt;br /&gt;app = tk.Tk()&lt;br /&gt;app.title(&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Animal Discussion Scenario&quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# Label and ComboBox for the first animal&lt;br /&gt;&lt;/span&gt;label1 = ttk.Label(app, &lt;span style=&quot;color: #660099;&quot;&gt;text&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Select Animal 1:&quot;&lt;/span&gt;)&lt;br /&gt;label1.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;)&lt;br /&gt;combo1 = ttk.Combobox(app, &lt;span style=&quot;color: #660099;&quot;&gt;values&lt;/span&gt;=[&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;사자&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;코끼리&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;기린&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;캥거루&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;판다&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;])&lt;br /&gt;combo1.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;)&lt;br /&gt;combo1.set(&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;사자&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;#Label and ComboBox for the second animal&lt;br /&gt;&lt;/span&gt;label2 = ttk.Label(app, &lt;span style=&quot;color: #660099;&quot;&gt;text&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Select Animal 2:&quot;&lt;/span&gt;)&lt;br /&gt;label2.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;)&lt;br /&gt;combo2 = ttk.Combobox(app, &lt;span style=&quot;color: #660099;&quot;&gt;values&lt;/span&gt;=[&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;사자&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;코끼리&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;기린&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;캥거루&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;판다&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;])&lt;br /&gt;combo2.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;)&lt;br /&gt;combo2.set(&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;코끼리&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# Label and Entry for entering the discussion scenario&lt;br /&gt;&lt;/span&gt;label3 = ttk.Label(app, &lt;span style=&quot;color: #660099;&quot;&gt;text&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Enter Discussion Scenario:&quot;&lt;/span&gt;)&lt;br /&gt;label3.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;2&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;)&lt;br /&gt;entry_box = ttk.Entry(app, &lt;span style=&quot;color: #660099;&quot;&gt;width&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;30&lt;/span&gt;)&lt;br /&gt;entry_box.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;2&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# Button to submit the details&lt;br /&gt;&lt;/span&gt;submit_btn = ttk.Button(app, &lt;span style=&quot;color: #660099;&quot;&gt;text&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;Submit&quot;&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;command&lt;/span&gt;=submit)&lt;br /&gt;submit_btn.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;3&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;20&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# scrollbar&lt;br /&gt;&lt;/span&gt;scrollbar = tk.Scrollbar(app)&lt;br /&gt;scrollbar.grid(&lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;4&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;3&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;sticky&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;'ns'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;# Text widget to display results&lt;br /&gt;&lt;/span&gt;result_text = tk.Text(app, &lt;span style=&quot;color: #660099;&quot;&gt;width&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;40&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;height&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;wrap&lt;/span&gt;=tk.WORD, &lt;span style=&quot;color: #660099;&quot;&gt;yscrollcommand&lt;/span&gt;=scrollbar.set)&lt;br /&gt;result_text.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;4&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;columnspan&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;2&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;scrollbar.config(&lt;span style=&quot;color: #660099;&quot;&gt;command&lt;/span&gt;=result_text.yview)&lt;br /&gt;&lt;br /&gt;image_holder = tk.Label(app)&lt;br /&gt;image_holder.grid(&lt;span style=&quot;color: #660099;&quot;&gt;column&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;row&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;5&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;columnspan&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;4&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;padx&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;, &lt;span style=&quot;color: #660099;&quot;&gt;pady&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;10&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;app.mainloop()&lt;/div&gt;</description>
      <category>python</category>
      <author>다만사</author>
      <guid isPermaLink="true">https://damansa1.tistory.com/85</guid>
      <comments>https://damansa1.tistory.com/85#entry85comment</comments>
      <pubDate>Wed, 22 Nov 2023 14:30:34 +0900</pubDate>
    </item>
    <item>
      <title>dall-e-3 image 생성 - 한국어로 변경</title>
      <link>https://damansa1.tistory.com/84</link>
      <description>&lt;div style=&quot;background-color: #ffffff; color: #080808;&quot;&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;openai&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;os&lt;br /&gt;&lt;br /&gt;API_KEY = os.environ.get(&lt;span style=&quot;color: #067d17;&quot;&gt;'OPENAI_API_KEY'&lt;/span&gt;)&lt;br /&gt;openai.api_key = API_KEY&lt;br /&gt;model_engine = &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;dall-e-3&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;def &lt;/span&gt;&lt;span style=&quot;color: #00627a;&quot;&gt;generateImage&lt;/span&gt;(animal1, animal2, scenario):&lt;br /&gt;response = openai.Image.create(&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;model&lt;/span&gt;=model_engine,&lt;br /&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt;#prompt=f&quot;cartoon image of a {animal1} and a {animal2} discussing {scenario}&quot;,&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #8c8c8c;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #660099;&quot;&gt;prompt&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;f&quot;&lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;animal1&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;와&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;과&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;animal2&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;가&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;이&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;scenario&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;에서 이야기하고 있는 카툰 이미지&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;n&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;size&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;1024x1024&quot;&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;response_format&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;url&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt; &lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;image_url = response.data[&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;][&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;url&quot;&lt;/span&gt;]&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;return &lt;/span&gt;image_url&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;url = generateImage(&lt;span style=&quot;color: #067d17;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;호랑이&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;'&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;러시안 블루 고양이&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;'&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;스타벅스&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;'&lt;/span&gt;)&lt;br /&gt;&lt;span style=&quot;color: #000080;&quot;&gt;print&lt;/span&gt;(url)&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #080808;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #080808;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img-gu7bp98Q21G7weHQBXBNTcT9.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZ11Y3/btsAHYfDKjH/sSD6z6PRiLHmKYK7ZKX120/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZ11Y3/btsAHYfDKjH/sSD6z6PRiLHmKYK7ZKX120/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZ11Y3/btsAHYfDKjH/sSD6z6PRiLHmKYK7ZKX120/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZ11Y3%2FbtsAHYfDKjH%2FsSD6z6PRiLHmKYK7ZKX120%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;1024&quot; data-filename=&quot;img-gu7bp98Q21G7weHQBXBNTcT9.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;</description>
      <category>python</category>
      <author>다만사</author>
      <guid isPermaLink="true">https://damansa1.tistory.com/84</guid>
      <comments>https://damansa1.tistory.com/84#entry84comment</comments>
      <pubDate>Wed, 22 Nov 2023 13:23:56 +0900</pubDate>
    </item>
    <item>
      <title>dall-e-3를 활용한 이미지 생성</title>
      <link>https://damansa1.tistory.com/83</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;변경api 소스는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://platform.openai.com/docs/guides/images/usage?context=node&quot;&gt;Image generation - OpenAI API&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #080808;&quot;&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;openai&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;import &lt;/span&gt;os&lt;br /&gt;&lt;br /&gt;API_KEY = os.environ.get(&lt;span style=&quot;color: #067d17;&quot;&gt;'OPENAI_API_KEY'&lt;/span&gt;)&lt;br /&gt;openai.api_key = API_KEY&lt;br /&gt;model_engine = &lt;span style=&quot;color: #067d17;&quot;&gt;&quot;dall-e-3&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;def &lt;/span&gt;&lt;span style=&quot;color: #00627a;&quot;&gt;generateImage&lt;/span&gt;(animal1, animal2, scenario):&lt;br /&gt;response = openai.Image.create(&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;model&lt;/span&gt;=model_engine,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;prompt&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;f&quot;cartoon image of a &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;animal1&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt; and a &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;animal2&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt; discussing &lt;/span&gt;&lt;span style=&quot;color: #0037a6;&quot;&gt;{&lt;/span&gt;scenario&lt;span style=&quot;color: #0037a6;&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;n&lt;/span&gt;=&lt;span style=&quot;color: #1750eb;&quot;&gt;1&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;size&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;1024x1024&quot;&lt;/span&gt;,&lt;br /&gt;&lt;span style=&quot;color: #660099;&quot;&gt;response_format&lt;/span&gt;=&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;url&quot;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #067d17;&quot;&gt; &lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;image_url = response.data[&lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;][&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;url&quot;&lt;/span&gt;]&lt;br /&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;return &lt;/span&gt;image_url&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;url = generateImage(&lt;span style=&quot;color: #067d17;&quot;&gt;'Lion'&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;'Elephant'&lt;/span&gt;, &lt;span style=&quot;color: #067d17;&quot;&gt;'Baseball park'&lt;/span&gt;)&lt;br /&gt;&lt;span style=&quot;color: #000080;&quot;&gt;print&lt;/span&gt;(url)&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img-gXNFcxux0FGHtjHwKjWAjjcD.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dYxbNL/btsAGYAcXvX/UmR5cxXM6m0gXteuky1Dpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dYxbNL/btsAGYAcXvX/UmR5cxXM6m0gXteuky1Dpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dYxbNL/btsAGYAcXvX/UmR5cxXM6m0gXteuky1Dpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdYxbNL%2FbtsAGYAcXvX%2FUmR5cxXM6m0gXteuky1Dpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;1024&quot; data-filename=&quot;img-gXNFcxux0FGHtjHwKjWAjjcD.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>python</category>
      <author>다만사</author>
      <guid isPermaLink="true">https://damansa1.tistory.com/83</guid>
      <comments>https://damansa1.tistory.com/83#entry83comment</comments>
      <pubDate>Wed, 22 Nov 2023 13:17:22 +0900</pubDate>
    </item>
    <item>
      <title>Python 챗GPT 개발환경(4세대 12기가 윈10)</title>
      <link>https://damansa1.tistory.com/82</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;파이참을 쓸수없는 극한의 상황이라면,(현재상황)&lt;br&gt;아나콘다에 쥬피터에 서브라임 에디터를 추천한다.&lt;br&gt;서브라임 에디터 자체는무료는 아니지만, 기능제약없이 무료(?)로 사용가능하다.&lt;br&gt;&amp;nbsp;&lt;br&gt;참고로 윈도우 스토어에서 파이썬은 설치해 두었다.&lt;br&gt;아나콘다는 2022년 5월버전을 설치하였다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://repo.anaconda.com/archive/&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://repo.anaconda.com/archive/&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;그리고 D드라이브에 설치위치를 지정한 후&lt;br&gt;사용하면 된다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>python</category>
      <author>다만사</author>
      <guid isPermaLink="true">https://damansa1.tistory.com/82</guid>
      <comments>https://damansa1.tistory.com/82#entry82comment</comments>
      <pubDate>Mon, 20 Nov 2023 00:29:50 +0900</pubDate>
    </item>
    <item>
      <title>ChatGPT 연결코드 수정</title>
      <link>https://damansa1.tistory.com/81</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;from&amp;nbsp;openai&amp;nbsp;import&amp;nbsp;OpenAI &lt;br /&gt;import&amp;nbsp;os &lt;br /&gt;&lt;br /&gt;API_KEY&amp;nbsp;=&amp;nbsp;os.environ.get('OPEN_API_KEY') &lt;br /&gt;#&amp;nbsp;openai.api_key&amp;nbsp;=&amp;nbsp;API_KEY &lt;br /&gt;&lt;br /&gt;model_engine = &quot;gpt-3.5-turbo&quot;&amp;nbsp; # gpt-4로도 사용가능...&lt;br /&gt;prompt&amp;nbsp;=&amp;nbsp;&quot;오라클에&amp;nbsp;대해&amp;nbsp;설명해줘&quot; &lt;br /&gt;&lt;br /&gt;client&amp;nbsp;=&amp;nbsp;OpenAI( &lt;br /&gt;api_key&amp;nbsp;=&amp;nbsp;API_KEY, &lt;br /&gt;) &lt;br /&gt;messages&amp;nbsp;=&amp;nbsp;[{'role':'user',&amp;nbsp;'content':&amp;nbsp;prompt}] &lt;br /&gt;&lt;br /&gt;response&amp;nbsp;=&amp;nbsp;client.chat.completions.create( &lt;br /&gt;model=model_engine, &lt;br /&gt;messages=messages, &lt;br /&gt;temperature=0.8, &lt;br /&gt;presence_penalty=0.6) &lt;br /&gt;&lt;br /&gt;chatGPTAnswer&amp;nbsp;=&amp;nbsp;response.choices[0].message.content &lt;br /&gt;print(chatGPTAnswer)&lt;/p&gt;</description>
      <category>python</category>
      <author>다만사</author>
      <guid isPermaLink="true">https://damansa1.tistory.com/81</guid>
      <comments>https://damansa1.tistory.com/81#entry81comment</comments>
      <pubDate>Mon, 20 Nov 2023 00:17:19 +0900</pubDate>
    </item>
  </channel>
</rss>