[Plant Simulation Study #20] – Plant Simulation ์—์„œ ChatGPT ํ™œ์šฉํ•œ ๋””์ง€ํ„ธ ํŠธ์œˆ ๊ณต์ • ์ œ์–ด ์‹œ๋ฎฌ๋ ˆ์ด์…˜ (์ž์œจ๊ณต์žฅ ๊ตฌํ˜„ ์˜ˆ์ œ)

๋ฐ˜์‘ํ˜•

๐Ÿงช [Plant Simulation Study #20] – ChatGPT ํ™œ์šฉํ•œ ๋””์ง€ํ„ธ ํŠธ์œˆ ๊ณต์ • ์ œ์–ด ์‹œ๋ฎฌ๋ ˆ์ด์…˜ (์ž์œจ๊ณต์žฅ ๊ตฌํ˜„ ์˜ˆ์ œ)

๐ŸŽฌ ๊ฐœ์š”

์ด๋ฒˆ Study์—์„œ๋Š” Siemens Plant Simulation๊ณผ OpenAI์˜ ChatGPT API๋ฅผ ์—ฐ๊ฒฐํ•ด
AI๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ณต์ •์„ ํŒ๋‹จํ•˜๊ณ , ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ชจ๋ธ์„ ์ž์œจ์ ์œผ๋กœ ์ œ์–ดํ•˜๋Š” ๋””์ง€ํ„ธ ํŠธ์œˆ ๊ตฌ์กฐ๋ฅผ ์‹คํ—˜ํ•ฉ๋‹ˆ๋‹ค.

Python๊ณผ ChatGPT๋ฅผ ํ™œ์šฉํ•ด, ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ
์ปจ๋ฒ ์ด์–ด ํ๋ฆ„ ์ œ์–ด, ๋ณ€์ˆ˜ ์ž๋™ ์กฐ์ •, ์ƒํ™ฉ ์ธ์‹ ๊ธฐ๋ฐ˜ ๊ฒฐ์ • ๋กœ์ง์„
AI๊ฐ€ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด ์‹คํ—˜์€ ๋‹จ์ˆœํ•œ ์ž๋™ํ™” ๋ชจ๋ธ์„ ๋„˜์–ด์„œ,
์ž์œจ๊ณต์žฅ(AI-operated Smart Factory) ๊ฐœ๋…์— ๊ฐ€๊นŒ์šด ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.

 

์œ ํŠœ๋ธŒ ๋งํฌ : https://youtu.be/mDQOXU9y6mk

 


๐Ÿ’ป ์—ฐ๋™ ๊ตฌ์กฐ ๋ฐ ํ•ต์‹ฌ ๊ตฌํ˜„

๊ตฌ์„ฑ์š”์†Œ์„ค๋ช…
๊ธฐ์ˆ  ์Šคํƒ Plant Simulation + Python + OpenAI ChatGPT API
ํ•ต์‹ฌ ๋ชฉ์  AI ๊ธฐ๋ฐ˜ ์ถœ๊ตฌ ์ „๋žต(Exit Strategy) ์ œ์–ด
ํ†ต์‹  ๋ฐฉ์‹ Python → ChatGPT API ํ˜ธ์ถœ → ์‘๋‹ต๊ฐ’ → ๋ณ€์ˆ˜ ์ ์šฉ
์ฃผ๊ธฐ ์‹คํ–‰ 5์ดˆ๋งˆ๋‹ค Python ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ (๋ฃจํ”„ ์—ฐ๋™)

๐Ÿ”ง Python ๋‚ด ํ•ต์‹ฌ ์ฝ”๋“œ

import openai
import pandas as pd

obj = root.EXIT_Seq_SET.Value
set_A = root.Con1_nummu.Value
set_B = root.Con2_nummu.Value

# OpenAI API ํ‚ค ์„ค์ •
api_key = "PUT API HERE"  # ์—ฌ๊ธฐ์— ์‹ค์ œ OpenAI API ํ‚ค๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.
openai.api_key = api_key

# ChatGPT API ํ˜ธ์ถœ ํ•จ์ˆ˜
def chat_with_gpt(prompt, model="gpt-4", temperature=0):
    response = openai.ChatCompletion.create(
        model=model,
        messages=[
            {"role": "system", "content": "You are a decision-making assistant."},
            {"role": "user", "content": prompt}
        ],
        temperature=temperature
    )
    return response.choices[0].message['content'].strip()

# ํ”„๋กฌํ”„ํŠธ ์„ค์ •
user_input = f"""
Con1 ์œ„ ์ œํ’ˆ ๊ฐœ์ˆ˜ :
{set_A}
Con2 ์œ„ ์ œํ’ˆ ๊ฐœ์ˆ˜ :
{set_B}

0. ์•„๋ž˜ ์กฐ๊ฑด๋“ค์„ ํ™•์ธํ•˜๊ณ  Con1 ๊ณผ Con2 ์ค‘ ํ•œ ๊ณณ์„ ์ถœ๋ ฅํ•ด๋ผ.
1. if {set_A} > {set_B} , Con1 ์ถœ๋ ฅ
2. if {set_A} < {set_B} , Con2 ์ถœ๋ ฅ
2. if {set_A} = {set_B} , Con2 or Con1 50% ํ™•๋ฅ ๋กœ ๋žœ๋ค ์ถœ๋ ฅ
5. ์„ค๋ช… ์—†์ด ์ •ํ™•ํžˆ ๋‘˜์ค‘ ํ•˜๋‚˜์˜ ์ด๋ฆ„๋งŒ ์ ์–ด์ฃผ์„ธ์š”.
"""

# API ํ˜ธ์ถœ ๋ฐ ์‘๋‹ต์„ obj ๋ณ€์ˆ˜์— ์ €์žฅ
try:
    reply = chat_with_gpt(user_input)
    
    print("๐Ÿ”น ChatGPT Answer (์›๋ณธ):\n", reply)

    # ์‘๋‹ต์„ obj ๋ณ€์ˆ˜์— ์ง์ ‘ ์ €์žฅ
    obj = reply  # ๊ธฐ๋Œ€ํ•œ ๋‹จ์ผ ๊ฐ’์ธ A1, A2, A3, A4, A5 ์ค‘ ํ•˜๋‚˜๋ฅผ ์ €์žฅ
    print("๐Ÿ”น done:", obj)

except Exception as e:
    print("API ํ˜ธ์ถœ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ:", str(e))

root.EXIT_Seq_SET.value = obj
  • prompt์—๋Š” ํ˜„์žฌ ๊ณต์ • ์ƒํƒœ์™€ ์‹œ๋‚˜๋ฆฌ์˜ค ๋งฅ๋ฝ์ด ํฌํ•จ๋จ
  • ์‘๋‹ต ๊ฒฐ๊ณผ์—์„œ ๋ณ€์ˆ˜๊ฐ’(์˜ˆ: Con1, Con2)์„ ํŒŒ์‹ฑํ•˜์—ฌ
    Plant Simulation ๋‚ด์— ์ ์šฉ → ์‹ค์ œ ๋ผ์ธ ๋™์ž‘ ๋ณ€๊ฒฝ

๐Ÿงช ์‹คํ–‰ ํ๋ฆ„ ๋ฐ ์‹œ์—ฐ

  1. Python Script ์‹คํ–‰  
    • 5์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ChatGPT์— ํ˜„์žฌ ์ƒํƒœ ์ „๋‹ฌ
    • "Run Python (5 Sec Interval)" ์„ค์ •
  2. ChatGPT ์‘๋‹ต ํ™•์ธ
    • ๋ชจ๋ธ ์˜ค๋ฅธ์ชฝ ๋กœ๊ทธ ์ฐฝ์— ์‹ค์‹œ๊ฐ„ ์‘๋‹ต ํ‘œ์‹œ
    • "Answered by ChatGPT" ์ถœ๋ ฅ๋จ
  3. ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ชจ๋ธ ์ œ์–ด
    • ์‘๋‹ต ๋‚ด์šฉ์— ๋”ฐ๋ผ Con1, Con2 ๋ณ€์ˆ˜ ์ œ์–ด
    • ์ปจ๋ฒ ์ด์–ด ํ๋ฆ„์ด ๋ฐ”๋€Œ๋ฉฐ ์‹ค์ œ ๋ชจ๋ธ ๋™์ž‘๋„ ๋ณ€๊ฒฝ๋จ
    • "Line Operated by ChatGPT" ๋ผ๋ฒจ ํ‘œ์‹œ

 


๐Ÿ“ˆ ๊ธฐ๋Œ€ ํšจ๊ณผ ๋ฐ ์‘์šฉ ์‚ฌ๋ก€

โœ… ์Šค๋งˆํŠธํŒฉํ† ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ต์œก ์ฝ˜ํ…์ธ ๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅ
โœ… ๋””์ง€ํ„ธ ํŠธ์œˆ ๊ธฐ๋ฐ˜์˜ AI ์ œ์–ด ์ „๋žต ์‚ฌ์ „ ๊ฒ€์ฆ ๋ชจ๋ธ๋ง
โœ… ChatGPT๋ฅผ ์ด์šฉํ•œ ์˜์‚ฌ๊ฒฐ์ • ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌ์ถ•
โœ… ํ–ฅํ›„ RAG / GPT Agents ์™€ ๊ฒฐํ•ฉ ์‹œ ๋™์  ์‹œ๋‚˜๋ฆฌ์˜ค ์ƒ์„ฑ ๊ฐ€๋Šฅ


๐Ÿง  ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ

์ด๋ฒˆ Study๋Š” LLM(Large Language Model)์ธ ChatGPT๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ณต์ • ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์ง€๋Šฅ์ ์œผ๋กœ ์ œ์–ดํ•œ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.
์‹œ๋ฎฌ๋ ˆ์ด์…˜์€ ๋” ์ด์ƒ ์‚ฌ๋žŒ์ด ์ผ์ผ์ด ์ œ์–ดํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ์•„๋‹ˆ๋ผ,
AI์™€ ํ˜‘์—…ํ•˜์—ฌ ์Šค์Šค๋กœ ํŒ๋‹จํ•˜๊ณ  ์›€์ง์ด๋Š” ๋””์ง€ํ„ธ ํŠธ์œˆ ์‹คํ—˜ ํ™˜๊ฒฝ์œผ๋กœ ์ง„ํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•