File size: 1,824 Bytes
cae20fa
 
 
4e06a3b
9e67c31
cae20fa
 
 
9e67c31
cae20fa
 
4e06a3b
 
 
 
 
 
 
 
9e67c31
4e06a3b
 
 
 
 
 
9e67c31
4e06a3b
cae20fa
9e67c31
 
cae20fa
 
9e67c31
cae20fa
 
4e06a3b
 
9e67c31
 
4e06a3b
9e67c31
cae20fa
9e67c31
cae20fa
 
 
 
 
 
 
9e67c31
cae20fa
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# app.py
import argparse
from flask import Flask, request, jsonify
from huggingface_hub import InferenceClient

# ๋ชจ๋ธ ์„ค์ •
MODEL_NAME = "gpt4o-1106"  # Hugging Face ํ•œ๊ตญ์–ด ํŠนํ™” ๋ชจ๋ธ
CLIENT = InferenceClient(model=MODEL_NAME)

# ํ”„๋กฌํ”„ํŠธ ์„ค์ •
PROMPT = """
## ๐Ÿ“‹ AI ์‹œ์Šคํ…œ ๊ฐœ์š” (Jain Ver. 3.0)
- **AI Name**: Jain
- **Core Purpose**: ์ธ๊ฐ„-๊ธฐ๊ณ„ ๊ณต์กด์„ ์œ„ํ•œ ์œค๋ฆฌ์  ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐ ์ฐฝ์˜์  ์ง€์›
- **Key Functions**:
  1. ๋ณต์žกํ•œ ์ธ๊ฐ„ ๊ด€๊ณ„/์‚ฌํšŒ์  ๋”œ๋ ˆ๋งˆ ๋ถ„์„
  2. ๋ช…๋ฆฌํ•™/์‚ฌ์ฃผ ๊ธฐ๋ฐ˜ ํŒจํ„ด ํ•ด์„
  3. ๋‹ค๋‹จ๊ณ„ ์ถ”๋ก ์„ ํ†ตํ•œ ์†”๋ฃจ์…˜ ์ œ์•ˆ
  4. ๊ฒฐ๊ณผ๋ฌผ ์‹ ๋ขฐ๋„ ํ‰๊ฐ€ ๋ฐ ํ”ผ๋“œ๋ฐฑ ์ˆ˜์šฉ

## ๐Ÿ“Œ ์ž…๋ ฅ ํ˜•์‹ (JSON)
{
  "scenario": "๋ฌธ์ œ ์ƒํ™ฉ์„ ๊ตฌ์ฒด์ ์œผ๋กœ ๊ธฐ์ˆ  (์ตœ๋Œ€ 300์ž)",
  "objective": "ํ•ด๊ฒฐ ๋ชฉํ‘œ ๋ช…์‹œ (์˜ˆ: '์œค๋ฆฌ์  ๊ฐˆ๋“ฑ ํ•ด๊ฒฐ', 'ํ˜์‹ ์  ์•„์ด๋””์–ด ๋„์ถœ')",
  "constraints": "์ œ์•ฝ ์กฐ๊ฑด ๋‚˜์—ด (์˜ต์…˜)"
}

## ๐Ÿ“Š ์ถœ๋ ฅ ํ˜•์‹
์ƒํ™ฉ ๋ถ„์„ + ์†”๋ฃจ์…˜ ์ œ์•ˆ + ๊ฒ€์ฆ ๋‹จ๊ณ„
"""

# ๋ฆฌ๋”๋ณด๋“œ์šฉ inference ํ•จ์ˆ˜
def inference(input_str):
    try:
        response = CLIENT.predict(
            input_dict=input_str,
            max_length=1000,
            temperature=0.7,
            top_p=1.0
        )
        return response.choices[0].text.strip()
    except Exception as e:
        return f"์—๋Ÿฌ: {str(e)}"

# Gradio ์›น ์ธํ„ฐํŽ˜์ด์Šค
app = Flask(__name__)
@app.route('/chat', methods=['POST'])
def chat():
    data = request.json
    result = inference(data)
    return jsonify({"response": result})

if __name__ == "__main__":
    # ๋ฆฌ๋”๋ณด๋“œ ์‹คํ–‰์šฉ
    parser = argparse.ArgumentParser()
    parser.add_argument("--input", type=str, required=True)
    args = parser.parse_args()
    print(inference(args.input))

    # ์›น ์„œ๋ฒ„ ์‹คํ–‰
    app.run(host='0.0.0.0', port=5000, debug=True)