β
μ€λ¬΄μ© ꡬμ±:
- μΈμ΄: Python
- μ¬μ© λͺ©μ : λλ©΄ λ³κ²½ μ΄λ ₯(ECN) μμ½ μλν
- GPT λͺ¨λΈ:
gpt-4
- μ°λ ꡬ쑰: PLM β λ΄λΆ REST API β GPT API νΈμΆ β μμ½ κ²°κ³Ό λ°ν
π 1. REST API ꡬ쑰 μ€κ³
plaintext
[Client/PLM μμ€ν
] β POST /summarize-ecn β [Python Server] β OpenAI GPT API β μλ΅
π μλν¬μΈνΈ μμ
λ©μλ | κ²½λ‘ | μ€λͺ
|
---|
POST | /summarize-ecn | λλ©΄ λ³κ²½ μ΄λ ₯ μμ½ μμ² μ²λ¦¬ |
POST | /translate-ecn | ECN μ€λͺ
λ€κ΅μ΄ λ²μ |
POST | /extract-tags | μ£Όμ μ€κ³ ν€μλ μΆμΆ |
π§ͺ 2. Python μλ² μμ (Flask + OpenAI API)
python
from flask import Flask, request, jsonify
import openai
import os
app = Flask(__name__)
# OpenAI ν€ μ€μ (νκ²½ λ³μ λλ config)
openai.api_key = os.getenv("OPENAI_API_KEY")
@app.route('/summarize-ecn', methods=['POST'])
def summarize_ecn():
data = request.json
ecn_text = data.get("ecn_text", "")
prompt = f"""
μλλ λλ©΄ λ³κ²½ μ΄λ ₯(ECN)μ
λλ€. ν΅μ¬ λ³κ²½ μ¬νμ μμ½ν΄μ μ€λͺ
ν΄μ€.
--- λ³κ²½ μ΄λ ₯ μλ¬Έ ---
{ecn_text}
--- μμ½λ λ³κ²½μ¬ν ---
"""
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "user", "content": prompt}
],
temperature=0.3,
)
summary = response.choices[0].message.content
return jsonify({"summary": summary})
if __name__ == '__main__':
app.run(port=5000)
π¬ 3. μ€λ¬΄ μλλ¦¬μ€ κΈ°λ° GPT ν둬ννΈ μμ
βΆοΈ μλλ¦¬μ€ 1: ECN μμ½
text
[ν둬ννΈ ν
νλ¦Ώ]
λλ©΄ λ³κ²½ μ΄λ ₯μ μλμ κ°μ΄ μ 리ν΄μ€:
- μ΄λ€ λΆνμ΄ μμ λμλκ°?
- μ΄λ€ λͺ©μ (κΈ°λ₯ κ°μ , ν
μ€νΈ λμ λ±)μΌλ‘ λ³κ²½λμλκ°?
- μ£Όμ λ³κ²½μ 3μ€ μ΄λ΄λ‘ μ€λͺ
μ
λ ₯ μλ¬Έ:
{ecn_text}
βΆοΈ μλλ¦¬μ€ 2: μμ°μ΄ κ²μ β 쿼리 λ³ν
text
[μ¬μ©μ μ
λ ₯]
"2023λ
8μμ―€μ μ»€λ² νλ μ΄νΈ ν λ³κ²½λ λλ©΄ μ°Ύμμ€"
[GPT ν둬ννΈ]
μ λ¬Έμ₯μμ μλ―Έ μλ ν€μλλ₯Ό μΆμΆν΄μ λ€μκ³Ό κ°μ PLM κ²μ μΏΌλ¦¬λ‘ λ³νν΄μ€:
- λλ©΄λͺ
: μ»€λ² νλ μ΄νΈ
- λ³κ²½λ΄μ©: ν λ³κ²½
- λ μ§ μ‘°κ±΄: 2023λ
8μ Β±1κ°μ
μ΄λ κ² κ΅¬μ‘°νλ ννλ‘ μΆλ ₯ν΄μ€:
{
"part_name": "μ»€λ² νλ μ΄νΈ",
"change_keyword": "ν λ³κ²½",
"date_range": ["2023-07-01", "2023-09-30"]
}
βΆοΈ μλλ¦¬μ€ 3: λ€κ΅μ΄ μ€κ³ λ³κ²½ λ©μμ§ μμ±
text
[μμ² λ΄μ©]
ECN λ΄μ©: "μμ§ λ§μ΄νΈ μμΉλ₯Ό 10mm μ°μΈ‘μΌλ‘ μ΄λνμ¬ κ°λ ν
μ€νΈ λμ"
[ν둬ννΈ]
λ€μ λ¬Έμ₯μ μμ΄, λ
μΌμ΄λ‘ κΈ°μ μ λμμ€λ₯Ό μ΄λ €μ λ²μν΄μ€:
- μλ¬Έ: {ecn_text}
- λ²μ:
- μμ΄:
- λ
μΌμ΄:
π 4. 보μ λ° μ΄μ ν
νλͺ© | μ€λͺ
|
---|
API ν€ λ³΄μ | μλ²μμ νκ²½ λ³μλ‘ κ΄λ¦¬ (os.getenv ) |
μμ² λ‘κ·Έ | GPT νΈμΆ μ ν μμ²/μλ΅ λ‘κ·Έ μ μ₯ νμ |
λΉκ³΅κ° μ 보 λ³΄νΈ | λλ©΄ μλ¬Έμ κ·Έλλ‘ λ³΄λ΄μ§ λ§κ³ μμ½ λ²μ /λ§μ€νΉ μ²λ¦¬ κΆμ₯ |
νμμμ μ€μ | GPT μλ΅ μ§μ° λλΉ timeout μ²λ¦¬ νμ |
π 5. νμ₯ μμ΄λμ΄
κΈ°λ₯ | μ€λͺ
|
---|
π§ ECN μμ½ μλ μ μ₯ | μμ½ λ΄μ©μ PLM μμ€ν
μ μ½λ©νΈλμ μλ μ μ₯ |
π μλ λ³΄κ³ μ μμ± | μ¬λ¬ ECNμ μ 리ν΄μ PDF λ¬Έμ μλ μμ± |
π μλ―Έ κΈ°λ° κ²μ | GPTλ₯Ό ν΅ν΄ μ μ¬ν λ³κ²½ μ΄λ ₯ μΆμ² |
π¬ νμ
λ©μΌ μλ μμ± | GPTκ° μμ½ β ν
νλ¦Ώ μμ± β λ©μΌλ‘ μ μ‘κΉμ§ μλν |
β
κ²°λ‘
ChatGPT APIλ₯Ό PLM λλ©΄κ΄λ¦¬ μμ€ν
μ μ°λνλ©΄,
κΈ°μ‘΄μ λ¬Έμ κΈ°λ° μ€κ³ λ³κ²½ μ
무λ₯Ό μ€λ§νΈ μμ½Β·κ²μΒ·μΈμ΄μ²λ¦¬ κΈ°λ°μΌλ‘ μ§νμν¬ μ μμ΅λλ€.
GPTλ λ¨μν λνν AIκ° μλλΌ,
PLMμ ν΅μ¬ λ°μ΄ν° νλ¦ μμμ μ€κ³μ λ§₯λ½μ μ½κ³ , μμ½νκ³ , μ λ¬νλ μ§μ λΉμλ‘ μλν μ μμ΅λλ€.