soprano-sdk 0.2.7__py3-none-any.whl → 0.2.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- soprano_sdk/nodes/collect_input.py +17 -1
- {soprano_sdk-0.2.7.dist-info → soprano_sdk-0.2.8.dist-info}/METADATA +1 -1
- {soprano_sdk-0.2.7.dist-info → soprano_sdk-0.2.8.dist-info}/RECORD +5 -5
- {soprano_sdk-0.2.7.dist-info → soprano_sdk-0.2.8.dist-info}/WHEEL +0 -0
- {soprano_sdk-0.2.7.dist-info → soprano_sdk-0.2.8.dist-info}/licenses/LICENSE +0 -0
|
@@ -370,7 +370,23 @@ class CollectInputStrategy(ActionStrategy):
|
|
|
370
370
|
return last_assistant_message
|
|
371
371
|
|
|
372
372
|
if not (prompt := self.agent_config.get('initial_message')):
|
|
373
|
-
|
|
373
|
+
agent_response = agent.invoke([{"role": "user", "content": ""}])
|
|
374
|
+
|
|
375
|
+
# If using structured output, extract bot_response field
|
|
376
|
+
if self.is_structured_output:
|
|
377
|
+
try:
|
|
378
|
+
response_dict = json.loads(agent_response) if isinstance(agent_response, str) else agent_response
|
|
379
|
+
prompt = response_dict.get("bot_response", "")
|
|
380
|
+
if not prompt:
|
|
381
|
+
raise ValueError("Structured output returned empty bot_response for initial message")
|
|
382
|
+
except (json.JSONDecodeError, TypeError, ValueError) as e:
|
|
383
|
+
logger.error(f"Failed to extract bot_response from structured output: {e}")
|
|
384
|
+
raise RuntimeError(
|
|
385
|
+
f"When using structured output without initial_message, the agent must populate "
|
|
386
|
+
f"the bot_response field for the initial prompt. Error: {e}"
|
|
387
|
+
)
|
|
388
|
+
else:
|
|
389
|
+
prompt = agent_response
|
|
374
390
|
|
|
375
391
|
prompt = self._render_template_string(prompt, state)
|
|
376
392
|
conversation.append({"role": "assistant", "content": prompt})
|
|
@@ -16,7 +16,7 @@ soprano_sdk/nodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
|
|
|
16
16
|
soprano_sdk/nodes/async_function.py,sha256=v6WujLKm8NXX2iAkJ7Gz_QIVCtWFrpC6nnPyyfuCxXs,9354
|
|
17
17
|
soprano_sdk/nodes/base.py,sha256=idFyOGGPnjsASYnrOF_NIh7eFcSuJqw61EoVN_WCTaU,2360
|
|
18
18
|
soprano_sdk/nodes/call_function.py,sha256=afYBmj5Aditbkvb_7gD3CsXBEEUohcsC1_cdHfcOunE,5847
|
|
19
|
-
soprano_sdk/nodes/collect_input.py,sha256=
|
|
19
|
+
soprano_sdk/nodes/collect_input.py,sha256=NmcukapYaNDltg7g0i8V76G_aa7sapBFtWMM9nN243s,24712
|
|
20
20
|
soprano_sdk/nodes/factory.py,sha256=IbBzT4FKBnYw5PuSo7uDONV3HSFtoyqjBQQtXtUY2IY,1756
|
|
21
21
|
soprano_sdk/routing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
22
|
soprano_sdk/routing/router.py,sha256=Z218r4BMbmlL9282ombutAoKsIs1WHZ2d5YHnbCeet8,3698
|
|
@@ -29,7 +29,7 @@ soprano_sdk/utils/tracing.py,sha256=gSHeBDLe-MbAZ9rkzpCoGFveeMdR9KLaA6tteB0IWjk,
|
|
|
29
29
|
soprano_sdk/validation/__init__.py,sha256=ImChmO86jYHU90xzTttto2-LmOUOmvY_ibOQaLRz5BA,262
|
|
30
30
|
soprano_sdk/validation/schema.py,sha256=SlC4sq-ueEg0p_8Uox_cgPj9S-0AEEiOOlA1Vsu0DsE,15443
|
|
31
31
|
soprano_sdk/validation/validator.py,sha256=GaCvHvjwVe88Z8yatQsueiPnqtq1oo5uN75gogzpQT0,8940
|
|
32
|
-
soprano_sdk-0.2.
|
|
33
|
-
soprano_sdk-0.2.
|
|
34
|
-
soprano_sdk-0.2.
|
|
35
|
-
soprano_sdk-0.2.
|
|
32
|
+
soprano_sdk-0.2.8.dist-info/METADATA,sha256=6rkr2Wtzd8xKDKk30IxFxs0O2fuwABbDRWz0-PArtH8,11297
|
|
33
|
+
soprano_sdk-0.2.8.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
34
|
+
soprano_sdk-0.2.8.dist-info/licenses/LICENSE,sha256=A1aBauSjPNtVehOXJe3WuvdU2xvM9H8XmigFMm6665s,1073
|
|
35
|
+
soprano_sdk-0.2.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|