lionagi 0.17.10__py3-none-any.whl → 0.18.0__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.
- lionagi/__init__.py +1 -2
- lionagi/_class_registry.py +1 -2
- lionagi/_errors.py +1 -2
- lionagi/adapters/async_postgres_adapter.py +2 -10
- lionagi/config.py +1 -2
- lionagi/fields/action.py +1 -2
- lionagi/fields/base.py +3 -0
- lionagi/fields/code.py +3 -0
- lionagi/fields/file.py +3 -0
- lionagi/fields/instruct.py +1 -2
- lionagi/fields/reason.py +1 -2
- lionagi/fields/research.py +3 -0
- lionagi/libs/__init__.py +1 -2
- lionagi/libs/file/__init__.py +1 -2
- lionagi/libs/file/chunk.py +1 -2
- lionagi/libs/file/process.py +1 -2
- lionagi/libs/schema/__init__.py +1 -2
- lionagi/libs/schema/as_readable.py +1 -2
- lionagi/libs/schema/extract_code_block.py +1 -2
- lionagi/libs/schema/extract_docstring.py +1 -2
- lionagi/libs/schema/function_to_schema.py +1 -2
- lionagi/libs/schema/load_pydantic_model_from_schema.py +1 -2
- lionagi/libs/schema/minimal_yaml.py +98 -0
- lionagi/libs/validate/__init__.py +1 -2
- lionagi/libs/validate/common_field_validators.py +1 -2
- lionagi/libs/validate/validate_boolean.py +1 -2
- lionagi/ln/fuzzy/_string_similarity.py +1 -2
- lionagi/ln/types.py +32 -5
- lionagi/models/__init__.py +1 -2
- lionagi/models/field_model.py +9 -1
- lionagi/models/hashable_model.py +4 -2
- lionagi/models/model_params.py +1 -2
- lionagi/models/operable_model.py +1 -2
- lionagi/models/schema_model.py +1 -2
- lionagi/operations/ReAct/ReAct.py +475 -239
- lionagi/operations/ReAct/__init__.py +1 -2
- lionagi/operations/ReAct/utils.py +4 -2
- lionagi/operations/__init__.py +1 -2
- lionagi/operations/act/__init__.py +2 -0
- lionagi/operations/act/act.py +206 -0
- lionagi/operations/brainstorm/__init__.py +1 -2
- lionagi/operations/brainstorm/brainstorm.py +1 -2
- lionagi/operations/brainstorm/prompt.py +1 -2
- lionagi/operations/builder.py +1 -2
- lionagi/operations/chat/__init__.py +1 -2
- lionagi/operations/chat/chat.py +131 -116
- lionagi/operations/communicate/communicate.py +102 -44
- lionagi/operations/flow.py +5 -6
- lionagi/operations/instruct/__init__.py +1 -2
- lionagi/operations/instruct/instruct.py +1 -2
- lionagi/operations/interpret/__init__.py +1 -2
- lionagi/operations/interpret/interpret.py +66 -22
- lionagi/operations/operate/__init__.py +1 -2
- lionagi/operations/operate/operate.py +213 -108
- lionagi/operations/parse/__init__.py +1 -2
- lionagi/operations/parse/parse.py +171 -144
- lionagi/operations/plan/__init__.py +1 -2
- lionagi/operations/plan/plan.py +1 -2
- lionagi/operations/plan/prompt.py +1 -2
- lionagi/operations/select/__init__.py +1 -2
- lionagi/operations/select/select.py +79 -19
- lionagi/operations/select/utils.py +2 -3
- lionagi/operations/types.py +120 -25
- lionagi/operations/utils.py +1 -2
- lionagi/protocols/__init__.py +1 -2
- lionagi/protocols/_concepts.py +1 -2
- lionagi/protocols/action/__init__.py +1 -2
- lionagi/protocols/action/function_calling.py +3 -20
- lionagi/protocols/action/manager.py +34 -4
- lionagi/protocols/action/tool.py +1 -2
- lionagi/protocols/contracts.py +1 -2
- lionagi/protocols/forms/__init__.py +1 -2
- lionagi/protocols/forms/base.py +1 -2
- lionagi/protocols/forms/flow.py +1 -2
- lionagi/protocols/forms/form.py +1 -2
- lionagi/protocols/forms/report.py +1 -2
- lionagi/protocols/generic/__init__.py +1 -2
- lionagi/protocols/generic/element.py +17 -65
- lionagi/protocols/generic/event.py +1 -2
- lionagi/protocols/generic/log.py +17 -14
- lionagi/protocols/generic/pile.py +3 -4
- lionagi/protocols/generic/processor.py +1 -2
- lionagi/protocols/generic/progression.py +1 -2
- lionagi/protocols/graph/__init__.py +1 -2
- lionagi/protocols/graph/edge.py +1 -2
- lionagi/protocols/graph/graph.py +1 -2
- lionagi/protocols/graph/node.py +1 -2
- lionagi/protocols/ids.py +1 -2
- lionagi/protocols/mail/__init__.py +1 -2
- lionagi/protocols/mail/exchange.py +1 -2
- lionagi/protocols/mail/mail.py +1 -2
- lionagi/protocols/mail/mailbox.py +1 -2
- lionagi/protocols/mail/manager.py +1 -2
- lionagi/protocols/mail/package.py +1 -2
- lionagi/protocols/messages/__init__.py +28 -2
- lionagi/protocols/messages/action_request.py +87 -186
- lionagi/protocols/messages/action_response.py +74 -133
- lionagi/protocols/messages/assistant_response.py +131 -161
- lionagi/protocols/messages/base.py +27 -20
- lionagi/protocols/messages/instruction.py +281 -626
- lionagi/protocols/messages/manager.py +113 -64
- lionagi/protocols/messages/message.py +88 -199
- lionagi/protocols/messages/system.py +53 -125
- lionagi/protocols/operatives/__init__.py +1 -2
- lionagi/protocols/operatives/operative.py +1 -2
- lionagi/protocols/operatives/step.py +1 -2
- lionagi/protocols/types.py +1 -4
- lionagi/service/connections/__init__.py +1 -2
- lionagi/service/connections/api_calling.py +1 -2
- lionagi/service/connections/endpoint.py +1 -10
- lionagi/service/connections/endpoint_config.py +1 -2
- lionagi/service/connections/header_factory.py +1 -2
- lionagi/service/connections/match_endpoint.py +1 -2
- lionagi/service/connections/mcp/__init__.py +1 -2
- lionagi/service/connections/mcp/wrapper.py +1 -2
- lionagi/service/connections/providers/__init__.py +1 -2
- lionagi/service/connections/providers/anthropic_.py +1 -2
- lionagi/service/connections/providers/claude_code_cli.py +1 -2
- lionagi/service/connections/providers/exa_.py +1 -2
- lionagi/service/connections/providers/nvidia_nim_.py +2 -27
- lionagi/service/connections/providers/oai_.py +30 -96
- lionagi/service/connections/providers/ollama_.py +4 -4
- lionagi/service/connections/providers/perplexity_.py +1 -2
- lionagi/service/hooks/__init__.py +1 -1
- lionagi/service/hooks/_types.py +1 -1
- lionagi/service/hooks/_utils.py +1 -1
- lionagi/service/hooks/hook_event.py +1 -1
- lionagi/service/hooks/hook_registry.py +1 -1
- lionagi/service/hooks/hooked_event.py +3 -4
- lionagi/service/imodel.py +1 -2
- lionagi/service/manager.py +1 -2
- lionagi/service/rate_limited_processor.py +1 -2
- lionagi/service/resilience.py +1 -2
- lionagi/service/third_party/anthropic_models.py +1 -2
- lionagi/service/third_party/claude_code.py +4 -4
- lionagi/service/third_party/openai_models.py +433 -0
- lionagi/service/token_calculator.py +1 -2
- lionagi/session/__init__.py +1 -2
- lionagi/session/branch.py +171 -180
- lionagi/session/session.py +4 -11
- lionagi/tools/__init__.py +1 -2
- lionagi/tools/base.py +1 -2
- lionagi/tools/file/__init__.py +1 -2
- lionagi/tools/file/reader.py +3 -4
- lionagi/tools/types.py +1 -2
- lionagi/utils.py +1 -2
- lionagi/version.py +1 -1
- {lionagi-0.17.10.dist-info → lionagi-0.18.0.dist-info}/METADATA +1 -2
- lionagi-0.18.0.dist-info/RECORD +191 -0
- lionagi/operations/_act/__init__.py +0 -3
- lionagi/operations/_act/act.py +0 -87
- lionagi/protocols/messages/templates/README.md +0 -28
- lionagi/protocols/messages/templates/action_request.jinja2 +0 -5
- lionagi/protocols/messages/templates/action_response.jinja2 +0 -9
- lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -6
- lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -61
- lionagi/protocols/messages/templates/system_message.jinja2 +0 -11
- lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -7
- lionagi/service/connections/providers/types.py +0 -28
- lionagi/service/third_party/openai_model_names.py +0 -198
- lionagi/service/types.py +0 -59
- lionagi-0.17.10.dist-info/RECORD +0 -199
- {lionagi-0.17.10.dist-info → lionagi-0.18.0.dist-info}/WHEEL +0 -0
- {lionagi-0.17.10.dist-info → lionagi-0.18.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,191 @@
|
|
1
|
+
lionagi/__init__.py,sha256=JJlMMYTLN1B9OradguqKL-HdWec5X0jqc2laoqhSdbQ,2470
|
2
|
+
lionagi/_class_registry.py,sha256=vp3YkOelyv9azuQFfhGN_9N_n5fAKAY2MtpSLeNpjW0,3108
|
3
|
+
lionagi/_errors.py,sha256=QRFdr2ycJZiUS6PZk6JqFwTf36-daaKlGyiGInrxFtA,3744
|
4
|
+
lionagi/_types.py,sha256=nGtsaSee7FaIZvym3PH8NPaN5PN8QscTgcZfpMNaMEo,1296
|
5
|
+
lionagi/config.py,sha256=meBzsT7xYDh1FwxGz_Q-XfOw3XkxPtlSJ1vqx9xk5YE,4779
|
6
|
+
lionagi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
+
lionagi/utils.py,sha256=j4wRrPiuHprx7l7j3z8U9NlPWMzrM8lHv5q3K_DJLPU,7080
|
8
|
+
lionagi/version.py,sha256=0EHw4xygmgkGSyfwNfEoMlQyN0uHxjHtlSFF79s6120,23
|
9
|
+
lionagi/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
|
+
lionagi/adapters/_utils.py,sha256=sniMG1LDDkwJNzUF2K32jv7rA6Y1QcohgyNclYsptzI,453
|
11
|
+
lionagi/adapters/async_postgres_adapter.py,sha256=-7Ah0A8JQvEEYBe2zMkze-65gYiUbpcJGxhYnzrv9ok,3285
|
12
|
+
lionagi/fields/__init__.py,sha256=yrn9NDAM6_v73kK7aJeb-Pvqigeu8WASaV-My-6CDsc,939
|
13
|
+
lionagi/fields/action.py,sha256=Zt8G59MgszgaxWqpiAie2-qnYnWmiLDpkntSgIrIcmY,5829
|
14
|
+
lionagi/fields/base.py,sha256=IoeVMGKFpPqdUDnJHT97FkFsb9EaD6_DPn3dAS6onio,3923
|
15
|
+
lionagi/fields/code.py,sha256=mcQcDai7kLeJxcq_Emr8WYAy4jmn9RSPIriZuB0WraU,7822
|
16
|
+
lionagi/fields/file.py,sha256=6piGyjKQm0bIZrnWjge3-DrxaGti6Ii4BCbohwQ3neo,7406
|
17
|
+
lionagi/fields/instruct.py,sha256=2rgDaEqnZkh6MHyC8mc0YdIT1EHNIxrxD77HdW7EoYE,4330
|
18
|
+
lionagi/fields/reason.py,sha256=Ay2b0s-vQeBaWpQxGcKrw96Q5xGoeRa0nDFh7HcXOVc,1486
|
19
|
+
lionagi/fields/research.py,sha256=lNf3XW0MiqJ4EUN1AL4it9s-N2Zm9y7aSah7W4oWoy8,1530
|
20
|
+
lionagi/libs/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
21
|
+
lionagi/libs/file/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
22
|
+
lionagi/libs/file/chunk.py,sha256=_wHdZY9OCDILWWwWOvvS22T9CYGV9bW1zRUi96-UqDg,8970
|
23
|
+
lionagi/libs/file/process.py,sha256=A0dF2HZEZHRBNPKboKTlQBh03Rn0tHC_dRaQYMphOhE,6074
|
24
|
+
lionagi/libs/schema/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
25
|
+
lionagi/libs/schema/as_readable.py,sha256=LeiZ4bXCZfmkfJvdduets2s50XS4hgUvn3Ay2xYdVr4,12023
|
26
|
+
lionagi/libs/schema/breakdown_pydantic_annotation.py,sha256=x-mfXroICPHXtNcLtAoC_SyFwao42dEaEAUZA9l3yWQ,1296
|
27
|
+
lionagi/libs/schema/extract_code_block.py,sha256=ZaDucwumx2rBE3AwWb4EDMeYO7Mb2IJFLlYvOan6-fM,2390
|
28
|
+
lionagi/libs/schema/extract_docstring.py,sha256=T_wiQfprlJniKNCeKuCxf_Oj7_6Pj_8HJ02ZjB3LelI,5710
|
29
|
+
lionagi/libs/schema/function_to_schema.py,sha256=uRMkpjXYgmL8kxdyVfOSTB-i0dRAbztSZPHI1LilRH8,5600
|
30
|
+
lionagi/libs/schema/load_pydantic_model_from_schema.py,sha256=IWPKhF_drI3VKABon45ufkiIb5hRYTS0sGWxhQLObpI,10112
|
31
|
+
lionagi/libs/schema/minimal_yaml.py,sha256=fj3LFn35o_KpFostcCYpJ6pQMrb1DICqIgxpnWriQRg,3085
|
32
|
+
lionagi/libs/validate/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
33
|
+
lionagi/libs/validate/common_field_validators.py,sha256=9PUabJZVFGeXShOOZ5jliRaXLefBovACllynAQCU0Ow,4774
|
34
|
+
lionagi/libs/validate/to_num.py,sha256=ZRHDjpTCykPfDIZZa4rZKNaR_8ZHbPDFlw9rc02DrII,11610
|
35
|
+
lionagi/libs/validate/validate_boolean.py,sha256=WcszKSMksFBCels2OMd0qElqDauyq53-h7cuOM_nIKU,3610
|
36
|
+
lionagi/ln/__init__.py,sha256=dQvfTU1MHUrG4C4KoqEs7Xg801seML-GNjihbdUtp3E,1575
|
37
|
+
lionagi/ln/_async_call.py,sha256=hjei0sW-G92xDwQo_OI4qKVp1iP8N2eccJT1fAftV9w,9607
|
38
|
+
lionagi/ln/_hash.py,sha256=dIrQgOAdrWkVQcaCJXN-XIaA1sIZSYtAU302fywrtJU,4756
|
39
|
+
lionagi/ln/_json_dump.py,sha256=zOeoOE3JbaGAzL-lfAdMqdgaXWYXFliqcgXsZ_pxonI,10347
|
40
|
+
lionagi/ln/_list_call.py,sha256=zvISmCeNAH7yjBcusQI1s17n556tILgePhRMdAM2plA,2831
|
41
|
+
lionagi/ln/_to_list.py,sha256=V9hC3dpyMhRJwuuyOCU_wJygzEB6sJVZ0fmIRtM6uTg,6993
|
42
|
+
lionagi/ln/_utils.py,sha256=5Z_AsDxdtH5wNB-P4IiihhH0dYUcZMT-hTxFQBQPwL0,4303
|
43
|
+
lionagi/ln/types.py,sha256=vUprqqW1nfHDNrOGk417NHEeEXpTpJqP9eqlMuEOaBI,11118
|
44
|
+
lionagi/ln/concurrency/__init__.py,sha256=xt_GLZ1Zb-nC-RnrNt8jOBWb_uf1md__B1R5cplMShg,1190
|
45
|
+
lionagi/ln/concurrency/_compat.py,sha256=itxdRzl95PLEBQvNY0zTriF39kymaNRpKncT8QsOomA,2065
|
46
|
+
lionagi/ln/concurrency/cancel.py,sha256=8JlWy_EVto4Fls1yQLBteCbpn4zP6ydnqIa_EL5kxZc,3313
|
47
|
+
lionagi/ln/concurrency/errors.py,sha256=Tg76ods-CG_9rz7TksTiRGqpTzWHi-Wm9JPotGB9iEM,869
|
48
|
+
lionagi/ln/concurrency/patterns.py,sha256=08eebVxbBxkcMFgJqZB-cXS7lRZduH1Y-zorb8fTTZs,9447
|
49
|
+
lionagi/ln/concurrency/primitives.py,sha256=-mXU-mUThbr9YUH2viw8mY5iOuKn5E5CoiTlG41NO3k,9543
|
50
|
+
lionagi/ln/concurrency/resource_tracker.py,sha256=ffLr0FkHyaHsUa4UDyWwse-8wGLaLMnAyfyeTDyzrDA,1512
|
51
|
+
lionagi/ln/concurrency/task.py,sha256=VS5keFI3Ct0fqCKbFl4kEWT5I2CgjIYizPU-S2YjGKo,2675
|
52
|
+
lionagi/ln/concurrency/utils.py,sha256=MUWupnFtWxR15hWnligLZrS4Z1SAQ7j3cuCG08cK3GQ,431
|
53
|
+
lionagi/ln/fuzzy/__init__.py,sha256=Py7hPV7uk5rPRGvQ4yPjMzXS32aQ7QVkO-mX69FfsMM,544
|
54
|
+
lionagi/ln/fuzzy/_extract_json.py,sha256=rYHaK36yzRpie8qO-T7mZKOue2yqCLx3ixiuKhsaKvg,2224
|
55
|
+
lionagi/ln/fuzzy/_fuzzy_json.py,sha256=S0lCkNvprn7XZHoYdRfzXueexSbjxTeLPkpyJ9IAO3A,3860
|
56
|
+
lionagi/ln/fuzzy/_fuzzy_match.py,sha256=-rmYVjPtiAYaUAacQfhSwahVqQP03FBpfZrGFH7Zq98,5832
|
57
|
+
lionagi/ln/fuzzy/_fuzzy_validate.py,sha256=XuafNXflTerQrQYV0S6MrQHR3_6DuYBv6BAYTLSxgfI,5161
|
58
|
+
lionagi/ln/fuzzy/_string_similarity.py,sha256=01u73Bp4YPN-s7YMzQjbYM5d6mjKGSjJpar14Wab_5U,8792
|
59
|
+
lionagi/ln/fuzzy/_to_dict.py,sha256=Crz4sDIIcTZS3idxynWK7U4EdHvZooPDJIsOH3t6xgQ,12068
|
60
|
+
lionagi/models/__init__.py,sha256=Nq0RqoT7DXrpS1_lVgfrlZXl2_E2_E_HHANcbPlDfh8,418
|
61
|
+
lionagi/models/field_model.py,sha256=KDz1fVznJZgKSKIj5Lqb9d4rt8vtxmvZiiK-Og5HAh0,29618
|
62
|
+
lionagi/models/hashable_model.py,sha256=ny-eOj6kdPr2TLzKXt3Kyrg0kOylJd8AxWRK3VM4KQE,3300
|
63
|
+
lionagi/models/model_params.py,sha256=ZFknRIm1Qj-gBTNG1_jz7mjmoogXd2NpFObYPK42OK4,12110
|
64
|
+
lionagi/models/operable_model.py,sha256=t6EKeJzG4wqo4tHroPe873R_hMLpcWq4gUiwCC_8pcM,20175
|
65
|
+
lionagi/models/schema_model.py,sha256=atgySn8e3zcQdFDERMrfSS1ZKzRZjQCAlNNlnp22vIg,663
|
66
|
+
lionagi/operations/__init__.py,sha256=A9GvZqRuzxV98wrwo0-Y2bOTpz0TTPePHDTOj0cYR9Y,440
|
67
|
+
lionagi/operations/_visualize_graph.py,sha256=F0KadgRthP-6-R-FPgvlwiiaiWH3ueO-rjSd1bzRUbE,8594
|
68
|
+
lionagi/operations/builder.py,sha256=6fwihDDRiabjliw5LRwChMY7It9oQkYXwOU1K1ag5qc,14718
|
69
|
+
lionagi/operations/flow.py,sha256=wCcChUWkxB8y2nMUS9BXvNVboa_q1t8WnfytHLfduks,25153
|
70
|
+
lionagi/operations/manager.py,sha256=YZr3VjPAZVVFd_bIjF1aoQqzzKZHNA1kcqefNi5QFFM,683
|
71
|
+
lionagi/operations/node.py,sha256=zntelS3kO6q4H6vpS2lpw3iNUTLR3a6I3dp07fdSGJs,3465
|
72
|
+
lionagi/operations/types.py,sha256=b0TR6xsTxw3eJKEbt_1UfpJBcoaT_uRLezQ7h5G2ux0,3947
|
73
|
+
lionagi/operations/utils.py,sha256=_SlmfXRXiPoK5GHJDEK9zxzJT6RAHhU1VTqxhsxMFG4,1369
|
74
|
+
lionagi/operations/ReAct/ReAct.py,sha256=d153LHTbZnti8onydK7c_6Yx6aQEBJRHe_zEYLsGHZY,20686
|
75
|
+
lionagi/operations/ReAct/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
76
|
+
lionagi/operations/ReAct/utils.py,sha256=YzKZaqD_Yb016grdx7hqSR2irM-idY9-FgCjgp9zffg,4300
|
77
|
+
lionagi/operations/act/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
78
|
+
lionagi/operations/act/act.py,sha256=xMe0iYS_ziuPHzyEOXvKeBlQ4uSMJgsh656HLX5c1N0,6471
|
79
|
+
lionagi/operations/brainstorm/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
80
|
+
lionagi/operations/brainstorm/brainstorm.py,sha256=daLcfhJxV8vZTZ83XENLCFr0k3rnki3MXqMjnCoybUI,18793
|
81
|
+
lionagi/operations/brainstorm/prompt.py,sha256=Ma-9cAGS5UdDtidK28A4WldS2712-NVGxtXvhSuBet4,606
|
82
|
+
lionagi/operations/chat/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
83
|
+
lionagi/operations/chat/chat.py,sha256=j21Zxdc_pkuFskT6HH2rXgh6fkvbwqp4C77L7xfWs9Y,6667
|
84
|
+
lionagi/operations/communicate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
85
|
+
lionagi/operations/communicate/communicate.py,sha256=zQ-15MwJmw6sic0HdOBl8EJvVUBOThj5bu55Stg9YdA,5569
|
86
|
+
lionagi/operations/instruct/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
87
|
+
lionagi/operations/instruct/instruct.py,sha256=aaWzn3bnN4HCfe2uF0-u0VbSPsTJye83EsAUhmNsVRI,790
|
88
|
+
lionagi/operations/interpret/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
89
|
+
lionagi/operations/interpret/interpret.py,sha256=uVK9Yk4-n92DZfEQrNQ-IU7PJd_IfVJWJENbmVCf_Ns,2497
|
90
|
+
lionagi/operations/operate/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
91
|
+
lionagi/operations/operate/operate.py,sha256=iH0sg1a4HXKElcKrcxbl50-LHR1Dw_Ndm9GEeQnJAgY,10433
|
92
|
+
lionagi/operations/parse/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
93
|
+
lionagi/operations/parse/parse.py,sha256=LwQoKNbkADSnhkrwMZeOPlTFAjsKC1QmnorbtKsdNX8,6699
|
94
|
+
lionagi/operations/plan/__init__.py,sha256=_I1NOEn9w7ymriCXW-6gN3dDwJPM35H2nNHy2IJj4FU,152
|
95
|
+
lionagi/operations/plan/plan.py,sha256=04mr8tu3BQmCczf324pm-FlmP_NulZ1sS7JTFrdT5jI,15311
|
96
|
+
lionagi/operations/plan/prompt.py,sha256=WhnND5JjafKgKgcaHBPR5hxwdtwSHfWulVRyomL1rVU,989
|
97
|
+
lionagi/operations/select/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
98
|
+
lionagi/operations/select/select.py,sha256=kj_nOBpZVey98k3ZAJKWLgedBXhU4Zjj2RjQZ3A_E4A,4449
|
99
|
+
lionagi/operations/select/utils.py,sha256=E7fQ0esYcBKVadCmPla3wXTtI1JaU2dCKU6nxP63a0o,3684
|
100
|
+
lionagi/protocols/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
101
|
+
lionagi/protocols/_concepts.py,sha256=eheWQxlHTo36uGpkSpINLO-OmTdjpJEFrVX1hJ7N590,1551
|
102
|
+
lionagi/protocols/contracts.py,sha256=thdhmP600E0FO7nBZKM2LoQaSuxQkg7YDi3QYUJRxaI,1394
|
103
|
+
lionagi/protocols/ids.py,sha256=zoErFMeyBsRdq7ld89e7YviLyDF1qF4DpzwVQGg1IG8,2468
|
104
|
+
lionagi/protocols/types.py,sha256=h06gvQuBq7DGxiDJq6E98MU9525GLqp94_nlOBcGgTw,2391
|
105
|
+
lionagi/protocols/action/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
106
|
+
lionagi/protocols/action/function_calling.py,sha256=Qu5wCBGZk-c0D-rKMF8nYI3mzJGphosLWi7NCySSErY,4534
|
107
|
+
lionagi/protocols/action/manager.py,sha256=joz83NXCqA2TjAOiPmnwuunZ71_vi2tHze1tGSJKhjU,20041
|
108
|
+
lionagi/protocols/action/tool.py,sha256=A4WNMUkR05ivE_2bruSfgVKSgpP9iKSgIpLBp3C1Q6Q,5846
|
109
|
+
lionagi/protocols/forms/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
110
|
+
lionagi/protocols/forms/base.py,sha256=ob1hwe3xgt7egFtnEUyf5o6pwNbtCWcU9VZ1QWmkvdI,2834
|
111
|
+
lionagi/protocols/forms/flow.py,sha256=O9mWreqpbAIhApDc7X_j0ep_sM5xa27T-1jOk6nhMG0,2698
|
112
|
+
lionagi/protocols/forms/form.py,sha256=-KH3ofRM14-aUAoIssNvJt-J3yT1tnPLkI5OnRQ9MSc,3058
|
113
|
+
lionagi/protocols/forms/report.py,sha256=zc-2bnVZJRzZnj6QOy1ba4dsfZkqzC0yOqtR_y-iHwc,1605
|
114
|
+
lionagi/protocols/generic/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
115
|
+
lionagi/protocols/generic/element.py,sha256=CKHzIfKRxg1kh-FyvVB1l06AzU79WTfqSvISzF2XKaA,14628
|
116
|
+
lionagi/protocols/generic/event.py,sha256=oTDHFZeLTlX_olNN-6IFAVUU0bAlxn7nBOi5mu5kMnY,6546
|
117
|
+
lionagi/protocols/generic/log.py,sha256=flAk8NrYQN6yfY9w0D8y2Q-MIpESUK-1XaQCLnYtJ_I,8393
|
118
|
+
lionagi/protocols/generic/pile.py,sha256=RONqbLygSVeQhfr_9HNMR7btvME1nsmrCPWDdNoi2sY,37125
|
119
|
+
lionagi/protocols/generic/processor.py,sha256=e4s9pf0yjx-VIGN0uYnJ48TKDVpc_O_98_L-0hwawEk,11701
|
120
|
+
lionagi/protocols/generic/progression.py,sha256=LKUkyMI2ONH78YGAnCu6AO0-iDeXqHvJpe7XKuKXRjo,15186
|
121
|
+
lionagi/protocols/graph/__init__.py,sha256=oHHzwu1ystmRqn6MMaZ0emiscmw09v7doL_-QaJN2Z4,249
|
122
|
+
lionagi/protocols/graph/edge.py,sha256=d9eWoy242PAY1gnOYxxKE8A4MHjibRg69Enb4InnBcQ,5237
|
123
|
+
lionagi/protocols/graph/graph.py,sha256=_zGQ6ypCYVyDuTBTMAR2dXtI8niOwX_vbgXEQM4YPvo,11155
|
124
|
+
lionagi/protocols/graph/node.py,sha256=e9LDNDGJoqp0l6WwVLrv_87ll00_5FxqBpj3hg6NPLg,5301
|
125
|
+
lionagi/protocols/mail/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
126
|
+
lionagi/protocols/mail/exchange.py,sha256=7KZIDmyAnwYzs6ksg2p5be9jGcpRV7SjlOWpyQrXNmI,7037
|
127
|
+
lionagi/protocols/mail/mail.py,sha256=RmGd8dJD1om8qxCDlb4UlxDrcWXItKL9ZhFgzWUWIfk,1352
|
128
|
+
lionagi/protocols/mail/mailbox.py,sha256=F6-9do52IKfQKewtwOTxdlPCDYmBT4tDGKlMvFhc-BI,2729
|
129
|
+
lionagi/protocols/mail/manager.py,sha256=QqH5IgnAGwLOpUS8sJmDYLNYKVqbUdz-3sZgVCbl7gw,6960
|
130
|
+
lionagi/protocols/mail/package.py,sha256=RebLIMmkx1V7q1940NsmSXKsNKNPXigwZnI6Aewp3HM,2655
|
131
|
+
lionagi/protocols/messages/__init__.py,sha256=VtHtfD41BezXk2VKgRXlVGBj-Gxc3c5rvomb7g2Qsu0,898
|
132
|
+
lionagi/protocols/messages/action_request.py,sha256=VDmdxxKYJhSOE0oui8mNIPpVb3mmA_46Db_Xo8twV_I,3588
|
133
|
+
lionagi/protocols/messages/action_response.py,sha256=AioBkMKzBworwk7LtlxWZR7rQB6nrvEsjNGTk_v1XYQ,2989
|
134
|
+
lionagi/protocols/messages/assistant_response.py,sha256=jv1svk_pk4sc_AslHMDn7CtIAFCM5aKmaiPbqNyD4Ds,6071
|
135
|
+
lionagi/protocols/messages/base.py,sha256=-feOzxTrfqe-1F74Y5bloTaSGwiF4bRhI_txawTPgXA,2649
|
136
|
+
lionagi/protocols/messages/instruction.py,sha256=o8A3nBIqU_82G86Kg4UgiVpAznzzRSnWiEm9LvlBpM4,11815
|
137
|
+
lionagi/protocols/messages/manager.py,sha256=ZbQ1VfphbS7ddr4SHmnSqLTo8lnZ4Vtl8pKL8xnLPD0,18900
|
138
|
+
lionagi/protocols/messages/message.py,sha256=tgy_drcKB-CbAqFaKi6oQkhBPFuBQYREZU8DqQTz2BE,4457
|
139
|
+
lionagi/protocols/messages/system.py,sha256=A9RqcNUUCFq6GcGBvMpv7Y6R4igFt1sER9sZMXyyFWg,2380
|
140
|
+
lionagi/protocols/operatives/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
141
|
+
lionagi/protocols/operatives/operative.py,sha256=StMHk8EShQXeBLN9GYsLfzne94jsIO0x2vf988bQWos,14368
|
142
|
+
lionagi/protocols/operatives/step.py,sha256=9GEsKOvTSrnBcDEtJV7PryJuR7Uk7CRjhwtFKFEZEe4,9276
|
143
|
+
lionagi/service/__init__.py,sha256=MYcfEFFLSdRS4blwYdx883T8Px2bn81JAeqSIPW9SFs,2545
|
144
|
+
lionagi/service/broadcaster.py,sha256=XvaUaBb6awcq-DJGVNJnnAIZUrrtOPnhWcgVgZTnGq8,1941
|
145
|
+
lionagi/service/imodel.py,sha256=Q29fRHaWpI-IKThuUE_1EoGCG746FgKPzYqzqNNPyAc,16605
|
146
|
+
lionagi/service/manager.py,sha256=ZQWj_QKYsKVblsNHeDBMMQllduMArjLqaZHlP3F1_tE,1160
|
147
|
+
lionagi/service/rate_limited_processor.py,sha256=D983_04YqurcA-svjDKXVzmlD1bWoVkFHtwqQhB-fGo,6095
|
148
|
+
lionagi/service/resilience.py,sha256=djIDMJHe2XHoULa3x0wygt3kjeMgElSmWf0RFeyD3SU,18717
|
149
|
+
lionagi/service/token_calculator.py,sha256=s5meEIhulrkemCkY8sYPUOdKGH5jxEkz87Qt0Nwb2zE,6453
|
150
|
+
lionagi/service/connections/__init__.py,sha256=xgym7BxiQv-QxDMRfvvq6V9PvYmSZklU0-epGj1Beng,365
|
151
|
+
lionagi/service/connections/api_calling.py,sha256=8NpgyFzz9oU6lTXq_gBetaqH_M6RnOoxIg4rbcS1Jco,6003
|
152
|
+
lionagi/service/connections/endpoint.py,sha256=T4JKy-fQ9_LFDpaTP0SEzUFIlfnhlnMJFcEb-qgThVg,14833
|
153
|
+
lionagi/service/connections/endpoint_config.py,sha256=L-DQdxVLBA8ZapVSvLhjmlo0pP1199aRA8lccquGoHI,5172
|
154
|
+
lionagi/service/connections/header_factory.py,sha256=vwVV3jNHIUePvUzbcC5Sj7yDoxB2yVSyLZxgBm-kNjg,1824
|
155
|
+
lionagi/service/connections/match_endpoint.py,sha256=cOPdoEgOpvFE2iJ24zqGJ51fB6s20qg4-RDjTI_bx-0,2571
|
156
|
+
lionagi/service/connections/mcp/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
157
|
+
lionagi/service/connections/mcp/wrapper.py,sha256=EDbAm9gj4_zGBRdXf9yS0ZpyMNLfkEuDV2zo_YRt9QA,9161
|
158
|
+
lionagi/service/connections/providers/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
159
|
+
lionagi/service/connections/providers/anthropic_.py,sha256=7xShtS2Whg-F2DpueSyI0X3ZknqTYeDXi1AvkEDQOBc,3160
|
160
|
+
lionagi/service/connections/providers/claude_code_cli.py,sha256=pCAXdPCH0AaKYnA3SXL8zGTvvheipR5dZ7Aw7fmqG8g,4451
|
161
|
+
lionagi/service/connections/providers/exa_.py,sha256=p2mVkuztpHuS4Ud2dR082dPPEiVp6MFUXlehU9fD9lc,1051
|
162
|
+
lionagi/service/connections/providers/nvidia_nim_.py,sha256=S1Z8XhL7W5uANiNTkHK_ffeBL3_lD9KuthI70NSd_4g,2412
|
163
|
+
lionagi/service/connections/providers/oai_.py,sha256=vXYecSAHkMONpbFoVivldBbyPlU2y8pWKYY-LiXzsBE,4289
|
164
|
+
lionagi/service/connections/providers/ollama_.py,sha256=Y1e8dR7uDOxnCI45f9qvPh4NtVUd0qDppohNb-g6tQM,4564
|
165
|
+
lionagi/service/connections/providers/perplexity_.py,sha256=9eXYXsGQuDy8WdEbZ3Och9qDl-lZTBmocMo9-FsTIeE,1649
|
166
|
+
lionagi/service/hooks/__init__.py,sha256=toX-rQji-pxglI4yKzu-0Xp7E4xVvh0__Z70G_Gz2Y0,469
|
167
|
+
lionagi/service/hooks/_types.py,sha256=53Wh0N1pHUZ_IG8iPxP4MbRNNy_e6vzK-y9Mxu8u8Eo,1260
|
168
|
+
lionagi/service/hooks/_utils.py,sha256=oVVDIJOX8HFAHVErPJGTuh57YEGhiwm5_ykFN2GRPyI,2632
|
169
|
+
lionagi/service/hooks/hook_event.py,sha256=VGcpdrbnH6U47mNkSINT8FlwWrR8_QX_kGoCy55RXTc,2836
|
170
|
+
lionagi/service/hooks/hook_registry.py,sha256=SGwWoFTHhKn0hGrb2GeDi2ecLrt8ax_kiJoHPZgz5Ls,8532
|
171
|
+
lionagi/service/hooks/hooked_event.py,sha256=iBN7dCpYwJBndai94vm9FwpFvQHcUonEDOg7C9g75iI,4318
|
172
|
+
lionagi/service/third_party/README.md,sha256=qFjWnI8rmLivIyr6Tc-hRZh-rQwntROp76af4MBNJJc,2214
|
173
|
+
lionagi/service/third_party/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
174
|
+
lionagi/service/third_party/anthropic_models.py,sha256=8Ioc2YjQkHIwsqrnzbfyXAADIIPpP21mPDhx7XkGpRo,4022
|
175
|
+
lionagi/service/third_party/claude_code.py,sha256=jy7Xe2lQ85uKUayaHHdLfSQqWVNhgC9A71z1TA6cYS0,23831
|
176
|
+
lionagi/service/third_party/exa_models.py,sha256=G_hnekcy-DillPLzMoDQ8ZisVAL8Mp7iMAK4xqAT_3w,5470
|
177
|
+
lionagi/service/third_party/openai_models.py,sha256=UCuIlYejgEAReQh1ldm-k1HC1Xk_lDM0aY0UBhbA7KA,11357
|
178
|
+
lionagi/service/third_party/pplx_models.py,sha256=-EhyJgOWR6rzSv3zczUtk80X6c19p18Dg9KC6l8BFRQ,6473
|
179
|
+
lionagi/session/__init__.py,sha256=KqR6ZzF0JZmPxa0Yb5Ocm88MTMQR1alhlm00QTbHOvA,198
|
180
|
+
lionagi/session/branch.py,sha256=I-0Yn3nkNvAZTjuC1imTSrr3DYzRsi0ZiZEsBiHOSz8,59756
|
181
|
+
lionagi/session/prompts.py,sha256=GPr0jibyAAqS3awDzGC8SoCL6aWJLLCCbXY0JUuxOC0,3170
|
182
|
+
lionagi/session/session.py,sha256=DAt7pU5l2J6t6Uzon0zlC0eWsOtIHFUs2VuLolH0Bcw,12810
|
183
|
+
lionagi/tools/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
184
|
+
lionagi/tools/base.py,sha256=ypzT7-XPGW_KzIAAGwlzwRx594zcIPoBqW_WqAozwo4,1893
|
185
|
+
lionagi/tools/types.py,sha256=HD3lkxKFFxVKPgxVLOerJ-VNxQiXA0Cw2TrlxEEBQWU,226
|
186
|
+
lionagi/tools/file/__init__.py,sha256=ySvN2mEd6TEvCVCDGfBS9H_cSrZQ21WomjRC8Herm0Y,108
|
187
|
+
lionagi/tools/file/reader.py,sha256=JCKDyOcKv07Iee8oJls8y5Qg0_PefnfqsIp_FiZQrsQ,9660
|
188
|
+
lionagi-0.18.0.dist-info/METADATA,sha256=3j0lkBH0hhEThs8UwMZbPvqUZZc-DKQaL3H4_Eo0-k4,23416
|
189
|
+
lionagi-0.18.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
190
|
+
lionagi-0.18.0.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
|
191
|
+
lionagi-0.18.0.dist-info/RECORD,,
|
lionagi/operations/_act/act.py
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
# Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
|
2
|
-
#
|
3
|
-
# SPDX-License-Identifier: Apache-2.0
|
4
|
-
|
5
|
-
import logging
|
6
|
-
from typing import TYPE_CHECKING
|
7
|
-
|
8
|
-
from pydantic import BaseModel
|
9
|
-
|
10
|
-
from lionagi.fields.action import ActionResponseModel
|
11
|
-
from lionagi.protocols.types import ActionRequest, Log
|
12
|
-
|
13
|
-
if TYPE_CHECKING:
|
14
|
-
from lionagi.session.branch import Branch
|
15
|
-
|
16
|
-
|
17
|
-
async def _act(
|
18
|
-
branch: "Branch",
|
19
|
-
action_request: BaseModel | dict,
|
20
|
-
suppress_errors: bool = False,
|
21
|
-
verbose_action: bool = False,
|
22
|
-
) -> "ActionResponseModel":
|
23
|
-
_request = {}
|
24
|
-
|
25
|
-
if isinstance(action_request, BaseModel):
|
26
|
-
if hasattr(action_request, "function") and hasattr(
|
27
|
-
action_request, "arguments"
|
28
|
-
):
|
29
|
-
_request["function"] = action_request.function
|
30
|
-
_request["arguments"] = action_request.arguments
|
31
|
-
elif isinstance(action_request, dict):
|
32
|
-
if {"function", "arguments"} <= set(action_request.keys()):
|
33
|
-
_request["function"] = action_request["function"]
|
34
|
-
_request["arguments"] = action_request["arguments"]
|
35
|
-
|
36
|
-
try:
|
37
|
-
if verbose_action:
|
38
|
-
args_ = str(_request["arguments"])
|
39
|
-
args_ = args_[:50] + "..." if len(args_) > 50 else args_
|
40
|
-
print(f"Invoking action {_request['function']} with {args_}.")
|
41
|
-
|
42
|
-
func_call = await branch._action_manager.invoke(_request)
|
43
|
-
if verbose_action:
|
44
|
-
print(
|
45
|
-
f"Action {_request['function']} invoked, status: {func_call.status}."
|
46
|
-
)
|
47
|
-
|
48
|
-
except Exception as e:
|
49
|
-
content = {
|
50
|
-
"error": str(e),
|
51
|
-
"function": _request.get("function"),
|
52
|
-
"arguments": _request.get("arguments"),
|
53
|
-
"branch": str(branch.id),
|
54
|
-
}
|
55
|
-
branch._log_manager.log(Log(content=content))
|
56
|
-
if verbose_action:
|
57
|
-
print(f"Action {_request['function']} failed, error: {str(e)}.")
|
58
|
-
if suppress_errors:
|
59
|
-
logging.error(
|
60
|
-
f"Error invoking action '{_request['function']}': {e}"
|
61
|
-
)
|
62
|
-
return None
|
63
|
-
raise e
|
64
|
-
|
65
|
-
branch._log_manager.log(Log.create(func_call))
|
66
|
-
|
67
|
-
if not isinstance(action_request, ActionRequest):
|
68
|
-
action_request = ActionRequest.create(
|
69
|
-
sender=branch.id,
|
70
|
-
recipient=func_call.func_tool.id,
|
71
|
-
**_request,
|
72
|
-
)
|
73
|
-
|
74
|
-
# Add the action request/response to the message manager, if not present
|
75
|
-
if action_request not in branch.messages:
|
76
|
-
branch.msgs.add_message(action_request=action_request)
|
77
|
-
|
78
|
-
branch.msgs.add_message(
|
79
|
-
action_request=action_request,
|
80
|
-
action_output=func_call.response,
|
81
|
-
)
|
82
|
-
|
83
|
-
return ActionResponseModel(
|
84
|
-
function=action_request.function,
|
85
|
-
arguments=action_request.arguments,
|
86
|
-
output=func_call.response,
|
87
|
-
)
|
@@ -1,28 +0,0 @@
|
|
1
|
-
## Rendering Templates
|
2
|
-
|
3
|
-
Once templates are defined, you can load and render them using Jinja2:
|
4
|
-
|
5
|
-
```python
|
6
|
-
from jinja2 import Environment, FileSystemLoader
|
7
|
-
|
8
|
-
env = Environment(loader=FileSystemLoader('templates'))
|
9
|
-
|
10
|
-
# Example: Rendering an instruction message
|
11
|
-
template = env.get_template('instruction_message.jinja2')
|
12
|
-
args = {
|
13
|
-
"guidance": "Please ensure accuracy.",
|
14
|
-
"instruction": "Summarize the document",
|
15
|
-
"context": ["Doc1: ...", "Doc2: ..."],
|
16
|
-
"request_fields": {"summary": "...", "key_points": "..."}
|
17
|
-
}
|
18
|
-
message_text = template.render(**args)
|
19
|
-
print(message_text)
|
20
|
-
```
|
21
|
-
|
22
|
-
Benefits and Customization
|
23
|
-
• You can easily rearrange sections within these templates without changing your code logic.
|
24
|
-
• Each message type is clearly separated, making it simpler to maintain or adjust one message format without affecting the others.
|
25
|
-
• If you find that you use some snippet (like rendering a schema) in multiple templates, you can factor it out into its own partial template (like tool_schemas.jinja2) and include it where needed.
|
26
|
-
• Over time, you can add more templates or split existing ones if certain messages become too complex.
|
27
|
-
|
28
|
-
By establishing this set of base templates and arguments, you have a starting point. You can expand or refine as your requirements evolve.
|
@@ -1,61 +0,0 @@
|
|
1
|
-
{%- set content = [] -%}
|
2
|
-
|
3
|
-
{# If plain_content is provided, we use it directly. Otherwise, we build a text block from guidance, instruction, context, etc. #}
|
4
|
-
{% if plain_content %}
|
5
|
-
{% set content = content + [{"type": "text", "text": plain_content}] %}
|
6
|
-
{% else %}
|
7
|
-
{# Build a text block from the available sections #}
|
8
|
-
{% set text_block = "" %}
|
9
|
-
|
10
|
-
{% if guidance %}
|
11
|
-
## Guidance
|
12
|
-
{{ guidance }}
|
13
|
-
|
14
|
-
{% endif %}
|
15
|
-
|
16
|
-
{% if instruction %}
|
17
|
-
## Instruction
|
18
|
-
{{ instruction }}
|
19
|
-
|
20
|
-
{% endif %}
|
21
|
-
|
22
|
-
{% if context %}
|
23
|
-
## Context
|
24
|
-
{% for item in context %}
|
25
|
-
- {{ item }}
|
26
|
-
{% endfor %}
|
27
|
-
{% endif %}
|
28
|
-
|
29
|
-
{% if tool_schemas %}
|
30
|
-
## Tool Schemas
|
31
|
-
{% include "tool_schemas.jinja2" %}
|
32
|
-
{% endif %}
|
33
|
-
|
34
|
-
{% if request_fields %}
|
35
|
-
## Requested Fields
|
36
|
-
Please return a JSON object with the following fields:
|
37
|
-
```json
|
38
|
-
{{ request_fields | tojson(indent=2) }}
|
39
|
-
|
40
|
-
{% endif %}
|
41
|
-
|
42
|
-
{% if request_response_format %}
|
43
|
-
|
44
|
-
Response Format
|
45
|
-
|
46
|
-
{{ request_response_format }}
|
47
|
-
{% endif %}
|
48
|
-
|
49
|
-
{# Append the built sections into text_block #}
|
50
|
-
{% set text_block = text_block + self %}
|
51
|
-
{% set content = content + [{"type": "text", "text": text_block.strip()}] %}
|
52
|
-
{% endif %}
|
53
|
-
|
54
|
-
{# If images are present, we append image_url items to content #}
|
55
|
-
{% if images %}
|
56
|
-
{% for img in images %}
|
57
|
-
{% set content = content + [{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64," ~ img, "detail": image_detail}}] %}
|
58
|
-
{% endfor %}
|
59
|
-
{% endif %}
|
60
|
-
|
61
|
-
{{ content | tojson(indent=2) }}
|
@@ -1,28 +0,0 @@
|
|
1
|
-
from .anthropic_ import AnthropicMessagesEndpoint
|
2
|
-
from .claude_code_cli import ClaudeCodeCLIEndpoint, ClaudeCodeRequest
|
3
|
-
from .exa_ import ExaSearchEndpoint, ExaSearchRequest
|
4
|
-
from .oai_ import (
|
5
|
-
GroqChatEndpoint,
|
6
|
-
OpenaiChatEndpoint,
|
7
|
-
OpenaiEmbedEndpoint,
|
8
|
-
OpenaiResponseEndpoint,
|
9
|
-
OpenrouterChatEndpoint,
|
10
|
-
)
|
11
|
-
from .ollama_ import OllamaChatEndpoint
|
12
|
-
from .perplexity_ import PerplexityChatEndpoint, PerplexityChatRequest
|
13
|
-
|
14
|
-
__all__ = (
|
15
|
-
"AnthropicMessagesEndpoint",
|
16
|
-
"ClaudeCodeRequest",
|
17
|
-
"ClaudeCodeCLIEndpoint",
|
18
|
-
"ExaSearchEndpoint",
|
19
|
-
"ExaSearchRequest",
|
20
|
-
"OpenaiChatEndpoint",
|
21
|
-
"OpenaiEmbedEndpoint",
|
22
|
-
"OpenaiResponseEndpoint",
|
23
|
-
"OpenrouterChatEndpoint",
|
24
|
-
"GroqChatEndpoint",
|
25
|
-
"OllamaChatEndpoint",
|
26
|
-
"PerplexityChatEndpoint",
|
27
|
-
"PerplexityChatRequest",
|
28
|
-
)
|
@@ -1,198 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
OpenAI Model Names extracted from generated models.
|
3
|
-
|
4
|
-
This module provides lists of allowed model names for different OpenAI services,
|
5
|
-
extracted from the auto-generated openai_models.py file.
|
6
|
-
"""
|
7
|
-
|
8
|
-
from typing import Literal, get_args
|
9
|
-
|
10
|
-
# Manually define the chat models from the ChatModel class in openai_models.py
|
11
|
-
# These are extracted from the Literal type definition
|
12
|
-
CHAT_MODELS = [
|
13
|
-
"gpt-5",
|
14
|
-
"gpt-5-mini",
|
15
|
-
"gpt-5-nano",
|
16
|
-
"gpt-5-2025-08-07",
|
17
|
-
"gpt-5-mini-2025-08-07",
|
18
|
-
"gpt-5-nano-2025-08-07",
|
19
|
-
"gpt-5-chat-latest",
|
20
|
-
"gpt-4.1",
|
21
|
-
"gpt-4.1-mini",
|
22
|
-
"gpt-4.1-nano",
|
23
|
-
"gpt-4.1-2025-04-14",
|
24
|
-
"gpt-4.1-mini-2025-04-14",
|
25
|
-
"gpt-4.1-nano-2025-04-14",
|
26
|
-
"o4-mini",
|
27
|
-
"o4-mini-2025-04-16",
|
28
|
-
"o3",
|
29
|
-
"o3-2025-04-16",
|
30
|
-
"o3-mini",
|
31
|
-
"o3-mini-2025-01-31",
|
32
|
-
"o1",
|
33
|
-
"o1-2024-12-17",
|
34
|
-
"o1-preview",
|
35
|
-
"o1-preview-2024-09-12",
|
36
|
-
"o1-mini",
|
37
|
-
"o1-mini-2024-09-12",
|
38
|
-
"gpt-4o",
|
39
|
-
"gpt-4o-2024-11-20",
|
40
|
-
"gpt-4o-2024-08-06",
|
41
|
-
"gpt-4o-2024-05-13",
|
42
|
-
"gpt-4o-audio-preview",
|
43
|
-
"gpt-4o-audio-preview-2024-10-01",
|
44
|
-
"gpt-4o-audio-preview-2024-12-17",
|
45
|
-
"gpt-4o-audio-preview-2025-06-03",
|
46
|
-
"gpt-4o-mini-audio-preview",
|
47
|
-
"gpt-4o-mini-audio-preview-2024-12-17",
|
48
|
-
"gpt-4o-search-preview",
|
49
|
-
"gpt-4o-mini-search-preview",
|
50
|
-
"gpt-4o-search-preview-2025-03-11",
|
51
|
-
"gpt-4o-mini-search-preview-2025-03-11",
|
52
|
-
"chatgpt-4o-latest",
|
53
|
-
"codex-mini-latest",
|
54
|
-
"gpt-4o-mini",
|
55
|
-
"gpt-4o-mini-2024-07-18",
|
56
|
-
"gpt-4-turbo",
|
57
|
-
"gpt-4-turbo-2024-04-09",
|
58
|
-
"gpt-4-0125-preview",
|
59
|
-
"gpt-4-turbo-preview",
|
60
|
-
"gpt-4-1106-preview",
|
61
|
-
"gpt-4-vision-preview",
|
62
|
-
"gpt-4",
|
63
|
-
"gpt-4-0314",
|
64
|
-
"gpt-4-0613",
|
65
|
-
"gpt-4-32k",
|
66
|
-
"gpt-4-32k-0314",
|
67
|
-
"gpt-4-32k-0613",
|
68
|
-
"gpt-3.5-turbo",
|
69
|
-
"gpt-3.5-turbo-16k",
|
70
|
-
"gpt-3.5-turbo-0301",
|
71
|
-
"gpt-3.5-turbo-0613",
|
72
|
-
"gpt-3.5-turbo-1106",
|
73
|
-
"gpt-3.5-turbo-0125",
|
74
|
-
"gpt-3.5-turbo-16k-0613",
|
75
|
-
]
|
76
|
-
|
77
|
-
# Reasoning models (o1, o3, o4 series)
|
78
|
-
# Note: Add o1-pro models that may not be in the generated list yet
|
79
|
-
ADDITIONAL_REASONING_MODELS = [
|
80
|
-
"o1-pro",
|
81
|
-
"o1-pro-2025-03-19",
|
82
|
-
"o3-pro",
|
83
|
-
"o3-pro-2025-06-10",
|
84
|
-
]
|
85
|
-
|
86
|
-
REASONING_MODELS = [
|
87
|
-
model
|
88
|
-
for model in CHAT_MODELS
|
89
|
-
if model.startswith(("o1", "o1-", "o3", "o3-", "o4", "o4-", "gpt-5"))
|
90
|
-
] + ADDITIONAL_REASONING_MODELS
|
91
|
-
|
92
|
-
# GPT models (excluding reasoning models)
|
93
|
-
GPT_MODELS = [
|
94
|
-
model
|
95
|
-
for model in CHAT_MODELS
|
96
|
-
if model.startswith("gpt")
|
97
|
-
or model.startswith("chatgpt")
|
98
|
-
or model.startswith("codex")
|
99
|
-
]
|
100
|
-
|
101
|
-
# Embedding models
|
102
|
-
EMBEDDING_MODELS = [
|
103
|
-
"text-embedding-ada-002",
|
104
|
-
"text-embedding-3-small",
|
105
|
-
"text-embedding-3-large",
|
106
|
-
]
|
107
|
-
|
108
|
-
# Audio models
|
109
|
-
AUDIO_MODELS = {
|
110
|
-
"tts": ["tts-1", "tts-1-hd", "gpt-4o-mini-tts"],
|
111
|
-
"transcription": [
|
112
|
-
"whisper-1",
|
113
|
-
"gpt-4o-transcribe",
|
114
|
-
"gpt-4o-mini-transcribe",
|
115
|
-
],
|
116
|
-
}
|
117
|
-
|
118
|
-
# Image models
|
119
|
-
IMAGE_MODELS = ["dall-e-2", "dall-e-3", "gpt-image-1"]
|
120
|
-
|
121
|
-
# Moderation models
|
122
|
-
MODERATION_MODELS = ["text-moderation-latest", "text-moderation-stable"]
|
123
|
-
|
124
|
-
|
125
|
-
def is_reasoning_model(model: str) -> bool:
|
126
|
-
"""Check if a model is a reasoning model (o1/o3/o4 series)."""
|
127
|
-
return model in REASONING_MODELS
|
128
|
-
|
129
|
-
|
130
|
-
def is_valid_chat_model(model: str) -> bool:
|
131
|
-
"""Check if a model is a valid chat model."""
|
132
|
-
return model in CHAT_MODELS
|
133
|
-
|
134
|
-
|
135
|
-
def is_valid_embedding_model(model: str) -> bool:
|
136
|
-
"""Check if a model is a valid embedding model."""
|
137
|
-
return model in EMBEDDING_MODELS
|
138
|
-
|
139
|
-
|
140
|
-
def get_model_category(model: str) -> str:
|
141
|
-
"""Get the category of a model."""
|
142
|
-
if model in REASONING_MODELS:
|
143
|
-
return "reasoning"
|
144
|
-
elif model in GPT_MODELS:
|
145
|
-
return "gpt"
|
146
|
-
elif model in EMBEDDING_MODELS:
|
147
|
-
return "embedding"
|
148
|
-
elif model in AUDIO_MODELS["tts"]:
|
149
|
-
return "tts"
|
150
|
-
elif model in AUDIO_MODELS["transcription"]:
|
151
|
-
return "transcription"
|
152
|
-
elif model in IMAGE_MODELS:
|
153
|
-
return "image"
|
154
|
-
elif model in MODERATION_MODELS:
|
155
|
-
return "moderation"
|
156
|
-
else:
|
157
|
-
return "unknown"
|
158
|
-
|
159
|
-
|
160
|
-
def validate_model(model: str, category: str = None) -> bool:
|
161
|
-
"""
|
162
|
-
Validate if a model is valid, optionally checking category.
|
163
|
-
|
164
|
-
Args:
|
165
|
-
model: The model name to validate
|
166
|
-
category: Optional category to check against ('chat', 'embedding', etc.)
|
167
|
-
|
168
|
-
Returns:
|
169
|
-
True if model is valid (and in the specified category if provided)
|
170
|
-
"""
|
171
|
-
if category == "chat":
|
172
|
-
return model in CHAT_MODELS or model in ADDITIONAL_REASONING_MODELS
|
173
|
-
elif category == "reasoning":
|
174
|
-
return is_reasoning_model(model)
|
175
|
-
elif category == "embedding":
|
176
|
-
return is_valid_embedding_model(model)
|
177
|
-
elif category:
|
178
|
-
return get_model_category(model) == category
|
179
|
-
else:
|
180
|
-
# Check if model exists in any category
|
181
|
-
return get_model_category(model) != "unknown"
|
182
|
-
|
183
|
-
|
184
|
-
# Export all model lists
|
185
|
-
__all__ = [
|
186
|
-
"CHAT_MODELS",
|
187
|
-
"REASONING_MODELS",
|
188
|
-
"GPT_MODELS",
|
189
|
-
"EMBEDDING_MODELS",
|
190
|
-
"AUDIO_MODELS",
|
191
|
-
"IMAGE_MODELS",
|
192
|
-
"MODERATION_MODELS",
|
193
|
-
"is_reasoning_model",
|
194
|
-
"is_valid_chat_model",
|
195
|
-
"is_valid_embedding_model",
|
196
|
-
"get_model_category",
|
197
|
-
"validate_model",
|
198
|
-
]
|