ciyidogan commited on
Commit
49c7550
·
verified ·
1 Parent(s): be76cc5

Update intent_api.py

Browse files
Files changed (1) hide show
  1. intent_api.py +83 -8
intent_api.py CHANGED
@@ -5,12 +5,88 @@ from log import log
5
  from core import llm_models
6
 
7
  def auth_token_handler(api_name, auth_config, session):
8
- # (mevcut kod, değişmedi)
9
- ...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
 
11
  def refresh_auth_token(api_name, auth_config, session):
12
- # (mevcut kod, değişmedi)
13
- ...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
 
15
  def execute_intent(intent_name, user_input, session_dict, intent_definitions, data_formats, project_name, service_config):
16
  try:
@@ -52,8 +128,11 @@ def execute_intent(intent_name, user_input, session_dict, intent_definitions, da
52
  verify = tls.get("verify", True)
53
  verify_path = tls.get("ca_bundle") if verify and tls.get("ca_bundle") else verify
54
 
 
55
  if auth_config:
56
  token, session = auth_token_handler(action_api_name, auth_config, session)
 
 
57
 
58
  resolved_headers = {
59
  h["key"]: intent.resolve_placeholders(h["value"], session, variables)
@@ -91,7 +170,6 @@ def execute_intent(intent_name, user_input, session_dict, intent_definitions, da
91
  value = json_resp.get(field) if field else json_resp
92
  template = api_def.get("reply_template", str(value))
93
 
94
- # 🔧 DÜZELTME: Tüm değişkenleri eksiksiz birleştir
95
  merged_variables = {**session.get("variables", {}), **variables}
96
  if field:
97
  merged_variables[field] = str(value)
@@ -103,7 +181,6 @@ def execute_intent(intent_name, user_input, session_dict, intent_definitions, da
103
 
104
  log(f"🛠 Final reply: {reply}")
105
 
106
- # 🔧 Session’a tüm yeni birleşimi kaydet
107
  session.setdefault("variables", {}).update(merged_variables)
108
  session["last_intent"] = intent_name
109
 
@@ -114,8 +191,6 @@ def execute_intent(intent_name, user_input, session_dict, intent_definitions, da
114
 
115
  except Exception as e:
116
  log(f"❌ execute_intent() hatası: {e}")
117
- log(f"❌ session_dict: {session_dict}")
118
- log(f"❌ intent_definitions: {intent_definitions}")
119
  traceback.print_exc()
120
  return {
121
  "error": str(e),
 
5
  from core import llm_models
6
 
7
  def auth_token_handler(api_name, auth_config, session):
8
+ try:
9
+ token_info = session.get("auth_tokens", {}).get(api_name)
10
+ if token_info and "token" in token_info:
11
+ return token_info["token"], session
12
+
13
+ auth_endpoint = auth_config.get("auth_endpoint")
14
+ auth_body = auth_config.get("auth_body", {})
15
+ token_path = auth_config.get("auth_token_path")
16
+
17
+ if not auth_endpoint or not token_path:
18
+ raise Exception("auth_endpoint veya token_path tanımsız")
19
+
20
+ resolved_body = {
21
+ k: intent.resolve_placeholders(str(v), session, session.get("variables", {})) for k, v in auth_body.items()
22
+ }
23
+
24
+ response = requests.post(auth_endpoint, json=resolved_body, timeout=5)
25
+ response.raise_for_status()
26
+ json_resp = response.json()
27
+
28
+ token_parts = token_path.split(".")
29
+ token = json_resp
30
+ for part in token_parts:
31
+ token = token.get(part)
32
+ if token is None:
33
+ raise Exception(f"Token path çözülemedi: {token_path}")
34
+
35
+ refresh_token = json_resp.get("refresh_token")
36
+ session.setdefault("auth_tokens", {})[api_name] = {
37
+ "token": token,
38
+ "refresh_token": refresh_token
39
+ }
40
+
41
+ return token, session
42
+
43
+ except Exception as e:
44
+ log(f"❌ Auth token alınamadı: {e}")
45
+ traceback.print_exc()
46
+ raise e
47
 
48
  def refresh_auth_token(api_name, auth_config, session):
49
+ try:
50
+ refresh_endpoint = auth_config.get("auth_refresh_endpoint")
51
+ refresh_body = auth_config.get("refresh_body", {})
52
+ token_path = auth_config.get("auth_token_path")
53
+
54
+ if not refresh_endpoint or not token_path:
55
+ raise Exception("Refresh yapılandırması eksik")
56
+
57
+ refresh_token = session.get("auth_tokens", {}).get(api_name, {}).get("refresh_token")
58
+ if not refresh_token:
59
+ raise Exception("Mevcut refresh token bulunamadı")
60
+
61
+ resolved_body = {
62
+ k: intent.resolve_placeholders(str(v), session, session.get("variables", {})) for k, v in refresh_body.items()
63
+ }
64
+
65
+ response = requests.post(refresh_endpoint, json=resolved_body, timeout=5)
66
+ response.raise_for_status()
67
+ json_resp = response.json()
68
+
69
+ token_parts = token_path.split(".")
70
+ token = json_resp
71
+ for part in token_parts:
72
+ token = token.get(part)
73
+ if token is None:
74
+ raise Exception(f"Token path çözülemedi: {token_path}")
75
+
76
+ new_refresh_token = json_resp.get("refresh_token", refresh_token)
77
+
78
+ session.setdefault("auth_tokens", {})[api_name] = {
79
+ "token": token,
80
+ "refresh_token": new_refresh_token
81
+ }
82
+
83
+ log(f"🔁 Token başarıyla yenilendi: {api_name}")
84
+ return token, session
85
+
86
+ except Exception as e:
87
+ log(f"❌ Token yenileme başarısız: {e}")
88
+ traceback.print_exc()
89
+ raise e
90
 
91
  def execute_intent(intent_name, user_input, session_dict, intent_definitions, data_formats, project_name, service_config):
92
  try:
 
128
  verify = tls.get("verify", True)
129
  verify_path = tls.get("ca_bundle") if verify and tls.get("ca_bundle") else verify
130
 
131
+ # ✅ Düzeltilmiş auth çağrısı
132
  if auth_config:
133
  token, session = auth_token_handler(action_api_name, auth_config, session)
134
+ else:
135
+ token = None
136
 
137
  resolved_headers = {
138
  h["key"]: intent.resolve_placeholders(h["value"], session, variables)
 
170
  value = json_resp.get(field) if field else json_resp
171
  template = api_def.get("reply_template", str(value))
172
 
 
173
  merged_variables = {**session.get("variables", {}), **variables}
174
  if field:
175
  merged_variables[field] = str(value)
 
181
 
182
  log(f"🛠 Final reply: {reply}")
183
 
 
184
  session.setdefault("variables", {}).update(merged_variables)
185
  session["last_intent"] = intent_name
186
 
 
191
 
192
  except Exception as e:
193
  log(f"❌ execute_intent() hatası: {e}")
 
 
194
  traceback.print_exc()
195
  return {
196
  "error": str(e),