scipious commited on
Commit
a58391a
·
verified ·
1 Parent(s): 3654cc5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +60 -39
app.py CHANGED
@@ -13,8 +13,8 @@ import re
13
  import traceback
14
  import requests # API 호출을 위해 필요
15
 
16
- # --- Together AI SDK (제거됨) ---
17
- # from together import Together
18
 
19
  # --- eventlet monkey patch (Gunicorn + SocketIO 필수!) ---
20
  import eventlet
@@ -67,6 +67,14 @@ if not TOGETHER_API_KEY:
67
  raise EnvironmentError("TOGETHER_API_KEY가 설정되지 않았습니다. Hugging Face Secrets에 추가하세요.")
68
  # client = Together(api_key=TOGETHER_API_KEY) # <--- Together SDK 클라이언트 제거
69
 
 
 
 
 
 
 
 
 
70
  # --- RAG 로딩 ---
71
  def load_rag_objects():
72
  global region_rag_objects
@@ -187,26 +195,30 @@ def Gemma3_AI_analysis(query_txt, content_txt):
187
  query_txt = str(query_txt)
188
  prompt = lexi_prompts.use_prompt(lexi_prompts.AI_system_prompt, query_txt=query_txt, content_txt=content_txt)
189
 
190
- headers = {
191
- "Authorization": f"Bearer {TOGETHER_API_KEY}",
192
- "Content-Type": "application/json"
193
- }
194
- payload = {
195
- "model": "meta-llama/Llama-3.3-70B-Instruct-Turbo",
196
- "messages": [{"role": "user", "content": prompt}],
197
- "max_tokens": 1024,
198
- "temperature": 0.7
199
- }
200
-
201
  try:
202
- response = requests.post("https://api.together.xyz/v1/chat/completions", headers=headers, json=payload, timeout=120)
203
- response.raise_for_status() # HTTP 오류가 발생하면 예외 발생
204
-
205
- data = response.json()
206
- return data["choices"][0]["message"]["content"]
207
- except requests.exceptions.RequestException as e:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  logger.info(f"Together AI 분석 API 호출 실패: {e}")
209
- traceback.logger.info_exc()
210
  return f"AI 분석 중 오류가 발생했습니다: {e}"
211
 
212
  # --- Together AI 번역 (SDK -> requests 직접 호출로 변경) ---
@@ -214,27 +226,36 @@ def Gemma3_AI_Translate(query_txt):
214
  query_txt = str(query_txt)
215
  prompt = lexi_prompts.use_prompt(lexi_prompts.query_translator, query_txt=query_txt)
216
 
217
- headers = {
218
- "Authorization": f"Bearer {TOGETHER_API_KEY}",
219
- "Content-Type": "application/json"
220
- }
221
- payload = {
222
- "model": "meta-llama/Llama-3.2-3B-Instruct-Turbo",
223
- "messages": [{"role": "user", "content": prompt}],
224
- "max_tokens": 512,
225
- "temperature": 0.3
226
- }
227
-
228
  try:
229
- response = requests.post("https://api.together.xyz/v1/chat/completions", headers=headers, json=payload, timeout=60)
230
- response.raise_for_status() # HTTP 오류가 발생하면 예외 발생
231
-
232
- data = response.json()
233
- return data["choices"][0]["message"]["content"]
234
- except requests.exceptions.RequestException as e:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
235
  logger.info(f"Together AI 번역 API 호출 실패: {e}")
236
- traceback.logger.info_exc()
237
- return query_txt # 번역 실패 원래 쿼리를 사용 (최소한의 기능 유지)
 
 
 
 
 
 
238
 
239
  # --- 검색 ---
240
  def search_DB_from_multiple_regions(query, selected_regions, region_rag_objects):
 
13
  import traceback
14
  import requests # API 호출을 위해 필요
15
 
16
+ # --- Together AI SDK ---
17
+ from together import Together
18
 
19
  # --- eventlet monkey patch (Gunicorn + SocketIO 필수!) ---
20
  import eventlet
 
67
  raise EnvironmentError("TOGETHER_API_KEY가 설정되지 않았습니다. Hugging Face Secrets에 추가하세요.")
68
  # client = Together(api_key=TOGETHER_API_KEY) # <--- Together SDK 클라이언트 제거
69
 
70
+ try:
71
+ # TOGETHER_API_KEY를 사용해 클라이언트 초기화 (TOGETHER_API_KEY가 코드 내에 정의되어 있다고 가정)
72
+ client = Together(api_key=TOGETHER_API_KEY)
73
+ except NameError:
74
+ # TOGETHER_API_KEY가 정의되지 않은 경우 환경 변수 사용을 시도
75
+ client = Together()
76
+
77
+
78
  # --- RAG 로딩 ---
79
  def load_rag_objects():
80
  global region_rag_objects
 
195
  query_txt = str(query_txt)
196
  prompt = lexi_prompts.use_prompt(lexi_prompts.AI_system_prompt, query_txt=query_txt, content_txt=content_txt)
197
 
 
 
 
 
 
 
 
 
 
 
 
198
  try:
199
+ response = client.chat.completions.create(
200
+ model="meta-llama/Llama-3.3-70B-Instruct-Turbo",
201
+ messages=[
202
+ {
203
+ "role": "user",
204
+ "content": prompt,
205
+ }
206
+ ],
207
+ # 기존 payload의 나머지 설정들을 추가합니다.
208
+ max_tokens=1024,
209
+ temperature=0.7,
210
+ # Together SDK는 기본적으로 요청 실패 시 예외를 발생시킵니다.
211
+ )
212
+
213
+ # 응답에서 결과 텍스트를 추출
214
+ AI_Result = response.choices[0].message.content
215
+ return AI_Result
216
+
217
+ except Exception as e:
218
+ # Together SDK의 오류는 requests.exceptions.RequestException이 아닌 다른 종류의 예외로 발생합니다.
219
+ # 따라서 일반적인 Exception으로 처리하는 것이 안전합니다.
220
  logger.info(f"Together AI 분석 API 호출 실패: {e}")
221
+ traceback.print_exc() # traceback.logger.info_exc() 대신 일반 print_exc()를 사용하거나, logging 모듈 설정을 확인하세요.
222
  return f"AI 분석 중 오류가 발생했습니다: {e}"
223
 
224
  # --- Together AI 번역 (SDK -> requests 직접 호출로 변경) ---
 
226
  query_txt = str(query_txt)
227
  prompt = lexi_prompts.use_prompt(lexi_prompts.query_translator, query_txt=query_txt)
228
 
 
 
 
 
 
 
 
 
 
 
 
229
  try:
230
+ response = client.chat.completions.create(
231
+ model="meta-llama/Llama-3.3-70B-Instruct-Turbo",
232
+ messages=[
233
+ {
234
+ "role": "user",
235
+ "content": prompt,
236
+ }
237
+ ],
238
+ # 기존 payload의 나머지 설정들을 추가합니다.
239
+ max_tokens=1024,
240
+ temperature=0.7,
241
+ # Together SDK는 기본적으로 요청 실패 시 예외를 발생시킵니다.
242
+ )
243
+
244
+ # 응답에서 결과 텍스트를 추출
245
+ AI_Result = response.choices[0].message.content
246
+ return AI_Result
247
+
248
+ except Exception as e:
249
+ # API 호출 실패 시 처리 (SDK 사용 시 일반 Exception으로 처리)
250
  logger.info(f"Together AI 번역 API 호출 실패: {e}")
251
+
252
+ # traceback.logger.info_exc() 대신 traceback.print_exc() 사용 (권장)
253
+ # 만약 기존 로깅 시스템에서 해당 함수를 정의해 사용하고 있다면 그대로 두셔도 됩니다.
254
+ # 여기서는 표준 traceback 모듈을 사용합니다.
255
+ traceback.print_exc()
256
+
257
+ # 번역 실패 시 query_txt 변수를 반환 (기존 코드 로직 반영)
258
+ return query_txt
259
 
260
  # --- 검색 ---
261
  def search_DB_from_multiple_regions(query, selected_regions, region_rag_objects):