huggysynuo commited on
Commit
eeaf866
Β·
verified Β·
1 Parent(s): 1f0acb1

Update src/generate_guide.py

Browse files
Files changed (1) hide show
  1. src/generate_guide.py +41 -42
src/generate_guide.py CHANGED
@@ -1,42 +1,41 @@
1
- # generate_guide.py
2
-
3
- import openai
4
-
5
- openai.api_key = "YOUR_OPENAI_API_KEY"
6
-
7
- def generate_photo_guide(user_caption: str, selected_image_descriptions: list) -> str:
8
- # ν…œν”Œλ¦Ώ 생성
9
- prompt = f"""
10
- μ•„λž˜λŠ” μ‚¬μš©μžκ°€ μ—…λ‘œλ“œν•œ 사진 μ„€λͺ…μž…λ‹ˆλ‹€:
11
- - {user_caption}
12
-
13
- μ•„λž˜λŠ” μ‚¬μš©μžκ°€ μ°Έκ³ ν•˜κ³  μ‹Άλ‹€κ³  μ„ νƒν•œ 사진 μ„€λͺ…λ“€μž…λ‹ˆλ‹€:
14
- {chr(10).join([f"- {desc}" for desc in selected_image_descriptions])}
15
-
16
- μœ„ 정보λ₯Ό μ’…ν•©ν•΄ μ‚¬μš©μžκ°€ 사진을 λ‹€μ‹œ 찍을 λ•Œ μ°Έκ³ ν•  수 μžˆλ„λ‘
17
- λ‹€μŒμ˜ 정보λ₯Ό μžμ—°μ–΄λ‘œ μž‘μ„±ν•΄μ£Όμ„Έμš”:
18
-
19
- 1. μ–΄λ–€ 포즈λ₯Ό μ·¨ν•˜λ©΄ 쒋을지
20
- 2. 카메라 μœ„μΉ˜λŠ” 어디에 두면 쒋은지 (높이, 각도 λ“±)
21
- 3. 인물 λ°°μΉ˜λŠ” μ–΄λ–»κ²Œ ν•˜λ©΄ 쒋은지 (μ •λ©΄/μΈ‘λ©΄, 거리 λ“±)
22
- 4. 전체 ꡬ도 팁이 μžˆλ‹€λ©΄ μ•Œλ €μ£Όμ„Έμš”
23
- """
24
-
25
- # GPT 호좜
26
- response = openai.ChatCompletion.create(
27
- model="gpt-3.5-turbo",
28
- messages=[{"role": "user", "content": prompt}],
29
- temperature=0.7,
30
- )
31
-
32
- guide = response.choices[0].message.content.strip()
33
- return guide
34
-
35
- # μ˜ˆμ‹œ μ‹€ν–‰
36
- if __name__ == "__main__":
37
- user_caption = "두 μ‚¬λžŒμ΄ λ²½ μ•žμ—μ„œ 그림자둜 ν•˜νŠΈλ₯Ό λ§Œλ“œλŠ” 포즈"
38
- selected = [
39
- "ν•΄κ°€ 질 λ•Œ 그림자만 보이게 λ²½ μ•žμ—μ„œ ν•˜νŠΈλ₯Ό λ§Œλ“  두 μ‚¬λžŒ",
40
- "μΈ‘λ©΄μ—μ„œ ν•œ μ‚¬λžŒμ΄ λ‹€λ₯Έ μ‚¬λžŒμ„ μ°λŠ” μ…€μΉ΄ 그림자"
41
- ]
42
- print(generate_photo_guide(user_caption, selected))
 
1
+ # generate_guide.py
2
+
3
+ import openai
4
+ import streamlit as st
5
+ import os
6
+
7
+ # πŸ’‘ API ν‚€ 섀정을 μΊμ‹±ν•΄μ„œ μ΄ˆκΈ°ν™” 과정을 쀑볡 λ°©μ§€
8
+ @st.cache_resource
9
+ def init_openai():
10
+ openai.api_key = os.environ["OPENAI_API_KEY"]
11
+ return openai
12
+
13
+ openai = init_openai()
14
+
15
+ # πŸ“š κ°€μ΄λ“œ 생성 ν•¨μˆ˜
16
+ def generate_photo_guide(user_caption: str, selected_image_descriptions: list) -> str:
17
+ prompt = f"""
18
+ μ•„λž˜λŠ” μ‚¬μš©μžκ°€ μ—…λ‘œλ“œν•œ 사진 μ„€λͺ…μž…λ‹ˆλ‹€:
19
+ - {user_caption}
20
+
21
+ μ•„λž˜λŠ” μ‚¬μš©μžκ°€ μ°Έκ³ ν•˜κ³  μ‹Άλ‹€κ³  μ„ νƒν•œ 사진 μ„€λͺ…λ“€μž…λ‹ˆλ‹€:
22
+ {chr(10).join([f"- {desc}" for desc in selected_image_descriptions])}
23
+
24
+ μœ„ 정보λ₯Ό μ’…ν•©ν•΄ μ‚¬μš©μžκ°€ 사진을 λ‹€μ‹œ 찍을 λ•Œ μ°Έκ³ ν•  수 μžˆλ„λ‘
25
+ λ‹€μŒμ˜ 정보λ₯Ό μžμ—°μ–΄λ‘œ μž‘μ„±ν•΄μ£Όμ„Έμš”:
26
+
27
+ 1. μ–΄λ–€ 포즈λ₯Ό μ·¨ν•˜λ©΄ 쒋을지
28
+ 2. 카메라 μœ„μΉ˜λŠ” 어디에 두면 쒋은지 (높이, 각도 λ“±)
29
+ 3. 인물 λ°°μΉ˜λŠ” μ–΄λ–»κ²Œ ν•˜λ©΄ 쒋은지 (μ •λ©΄/μΈ‘λ©΄, 거리 λ“±)
30
+ 4. 전체 ꡬ도 팁이 μžˆλ‹€λ©΄ μ•Œλ €μ£Όμ„Έμš”
31
+ """
32
+
33
+ # 🧠 GPT 호좜
34
+ response = openai.ChatCompletion.create(
35
+ model="gpt-3.5-turbo",
36
+ messages=[{"role": "user", "content": prompt}],
37
+ temperature=0.7,
38
+ )
39
+
40
+ return response.choices[0].message.content.strip()
41
+