ApiLogicServer 12.0.4__py3-none-any.whl → 12.1.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.
Files changed (41) hide show
  1. {ApiLogicServer-12.0.4.dist-info → ApiLogicServer-12.1.0.dist-info}/METADATA +2 -1
  2. {ApiLogicServer-12.0.4.dist-info → ApiLogicServer-12.1.0.dist-info}/RECORD +39 -24
  3. {ApiLogicServer-12.0.4.dist-info → ApiLogicServer-12.1.0.dist-info}/WHEEL +1 -1
  4. api_logic_server_cli/api_logic_server.py +8 -201
  5. api_logic_server_cli/api_logic_server_info.yaml +3 -3
  6. api_logic_server_cli/cli.py +9 -79
  7. api_logic_server_cli/create_from_model/__pycache__/dbml.cpython-312.pyc +0 -0
  8. api_logic_server_cli/create_from_model/__pycache__/meta_model.cpython-312.pyc +0 -0
  9. api_logic_server_cli/create_from_model/__pycache__/model_creation_services.cpython-312.pyc +0 -0
  10. api_logic_server_cli/create_from_model/meta_model.py +1 -1
  11. api_logic_server_cli/create_from_model/model_creation_services.py +3 -1
  12. api_logic_server_cli/genai.py +273 -151
  13. api_logic_server_cli/genaiZ.py +752 -0
  14. api_logic_server_cli/prototypes/genai_demo/logic/declare_logic.py +11 -12
  15. api_logic_server_cli/prototypes/manager/.vscode/launch.json +78 -1
  16. api_logic_server_cli/prototypes/manager/README.md +16 -3
  17. api_logic_server_cli/prototypes/manager/system/genai/create_db_models_inserts/create_db_models_create_db.py +10 -0
  18. api_logic_server_cli/prototypes/manager/system/genai/create_db_models_inserts/create_db_models_imports.py +19 -0
  19. api_logic_server_cli/prototypes/manager/system/genai/create_db_models_inserts/create_db_models_test_data.py +7 -0
  20. api_logic_server_cli/prototypes/manager/system/genai/examples/emp_depts/emp_dept.prompt +4 -0
  21. api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo.prompt +1 -1
  22. api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo.response_example +56 -130
  23. api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo.response_example_z +130 -0
  24. api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_informal.prompt +10 -0
  25. api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_iterative_logic/genai_demo_iterative_logic_000.response +1 -0
  26. api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_iterative_logic/genai_demo_iterative_logic_001.prompt +171 -0
  27. api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_iterative_logic/genai_demo_iterative_logic_002.prompt +21 -0
  28. api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_iterative_logic/genai_demo_iterative_logic_003.response +94 -0
  29. api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_iterative_logic/genai_demo_iterative_logic_004.prompt +6 -0
  30. api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_iterative_logic/genai_demo_iterative_logic_005.response_example +122 -0
  31. api_logic_server_cli/prototypes/manager/system/genai/learning_requests/logic_bank_api.prompt +42 -5
  32. api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/logic_inserts.prompt +1 -0
  33. api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/response_format.prompt +6 -0
  34. api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/sqlite_inserts.prompt +11 -2
  35. api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/sqlite_inserts_iterations.prompt +25 -0
  36. api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/web_genai copy.prompt +15 -0
  37. api_logic_server_cli/prototypes/manager/system/genai/examples/emp_depts/emp_dept_explicit.prompt +0 -7
  38. api_logic_server_cli/prototypes/manager/system/genai/examples/emp_depts/emp_dept_implicit_fails.prompt +0 -5
  39. {ApiLogicServer-12.0.4.dist-info → ApiLogicServer-12.1.0.dist-info}/LICENSE +0 -0
  40. {ApiLogicServer-12.0.4.dist-info → ApiLogicServer-12.1.0.dist-info}/entry_points.txt +0 -0
  41. {ApiLogicServer-12.0.4.dist-info → ApiLogicServer-12.1.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ApiLogicServer
3
- Version: 12.0.4
3
+ Version: 12.1.0
4
4
  Author-email: Val Huber <apilogicserver@gmail.com>
5
5
  License: BSD-3-Clause
6
6
  Project-URL: Homepage, https://apilogicserver.github.io/Docs/
@@ -69,6 +69,7 @@ Requires-Dist: translate ==3.6.1
69
69
  Requires-Dist: libretranslatepy ==2.1.1
70
70
  Requires-Dist: reportlab ==4.2.0
71
71
  Requires-Dist: xlsxwriter ==3.2.0
72
+ Requires-Dist: openai ==1.52.1
72
73
 
73
74
  [![Downloads](https://pepy.tech/badge/apilogicserver)](https://pepy.tech/project/apilogicserver)
74
75
  [![Latest Version](https://img.shields.io/pypi/v/apilogicserver.svg)](https://pypi.python.org/pypi/apilogicserver/)
@@ -1,11 +1,12 @@
1
1
  api_logic_server_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- api_logic_server_cli/api_logic_server.py,sha256=IoIZmOnWmk8fWIDtDuDEWe7Gl3GIG_LUulYsD8vbYME,123341
3
- api_logic_server_cli/api_logic_server_info.yaml,sha256=Y15ORoUXWDJDQnC83EEZtZQgiN6pBNd6rOmccdUlN7M,114
4
- api_logic_server_cli/cli.py,sha256=3_lhrilQ4OSfCxBNvzf4ar1jNxWqY35v1owmYhy8MR0,80181
2
+ api_logic_server_cli/api_logic_server.py,sha256=m_OIs-Wl9nkykvQrBeZyq609ZO98_k6QObC0VlgrzCI,112059
3
+ api_logic_server_cli/api_logic_server_info.yaml,sha256=Wdu6WhrAzb8VX0Am7_EFw2Oi9LAQ60Mrcq3PBI8SnHs,112
4
+ api_logic_server_cli/cli.py,sha256=vdVV-L6PFIv7ph3RpBeRLcfhbWE4ItLV2LJlTH_6muM,75997
5
5
  api_logic_server_cli/cli_args_base.py,sha256=uRlYQWlI5JMkaH9RqZo_X7ow0u-WDm14H2ntYMKycSk,3082
6
6
  api_logic_server_cli/cli_args_project.py,sha256=TxOdz0n5g_3aWiVwkVofnfYj0XhG35rfIdU6wRmCdys,4384
7
7
  api_logic_server_cli/extended_builder.py,sha256=EhtXGAt_RrDR2tCtgvc2U82we7fr-F6pP-e6HS6dQWQ,13867
8
- api_logic_server_cli/genai.py,sha256=REKWGhhXx5wtSalZPQ5NgjVMtcidmyPyo5FSyyELvB0,39013
8
+ api_logic_server_cli/genai.py,sha256=IuWk785LF_6_GQErn3cHcWtfKsNNS3_P6pfchyjSutA,44556
9
+ api_logic_server_cli/genaiZ.py,sha256=gITl0yYiXZvZEcEh1koXWx3ocRJX5HSWusHttzUWMkE,41143
9
10
  api_logic_server_cli/genai_logic_builder.py,sha256=JQXLKIdLOpiyYFUAWowBS-NEKs_4lgP_8OLn5OXl2rU,12170
10
11
  api_logic_server_cli/logging.yml,sha256=69lnsJCgp0p8GQfLldEO-0gQOU9OusXbyg8iSdR3lTM,1418
11
12
  api_logic_server_cli/manager.py,sha256=ZJ4lz_i8XUDfLks4aorYQRw7AWt70Eg75TZuLkYBbh4,9645
@@ -15,8 +16,8 @@ api_logic_server_cli/create_from_model/api_expose_api_models_creator.py,sha256=x
15
16
  api_logic_server_cli/create_from_model/api_logic_server_utils.py,sha256=aivxL8rj2DNWvCZRRu5MS1cAIUpvMF4dplFg7Bv8EU8,24153
16
17
  api_logic_server_cli/create_from_model/create_db_from_model.py,sha256=CvXVH-DEl8AgwkTLS1OzrNLb0LPrkK5TQB35eDVb0pY,4328
17
18
  api_logic_server_cli/create_from_model/dbml.py,sha256=IV9eG1bib10zTPFYyJNeFPveE0gNrt-NoPZCQHF74BM,8695
18
- api_logic_server_cli/create_from_model/meta_model.py,sha256=FPkkyyuTvl3DI3s1pR-upB8nG6aIYu14V5p5Nz50W4o,5782
19
- api_logic_server_cli/create_from_model/model_creation_services.py,sha256=Z9V4--eJBtSC9NEgd02zXCagcbefwwVDwrIaQhFCVC0,41341
19
+ api_logic_server_cli/create_from_model/meta_model.py,sha256=ERf7tSgnSJSeRMVyggkdg-lvORQZSbfK0KMpL63qSEY,5837
20
+ api_logic_server_cli/create_from_model/model_creation_services.py,sha256=QE7UcVDn0J1k6HL2iqe0_UW4d3wL_HVPJVpSLOmuh30,41436
20
21
  api_logic_server_cli/create_from_model/ont_build.py,sha256=8Ki426F2OWT7xaFNBahHrmYMYVYnm25xOAwPirjyo3E,57050
21
22
  api_logic_server_cli/create_from_model/ont_create.py,sha256=WJTG-dwL_Gmea0fnPOb9TloEu5Ia68xGa42p34dRQSs,13043
22
23
  api_logic_server_cli/create_from_model/ui_admin_creator.py,sha256=cMUXbgOSGgIT-PFnANI1e4ki7F-WppKD0xRGqTNHjMM,37907
@@ -25,9 +26,9 @@ api_logic_server_cli/create_from_model/__pycache__/__init__.cpython-312.pyc,sha2
25
26
  api_logic_server_cli/create_from_model/__pycache__/api_expose_api_models_creator.cpython-312.pyc,sha256=XOsCJ_UNn7i3nuwemrIm6saX29RpB09xtmlctdG1Vf0,5254
26
27
  api_logic_server_cli/create_from_model/__pycache__/api_logic_server_utils.cpython-312.pyc,sha256=ykMoitCeQ8oZ16qFy6by8wDXdp3hXEgh8mLvtOdoEXk,24332
27
28
  api_logic_server_cli/create_from_model/__pycache__/create_db_from_model.cpython-312.pyc,sha256=QHIoTeGYwjqhaG3AI_EhfvbgoitlLm2ySoDJ42YhQbM,4752
28
- api_logic_server_cli/create_from_model/__pycache__/dbml.cpython-312.pyc,sha256=D7kFovjPy-xudPwD-jBTYHO6qOux_gRNrTtueZLJxek,8952
29
- api_logic_server_cli/create_from_model/__pycache__/meta_model.cpython-312.pyc,sha256=Z2OtDIWNNGN9uQmDC2gKr9Gq-xRGf9bDvp8JsoXiRb8,7033
30
- api_logic_server_cli/create_from_model/__pycache__/model_creation_services.cpython-312.pyc,sha256=lKruntZridpk5f6SIGr5CU0H3aHKqNWZ7EAwxRvpmxA,36544
29
+ api_logic_server_cli/create_from_model/__pycache__/dbml.cpython-312.pyc,sha256=E4oR4UFDjW7Z7SCfo-USc7vUVfwQFma1O_qldAT7L7c,8952
30
+ api_logic_server_cli/create_from_model/__pycache__/meta_model.cpython-312.pyc,sha256=Ylu_fwSC4BHfTr4xzXCfyY6ChXu9seDx_LphGw_Tl6Y,7133
31
+ api_logic_server_cli/create_from_model/__pycache__/model_creation_services.cpython-312.pyc,sha256=tsTMN6FZzN1hk3af3f4qDmuh9ZvQnoFlLYRu0xl7SYM,36599
31
32
  api_logic_server_cli/create_from_model/__pycache__/ont_build.cpython-312.pyc,sha256=KQ_3RTEzR2NqxvnztS4DK2i1VFxSgxlN8t69JPzzcTo,65910
32
33
  api_logic_server_cli/create_from_model/__pycache__/ont_create.cpython-312.pyc,sha256=odljk1f0Bt_8hPQ6SkzQv_Vprgx-iwZv7KqmIFhaEbI,13319
33
34
  api_logic_server_cli/create_from_model/__pycache__/ui_admin_creator.cpython-312.pyc,sha256=xdod-4Qgnv0xlCPORNF1Ox4EAPnlnafPS2iUgMvsP88,38462
@@ -638,16 +639,16 @@ api_logic_server_cli/prototypes/genai_demo/database/chatgpt/__pycache__/sample_a
638
639
  api_logic_server_cli/prototypes/genai_demo/integration/row_dict_maps/OrderB2B.py,sha256=TXhhw54Iyp2mf629rDT8elawOc2q-VNfUaumYBaRAto,1236
639
640
  api_logic_server_cli/prototypes/genai_demo/integration/row_dict_maps/OrderShipping.py,sha256=4wM45eRNkDNl7vcX689VSR7BgdKvae5hD26L8XZYGfc,1197
640
641
  api_logic_server_cli/prototypes/genai_demo/logic/cocktail-napkin.jpg,sha256=5rNSy6wvcWSHPJQZqkf2DHs19QLWiyqMBNwxGqjstZU,133075
641
- api_logic_server_cli/prototypes/genai_demo/logic/declare_logic.py,sha256=LfyswZLiKLulo3CzI7aQAcC90ytYxakbmaSWRb1kLdg,4814
642
+ api_logic_server_cli/prototypes/genai_demo/logic/declare_logic.py,sha256=gmlvp9D8RRo40FA3zdKvMjKGm6lvJTqltr9BPs9DQHc,4895
642
643
  api_logic_server_cli/prototypes/genai_demo/security/declare_security.py,sha256=L3AL1bgdqIWQxdkJZcFVDOQ0XRpmeLAKqwlAYChFWKo,2108
643
644
  api_logic_server_cli/prototypes/genai_demo/ui/admin/admin.yaml,sha256=9rSLJXDr5n3ILHQAU2XDjdGzql9ZyHXmwCYAmaGcH-g,2288
644
645
  api_logic_server_cli/prototypes/manager/.DS_Store,sha256=S3TCvGESaKKyncVM3C2DvN5CYMZKSgW4Q80kmrxWyqI,6148
645
646
  api_logic_server_cli/prototypes/manager/.gitignore,sha256=xfAjNQHokbo6GuN1ghx-eml8tQIzwUczLC_YVzElndI,195
646
- api_logic_server_cli/prototypes/manager/README.md,sha256=ycsXB38bmD8EIpkL2txdpILT85LR6QvwGwcNEJ6iQAQ,12044
647
+ api_logic_server_cli/prototypes/manager/README.md,sha256=dOsCdfw3CKi_vS3RFQn1LX5eo_5pz4lxld2KN8_0wnw,12468
647
648
  api_logic_server_cli/prototypes/manager/sample_ai.py,sha256=08OhtojM6m79UgbBKx_E5N7Cnpvs9142cWIl9M245PA,1915
648
649
  api_logic_server_cli/prototypes/manager/settings.txt,sha256=_jjL30jomIMxG21edDfrXYRT9Zfgr_0EdUWvcEUOnFQ,368
649
650
  api_logic_server_cli/prototypes/manager/.vscode/ApiLogicServer.code-workspace,sha256=HFycZhs0k5fXLxEZF-FBSA2S_JRDIYtVOhqb9743hH4,296
650
- api_logic_server_cli/prototypes/manager/.vscode/launch.json,sha256=F6oU7Rblst912Oh9RP8XDeb3PYtreSAymOe1Cwo7yYU,10782
651
+ api_logic_server_cli/prototypes/manager/.vscode/launch.json,sha256=oz5Sm-75u_h5QIn58w38C8fXp7Wnof8FJuearbQbPKw,14200
651
652
  api_logic_server_cli/prototypes/manager/.vscode/settings.json,sha256=wQgpFvviPbZCmsf02UgrJSGAz7g3i4chDZ_AdSIOr5Y,625
652
653
  api_logic_server_cli/prototypes/manager/system/.DS_Store,sha256=lUKIi9eGUtsUbl4MoSzYvKeLhDoBOBP1pi_2aYiQtuw,6148
653
654
  api_logic_server_cli/prototypes/manager/system/secrets.txt,sha256=ghGnN1YfCRQvZc43bolQKDgQ1UXg0V-3T1AQTNk5Tg8,386
@@ -1089,8 +1090,11 @@ api_logic_server_cli/prototypes/manager/system/app_model_editor/venv_setup/requi
1089
1090
  api_logic_server_cli/prototypes/manager/system/app_model_editor/venv_setup/venv-linux.sh,sha256=FDIxVyZ50CgLVLrAW942Kxnkv1n4WLR2UerzUnuhPwM,900
1090
1091
  api_logic_server_cli/prototypes/manager/system/app_model_editor/venv_setup/venv.ps1,sha256=_-LfKkLw5HOkZsF59BGCqM9Zsk3n1oDIyDb4emy0O08,698
1091
1092
  api_logic_server_cli/prototypes/manager/system/app_model_editor/venv_setup/venv.sh,sha256=aWX9fa8fe6aO9ifBIZEgGY5UGh4I0arOoCwBzDsxgU8,893
1093
+ api_logic_server_cli/prototypes/manager/system/genai/create_db_models_inserts/create_db_models_create_db.py,sha256=vzLX6nzVXYWDz9yWm0xCss99dky5Se7GVqrYplC2BRk,247
1094
+ api_logic_server_cli/prototypes/manager/system/genai/create_db_models_inserts/create_db_models_imports.py,sha256=cB7Vrvbd_qOVKHCYm0jQT0xlPWIyInHzWUlQeajvWZk,786
1092
1095
  api_logic_server_cli/prototypes/manager/system/genai/create_db_models_inserts/create_db_models_prefix.py,sha256=_rQsqDG2ieNxSsv28t7f9Z5Bs6IMASl8rVunVZIHyUk,301
1093
1096
  api_logic_server_cli/prototypes/manager/system/genai/create_db_models_inserts/create_db_models_prefix_iteration.py,sha256=_rQsqDG2ieNxSsv28t7f9Z5Bs6IMASl8rVunVZIHyUk,301
1097
+ api_logic_server_cli/prototypes/manager/system/genai/create_db_models_inserts/create_db_models_test_data.py,sha256=x0kTXGI-e5z4No_eHTKKtZAnLM98tc9GjEIO35TO8nw,197
1094
1098
  api_logic_server_cli/prototypes/manager/system/genai/create_db_models_inserts/logic_discovery_prefix.py,sha256=JgJWr2Y2CT3romLvDSQnALshxmpUOeODu15I6K_HNf4,682
1095
1099
  api_logic_server_cli/prototypes/manager/system/genai/examples/.DS_Store,sha256=BBH5eQ5mD7G0GbbUlbnuILAJHJbTER-7e7EFd1FwV7Y,6148
1096
1100
  api_logic_server_cli/prototypes/manager/system/genai/examples/airport/airport.prompt,sha256=2tl5BQr7EZgEVP5b6qR5CN-RqRJ-hcitq_l5BAkz7yA,53
@@ -1101,12 +1105,13 @@ api_logic_server_cli/prototypes/manager/system/genai/examples/cmdb/cmdb_002.prom
1101
1105
  api_logic_server_cli/prototypes/manager/system/genai/examples/cmdb/zcmdb_001.prompt_tp,sha256=30-2VRw5mivAd2JacbjgudpUB8VvMpqJHYkg9WS8DF8,879
1102
1106
  api_logic_server_cli/prototypes/manager/system/genai/examples/elections/elections.prompt,sha256=fXWryP54T6nuS5qKaSMHT7J3r8OM1BpPeNU9WLI-J4s,79
1103
1107
  api_logic_server_cli/prototypes/manager/system/genai/examples/elections/elections.response_example,sha256=h5hGWsMRSWSMGkY_UBCcLlcaXHQJ7Jzmeh4CWnPv9VU,6605
1104
- api_logic_server_cli/prototypes/manager/system/genai/examples/emp_depts/emp_dept_explicit.prompt,sha256=alSAwGSjJ93mQyi0g2XhP5XejvVOH0huicOilNFTUB4,277
1105
- api_logic_server_cli/prototypes/manager/system/genai/examples/emp_depts/emp_dept_implicit_fails.prompt,sha256=9701E1EZ9fhPE5qI0xcJ28q7eL43-KL2fcSfx8Kymvg,224
1108
+ api_logic_server_cli/prototypes/manager/system/genai/examples/emp_depts/emp_dept.prompt,sha256=xbyhCyY7TUk7hoBKAkzRsZVBj1lP4hfXdSR4TQagXqM,109
1106
1109
  api_logic_server_cli/prototypes/manager/system/genai/examples/emp_depts/logic_notes.md,sha256=mrEBKE1OQxEqFoRLD1zYL-SeC5ITPcWEZKaumRDw7U4,100
1107
1110
  api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/create_db_models.py,sha256=QyGtjgsuYkVF5UYOn35V8ZnAdI76s-1KyM7nnGM4lPI,3588
1108
- api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo.prompt,sha256=Xgj60-oIDlIRjBmy1aHXiHwMAGF12ph2BJchB5_GETk,464
1109
- api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo.response_example,sha256=mBD0yl3TdsbC0ikVohv66Z4n2VmzK5zenR_8QRgp0Kw,4950
1111
+ api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo.prompt,sha256=pGApWAPavw19PAp1rOl_5-FGCPRWF5rtSXmKJyFVw6U,402
1112
+ api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo.response_example,sha256=5MSpqktUvopc_d6L2XUIbSTbkx9ORlLa48pBlBZKpaw,6031
1113
+ api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo.response_example_z,sha256=mBD0yl3TdsbC0ikVohv66Z4n2VmzK5zenR_8QRgp0Kw,4950
1114
+ api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_informal.prompt,sha256=yifzgnHUBVmWx8upiUYyUS7F30A8PBk6TlHCDUAIJQc,484
1110
1115
  api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_conversation/.DS_Store,sha256=uoPLXmpWk0VLRzME-ay-ZAwoZoHWTjwTfi9imfb4308,6148
1111
1116
  api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_conversation/create_db_models.py,sha256=H6tjGV33v3xUugEQ-tueqQqn4x6zt2yhFHNEaCJYE2g,4751
1112
1117
  api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_conversation/db.dbml,sha256=01TlM5HqFo5CJWBGgebiMI3KI3olYS8EtCF6cieR0ZI,743
@@ -1116,11 +1121,21 @@ api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_d
1116
1121
  api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_conversation/genai_demo_003.response,sha256=ylKcK7nI5acPF9Sw1YQcM-5sIcMjhvYFDs1VXS0Mjdg,5036
1117
1122
  api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_conversation/genai_demo_004.prompt,sha256=birH8LoOMqSkJ5JokXTBbsijvrvMvRsNu4KxwTBsrrU,138
1118
1123
  api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_conversation/genai_demo_conversation_005.response-example,sha256=J30tOn0YWaCJ6OmjK1AbRrh-6yYR07hAE7OK6PwVIFA,6883
1124
+ api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_iterative_logic/genai_demo_iterative_logic_000.response,sha256=6-KKCzEx9DpbFcuizHiPKaXf_YuIMDAqbsu-rFQQJRQ,140
1125
+ api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_iterative_logic/genai_demo_iterative_logic_001.prompt,sha256=gwRZd3ubxoCrZRtff6a8e5Dt2h4e8tC-7ycTW5_drdU,6824
1126
+ api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_iterative_logic/genai_demo_iterative_logic_002.prompt,sha256=o8O6yv11H7QQQnlHsO3J1a5LlPyRo3m_U_KP8g8G5u0,1075
1127
+ api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_iterative_logic/genai_demo_iterative_logic_003.response,sha256=JL2ErVpuJWjPzVo1XcgvqMTdtvZPjpSCAjkYE6DlWIE,3688
1128
+ api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_iterative_logic/genai_demo_iterative_logic_004.prompt,sha256=UdZj7ozby3tEeRI7FYgViH5z09TRCQ6cNBFuEvsu9EA,307
1129
+ api_logic_server_cli/prototypes/manager/system/genai/examples/genai_demo/genai_demo_iterative_logic/genai_demo_iterative_logic_005.response_example,sha256=fhWRRBp9_AR2RXtXJm4o3pMWr6fehiiRA1FcsdlTDnE,5079
1119
1130
  api_logic_server_cli/prototypes/manager/system/genai/examples/postgres/genai_demo_pg.prompt,sha256=w5wZs8zxGjqPUU0DVegdSZcH2YjObvZmBWhaN3olc2w,643
1120
- api_logic_server_cli/prototypes/manager/system/genai/learning_requests/logic_bank_api.prompt,sha256=gwRZd3ubxoCrZRtff6a8e5Dt2h4e8tC-7ycTW5_drdU,6824
1131
+ api_logic_server_cli/prototypes/manager/system/genai/learning_requests/logic_bank_api.prompt,sha256=tGPeUVUj_8TLReElixiZIeh6m9sKPI4h9SHoVc3Ok1Y,8638
1121
1132
  api_logic_server_cli/prototypes/manager/system/genai/learning_requests/logic_bank_api.promptZ,sha256=03M7XrLIgqYxGnRc1Od86Ef3rOcFkZFJNyG7bvlxiWY,14158
1133
+ api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/logic_inserts.prompt,sha256=wtlrBQI2CNmA1wevrkUnKAQvaJ0b7g_PH2jjUm48v5k,198
1122
1134
  api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/pre_post.prompt,sha256=GPQukgxKBE30IVByFFghhRQ8eRQFriFi8INoVc27S18,121
1123
- api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/sqlite_inserts.prompt,sha256=SJ4CVp9nxgGrMqwc8YkziwV34OLyRXR1QiJO3OHpcMg,803
1135
+ api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/response_format.prompt,sha256=dubLCPnmuobjQi5Y3WSIDpohXi01dJ0lVTEx-i86d6A,267
1136
+ api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/sqlite_inserts.prompt,sha256=UVAwhLnvQg8SGSnUnQPmSXrp3kXjG5hj1oU7_W4mlwk,1164
1137
+ api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/sqlite_inserts_iterations.prompt,sha256=ctOhsc4P_-Ko8UAzLMoJMwOnIxyGwV5QzebL1J6jsZ8,1156
1138
+ api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/web_genai copy.prompt,sha256=ySC-Zag7TO4FTJzOVTLhaVKWBqga0j4k0djFZYKFCHI,680
1124
1139
  api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/web_genai.prompt,sha256=ySC-Zag7TO4FTJzOVTLhaVKWBqga0j4k0djFZYKFCHI,680
1125
1140
  api_logic_server_cli/prototypes/manager/system/genai/reference/chatgpt_original.txt,sha256=JPj3OjvugQNfJpe8V8qsbDh-bcvGIN9tAK8C-PJngGM,2845
1126
1141
  api_logic_server_cli/prototypes/manager/system/genai/reference/declare_logic.py,sha256=O4Knjr56gGPF9cX3MaprfzTBLnrMb7F9BUDcrLI2__I,3348
@@ -1497,9 +1512,9 @@ api_logic_server_cli/templates/index.html,sha256=HYocUaiHm0haVHGM5PqHBNyCdyYWCAU
1497
1512
  api_logic_server_cli/templates/login_endpoint.txt,sha256=dB9dMnWiFB4Sd_XchZkj3sS6rhNS1Cs1bqDS-PXCeEo,900
1498
1513
  api_logic_server_cli/templates/login_endpoint_imports.txt,sha256=0Bx5LUaLtQmNk97silIg2EPO3HeEZYP6laVmtyHlbdE,205
1499
1514
  api_logic_server_cli/templates/opt_locking.txt,sha256=_R4kLKndn9v4IxZ3ygTj0NwrCCaXfWpoNDy3aZf3bfs,479
1500
- ApiLogicServer-12.0.4.dist-info/LICENSE,sha256=67BS7VC-Z8GpaR3wijngQJkHWV04qJrwQArVgn9ldoI,1485
1501
- ApiLogicServer-12.0.4.dist-info/METADATA,sha256=FhoSP-TUFnybv4l9CjGNgi4EL0f9ZyFqztSMyGicB7I,6378
1502
- ApiLogicServer-12.0.4.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
1503
- ApiLogicServer-12.0.4.dist-info/entry_points.txt,sha256=KiLloZJ3c_RW-nIDqBtoE0WEsQTnZ3dELwHLWi23LMA,103
1504
- ApiLogicServer-12.0.4.dist-info/top_level.txt,sha256=-r0AT_GEApleihg-jIh0OMvzzc0BO1RuhhOpE91H5qI,21
1505
- ApiLogicServer-12.0.4.dist-info/RECORD,,
1515
+ ApiLogicServer-12.1.0.dist-info/LICENSE,sha256=67BS7VC-Z8GpaR3wijngQJkHWV04qJrwQArVgn9ldoI,1485
1516
+ ApiLogicServer-12.1.0.dist-info/METADATA,sha256=TeY9URQx2uAAz7mruI8C23WKP3fZ23UvTsQE8zBDCco,6409
1517
+ ApiLogicServer-12.1.0.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
1518
+ ApiLogicServer-12.1.0.dist-info/entry_points.txt,sha256=KiLloZJ3c_RW-nIDqBtoE0WEsQTnZ3dELwHLWi23LMA,103
1519
+ ApiLogicServer-12.1.0.dist-info/top_level.txt,sha256=-r0AT_GEApleihg-jIh0OMvzzc0BO1RuhhOpE91H5qI,21
1520
+ ApiLogicServer-12.1.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -12,9 +12,10 @@ ApiLogicServer CLI: given a database url, create [and run] customizable ApiLogic
12
12
  Called from api_logic_server_cli.py, by instantiating the ProjectRun object.
13
13
  '''
14
14
 
15
- __version__ = "12.00.04"
15
+ __version__ = "12.01.00"
16
16
  recent_changes = \
17
17
  f'\n\nRecent Changes:\n' +\
18
+ "\t10/31/2024 - 12.01.00: genai: informal rules (eg, Sum of employee salaries cannot exceed department budget) \n"\
18
19
  "\t10/21/2024 - 12.00.04: sra 10-22, Prelim support genai --using=dir/project \n"\
19
20
  "\t10/12/2024 - 12.00.02: Natural Language Logic \n"\
20
21
  "\t10/17/2024 - 11.02.19: singular classes, expanded doc/prompts, logic work-arounds, docs/logic, logic learning, readme \n"\
@@ -1839,203 +1840,6 @@ from database import <project.bind_key>_models
1839
1840
  log.info(f"Tutorial project successfully created. Next steps:\n")
1840
1841
  log.info(f' Open the tutorial project in your VSCode: code Tutorial\n')
1841
1842
 
1842
-
1843
- def create_project_Z(self):
1844
- """
1845
- Creates logic-enabled Python safrs api/admin project, options for execution
1846
-
1847
- main driver
1848
-
1849
- :returns: none
1850
- """
1851
-
1852
- # SQLALCHEMY_DATABASE_URI = "sqlite:///" + path.join(basedir, "database/db.sqlite")+ '?check_same_thread=False'
1853
- self.print_options()
1854
-
1855
- log.debug(f"\nApiLogicServer {__version__} Creation Log:")
1856
-
1857
- self.project_directory, self.api_name, self.merge_into_prototype = \
1858
- create_utils.get_project_directory_and_api_name(self)
1859
- self.project_directory_actual = os.path.abspath(self.project_directory) # make path absolute, not relative (no /../)
1860
- self.project_directory_path = Path(self.project_directory_actual)
1861
- self.project_name_last_node = Path(self.project_directory_path).name # for prototype, project_name='.'
1862
-
1863
- # TODO - add this? self.project_name = self.project_directory_path.parent.name if not self.project_directory_path.is_dir() else self.project_directory_path.name
1864
-
1865
- gen_ai = None
1866
- if self.genai_using != "":
1867
- from genai import GenAI
1868
- gen_ai = GenAI(self)
1869
-
1870
- if self.from_model != "" or self.genai_using != "":
1871
- try:
1872
- create_db_from_model.create_db(self)
1873
- except Exception as e:
1874
- if hasattr(self, 'gen_ai_save_dir'):
1875
- log.error(f"Error creating database from model: {e}")
1876
- with open(f"{self.gen_ai_save_dir.joinpath('create_db_models_failed.txt')}", "w") as log_file:
1877
- log_file.write(f"Error creating database from model: {e}")
1878
- raise(e)
1879
-
1880
- if self.add_auth_in_progress:
1881
- self.models_path_dir = 'database/database_discovery'
1882
- self.abs_db_url, self.nw_db_status, self.model_file_name = \
1883
- create_utils.get_abs_db_url("0. Using Sample DB", self, is_auth=True)
1884
- else: # normal path
1885
- self.abs_db_url, self.nw_db_status, self.model_file_name = create_utils.get_abs_db_url("0. Using Sample DB", self)
1886
- if self.nw_db_status in ["nw", "nw+"]:
1887
- self.auth_provider_type = 'sql' # nw+ defaulting
1888
-
1889
-
1890
- if self.extended_builder == "$":
1891
- self.extended_builder = abspath(f'{self.api_logic_server_dir_path}/extended_builder.py')
1892
- log.debug(f'0. Using default extended_builder: {self.extended_builder}')
1893
-
1894
- if self.extended_builder == "model_migrator":
1895
- self.extended_builder = abspath(f'{self.api_logic_server_dir_path}/model_migrator/model_migrator_start.py')
1896
- log.debug(f'0. Using model migrator: {self.extended_builder}')
1897
-
1898
- if self.command.startswith("rebuild") or self.command == "add_db":
1899
- log.debug("1. Not Deleting Existing Project")
1900
- log.debug("2. Using Existing Project")
1901
- if self.command == "add_db":
1902
- self.abs_db_url = self.update_config_and_copy_sqlite_db(
1903
- f".. ..Adding Database [{self.bind_key}] to existing project")
1904
- else: # normal path - clone, [overlay nw]
1905
- self.abs_db_url = create_project_and_overlay_prototypes(self, f"2. Create Project:")
1906
- log.debug(f'.. ..project_directory_actual: {self.project_directory_actual}')
1907
-
1908
- log.debug(f'3. Create/verify database/{self.model_file_name}, then use that to create api/ and ui/ models')
1909
- model_creation_services = ModelCreationServices(project = self, # Create database/models.py from db
1910
- project_directory=self.project_directory)
1911
- # ext builder can read alter the models.py
1912
- fix_database_models(self.project_directory, self.db_types, self.nw_db_status, self.is_tutorial)
1913
-
1914
- ''' ****** MAJOR! creates api/expose_api_models, ui/admin & basic_web_app (Microservice Autmation) **** '''
1915
- invoke_creators(model_creation_services)
1916
-
1917
- if self.extended_builder is not None and self.extended_builder != "":
1918
- log.debug(f'4. Invoke extended_builder: {self.extended_builder}, ({self.db_url}, {self.project_directory})')
1919
- invoke_extended_builder(self.extended_builder, self.abs_db_url, self.project_directory, model_creation_services)
1920
-
1921
- final_project_fixup("4. Final project fixup", self)
1922
- if gen_ai is not None:
1923
- gen_ai.insert_logic_into_created_project()
1924
-
1925
- if False and (self.auth_provider_type != '' or self.nw_db_status in ["nw", "nw+"]) and self.command != "add_db":
1926
- self.add_auth("\nApiLogicProject customizable project created. \nAdding Security:")
1927
-
1928
- auto_ontimize = True # debug note - verify the model is user db, not the authdb...
1929
- """ disabled for now - api emulation replaces nw customizations, so BLT fails """
1930
- if auto_ontimize and self.add_auth_in_progress == False:
1931
- log.debug(" d. Create Ontimize from models")
1932
- from api_logic_server_cli.create_from_model.ont_create import OntCreator
1933
- ont_creator = OntCreator(project = model_creation_services.project)
1934
- ont_creator.create_application(show_messages=False)
1935
-
1936
- if self.project_directory_path.joinpath('ui/app_model_custom.yaml').exists():
1937
- # eg, nw project contains this for demo purposes
1938
- copyfile (src=self.project_directory_path.joinpath('ui/app_model_custom.yaml'),
1939
- dst=self.project_directory_path.joinpath('ui/app/app_model.yaml'))
1940
-
1941
- from api_logic_server_cli.create_from_model.ont_build import OntBuilder
1942
- ont_creator = OntBuilder(project = model_creation_services.project)
1943
- ont_creator.build_application(show_messages=False)
1944
-
1945
- if (self.nw_db_status in ["nw+"]):
1946
- self.add_auth(f"\nApiLogicProject customizable project (for northwind) created. \nAdding Security to {self.project_name_last_node}:")
1947
-
1948
- if not self.add_auth_in_progress:
1949
- if self.command not in ["add_db", "add_auth", "add-auth", "add-db", "rebuild-from-database", "rebuild-from-model"]:
1950
- log.debug(" d. Create Ontimize from models")
1951
- from api_logic_server_cli.create_from_model.ont_create import OntCreator
1952
- ont_creator = OntCreator(project = model_creation_services.project)
1953
- ont_creator.create_application(show_messages=False)
1954
-
1955
- if self.command in ["rebuild-from-database", "rebuild-from-model"]:
1956
- app_list = create_utils.get_ontimize_apps(self.project_directory_path)
1957
- for app in app_list:
1958
- from create_from_model import ont_build
1959
- from api_logic_server_cli.create_from_model.ont_create import OntCreator
1960
- build = ont_build.OntBuilder(self, app)
1961
- log.debug(f" d. Create Ontimize app_model_merge.yml from models for project: {build.project}")
1962
- ont_creator = OntCreator(project = build.project)
1963
- ont_creator.create_application(show_messages=False)
1964
-
1965
- if False and self.project_directory_path.joinpath('ui/app_model_custom.yaml').exists():
1966
- # eg, nw project contains this for demo purposes
1967
- copyfile (src=self.project_directory_path.joinpath('ui/app_model_custom.yaml'),
1968
- dst=self.project_directory_path.joinpath('ui/app/app_model.yaml'))
1969
-
1970
- from api_logic_server_cli.create_from_model.ont_build import OntBuilder
1971
- ont_creator = OntBuilder(project = model_creation_services.project)
1972
- ont_creator.build_application(show_messages=False)
1973
-
1974
- # can be cli, or env variable: echo $APILOGICSERVER_OPEN_WITH
1975
- if self.open_with != "" and 'create' == self.command: # open project with open_with (vscode, charm, atom) -- NOT for docker!!
1976
- start_open_with(project = self)
1977
-
1978
- if self.command.startswith("add_"):
1979
- pass # keep silent for add-db, add-auth...
1980
- elif self.is_tutorial:
1981
- log.debug(f"\nTutorial created. Next steps:\n")
1982
- log.debug(f' Establish your Python environment - see https://apilogicserver.github.io/Docs/IDE-Execute/#execute-prebuilt-launch-configurations\n')
1983
- else:
1984
- disp_url = self.db_url
1985
- if disp_url == "":
1986
- disp_url = "nw"
1987
- log.debug(f"\n\nCustomizable project {self.project_name} created from database {disp_url}. Next steps:\n")
1988
- if self.multi_api:
1989
- log.debug(f'Server already running. To Access: Configuration > Load > //localhost:5656/{self.api_name}')
1990
- else:
1991
- log.debug("\nRun API Logic Server:")
1992
- if os.getenv('CODESPACES'):
1993
- # log.debug(f' Add port 5656, with Public visibility') - automated in .devcontainer.json
1994
- log.info(f' Execute using Launch Configuration "ApiLogicServer"')
1995
- else:
1996
- log.debug(f' cd {self.project_name}; python api_logic_server_run.py')
1997
- if self.command.startswith("add_"):
1998
- pass # keep silent for add-db, add-auth...
1999
- elif self.is_tutorial:
2000
- log.debug(f" Proceed as described in the readme\n")
2001
- else:
2002
- if (is_docker()):
2003
- os.rename(self.project_directory_path.joinpath('.devcontainer-option'),
2004
- self.project_directory_path.joinpath('.devcontainer'))
2005
- if os.getenv('CODESPACES'):
2006
- log.info(f'\nCustomize right here, in Browser/VSCode - just as you would locally')
2007
- log.info(f'Save customized project to GitHub')
2008
- else:
2009
- log.info(f'\nProject created. Next steps:\n')
2010
-
2011
- log.info(f' $ ApiLogicServer run # Run created API and Admin App, or\n')
2012
-
2013
- log.info(f' Customize using IDE on local machine:')
2014
- docker_project_name = self.project_name
2015
- if self.project_name.startswith('/localhost/'):
2016
- docker_project_name = self.project_name[11:]
2017
- else:
2018
- docker_project_name = f'<local machine directory for: {self.project_name}>'
2019
- log.info(f' exit # exit the Docker container ')
2020
- log.info(f' code {docker_project_name} # e.g., open VSCode on created project\n')
2021
- else:
2022
- log.info(f'\nProject created at: {str(self.project_directory_path)}\n')
2023
-
2024
- # log.info(f' $ ApiLogicServer run # Run created API and Admin App, or\n')
2025
-
2026
- if self.open_with == "":
2027
- log.info(f' $ charm | code {self.project_name} # Customize / debug in your IDE\n\n')
2028
-
2029
- log.debug(f' Establish your Python environment - see https://apilogicserver.github.io/Docs/IDE-Execute/#execute-prebuilt-launch-configurations\n')
2030
-
2031
- if self.run: # synchronous run of server - does not return
2032
- run_file = os.path.abspath(f'{resolve_home(self.project_name)}/api_logic_server_run.py')
2033
- run_file = '"' + run_file + '"' # spaces in file names - with windows
2034
- run_args = ""
2035
- if self.command == "create-and-run":
2036
- run_args = "--create_and_run=True"
2037
- create_utils.run_command(f'python {run_file} {run_args}', msg="\nStarting created API Logic Project")
2038
-
2039
1843
  def directory_setup(self):
2040
1844
  """ get project_directory, api names, project paths and project name """
2041
1845
  self.project_directory, self.api_name, self.merge_into_prototype = \
@@ -2055,6 +1859,8 @@ from database import <project.bind_key>_models
2055
1859
  if self.from_model != "" or self.genai_using != "":
2056
1860
  try:
2057
1861
  create_db_from_model.create_db(self)
1862
+ if gen_ai.post_error != '': # eg, response contains table definitions
1863
+ raise Exception(gen_ai.post_error)
2058
1864
  except Exception as e:
2059
1865
  if hasattr(self, 'gen_ai_save_dir'):
2060
1866
  log.error(f"Error creating database from model: {e}")
@@ -2149,8 +1955,9 @@ from database import <project.bind_key>_models
2149
1955
  log.debug(f" Proceed as described in the readme\n")
2150
1956
  else:
2151
1957
  if (is_docker()):
2152
- os.rename(self.project_directory_path.joinpath('.devcontainer-option'),
2153
- self.project_directory_path.joinpath('.devcontainer'))
1958
+ dc_option = self.project_directory_path.joinpath('.devcontainer-option')
1959
+ if os.path.exists(dc_option):
1960
+ os.rename(dc_option, self.project_directory_path.joinpath('.devcontainer'))
2154
1961
  if os.getenv('CODESPACES'):
2155
1962
  log.info(f'\nCustomize right here, in Browser/VSCode - just as you would locally')
2156
1963
  log.info(f'Save customized project to GitHub')
@@ -2288,4 +2095,4 @@ def key_module_map():
2288
2095
  ProjectRun.update_config_and_copy_sqlite_db() # adds db (model, multi-db binds, api, app) to curr project
2289
2096
  ProjectRun.add_auth() # update config (not via multi-db support)
2290
2097
  final_project_fixup('done', project=None) # update config, etc
2291
- ProjectRun.tutorial() # creates basic, nw, nw + cust
2098
+ ProjectRun.tutorial() # creates basic, nw, nw + cust
@@ -1,3 +1,3 @@
1
- last_created_date: October 21, 2024 17:52:20
2
- last_created_project_name: genai_demo
3
- last_created_version: 12.00.03
1
+ last_created_date: October 31, 2024 16:48:50
2
+ last_created_project_name: emp_dept
3
+ last_created_version: 12.00.16
@@ -592,85 +592,15 @@ def genai(ctx, using, db_url, repaired_response: str, genai_version: str,
592
592
  Creates new customizable project (overwrites).
593
593
  """
594
594
  global command
595
- if use_genai_module:
596
- import genai as genai_svcs
597
- defaulted_using = using
598
- if defaulted_using == 'genai_demo': # default to genai_demo.prompt
599
- defaulted_using = 'system/genai/examples/genai_demo/genai_demo.prompt'
600
- genai_svcs.genai(using=defaulted_using, db_url=db_url, repaired_response=repaired_response,
601
- genai_version=genai_version, retries=retries, opt_locking=opt_locking,
602
- prompt_inserts=prompt_inserts, quote=quote, use_relns=use_relns,
603
- project_name=project_name)
604
- pass
605
- else: # old code - delete
606
- db_types = ""
607
- # if no .prompt extension on using, then that's the prompt (no file)
608
- # if using.endswith('.prompt'):
609
- # using = using.replace('.prompt','')
610
- project_name = using # this is the prompt file (or actual prompt)
611
- if project_name.startswith("'"):
612
- project_name = project_name.replace("'", "")
613
- if using.endswith('.prompt') or Path(using).is_dir(): # regardless of repaired_response,
614
- project_name = Path(using).stem # the project name is the <cwd>/last node of using
615
- else:
616
- project_name = project_name.replace(' ', '_')
617
- project_name = project_name.replace(' ', '_')
618
-
619
- try_number = 1
620
- genai_use_relns = use_relns
621
- """ if 'unable to determine join condition', we retry this with False """
622
- if repaired_response != "":
623
- try_number = retries # if not calling GenAI, no need to retry:
624
- # TODO or 0, right?
625
- if retries < 0: # for debug: catch exceptions at point of failure
626
- PR.ProjectRun(command="create", genai_version=genai_version,
627
- genai_using=using, # the prompt file, or the actual prompt
628
- repaired_response=repaired_response, # retry from [repaired] response file
629
- opt_locking=opt_locking,
630
- genai_prompt_inserts=prompt_inserts,
631
- genai_use_relns=genai_use_relns,
632
- quote=quote,
633
- project_name=project_name, db_url=db_url)
634
- log.info(f"GENAI successful")
635
- else:
636
- while try_number <= retries:
637
- try:
638
- failed = False
639
- PR.ProjectRun(command="create", genai_version=genai_version,
640
- genai_using=using, # the prompt file, or the actual prompt
641
- repaired_response=repaired_response, # retry from [repaired] response file
642
- opt_locking=opt_locking,
643
- genai_prompt_inserts=prompt_inserts,
644
- genai_use_relns=genai_use_relns,
645
- quote=quote,
646
- project_name=project_name, db_url=db_url)
647
- if do_force_failure := False:
648
- if try_number < 3:
649
- raise Exception("Forced Failure for Internal Testing")
650
- break # success - exit the loop
651
- except Exception as e:
652
- log.error(f"\n\nGenai failed With Error: {e}")
653
- # Could not determine join condition
654
- manager_dir = Path(os.getcwd()) # rename save dir (append retry) for diagnosis
655
- to_dir_save_dir = Path(manager_dir).joinpath(f'system/genai/temp/{project_name}')
656
- to_dir_save_dir_retry = Path(manager_dir).joinpath(f'system/genai/temp/{project_name}_{try_number}')
657
- if repaired_response != "":
658
- to_dir_save_dir_retry = Path(manager_dir).joinpath(f'system/genai/temp/{project_name}_retry')
659
- if to_dir_save_dir_retry.exists():
660
- shutil.rmtree(to_dir_save_dir_retry)
661
- to_dir_save_dir.rename(to_dir_save_dir_retry)
662
- failed = True
663
- if genai_use_relns and "Could not determine join condition" in str(e):
664
- genai_use_relns = False # just for db_models (fk's still there!!)
665
- log.error(f"\n Failed with join condition - retrying without relns\n")
666
- failed = False
667
- else:
668
- try_number += 1
669
- pass # retry (retries times)
670
- if failed:
671
- log.error(f"\n\nGenai Failed (Retries: {retries})")
672
- exit(1)
673
- log.info(f"GENAI successful on try {try_number}")
595
+ import genai as genai_svcs
596
+ defaulted_using = using
597
+ if defaulted_using == 'genai_demo': # default to genai_demo.prompt
598
+ defaulted_using = 'system/genai/examples/genai_demo/genai_demo.prompt'
599
+ genai_svcs.genai(using=defaulted_using, db_url=db_url, repaired_response=repaired_response,
600
+ genai_version=genai_version, retries=retries, opt_locking=opt_locking,
601
+ prompt_inserts=prompt_inserts, quote=quote, use_relns=use_relns,
602
+ project_name=project_name)
603
+ pass
674
604
 
675
605
 
676
606
  @main.command("genai-logic", cls=HideDunderCommand)
@@ -42,7 +42,7 @@ class ResourceAttribute():
42
42
  if lower_name.endswith(each_non_fav):
43
43
  self.non_favorite = True
44
44
  break
45
- if each_attribute.server_default is not None:
45
+ if each_attribute.server_default is not None and hasattr(each_attribute.server_default.arg, 'text'):
46
46
  self.default = each_attribute.server_default.arg.text
47
47
  resource.attributes.append(self)
48
48
 
@@ -825,6 +825,8 @@ class ModelCreationServices(object):
825
825
  "Ab" not in str(each_class_def_str)):
826
826
  resource_name = each_cls_member[0]
827
827
  resource_class = each_cls_member[1]
828
+ if not hasattr(resource_class, '__tablename__'):
829
+ continue
828
830
  table_name = resource_class.__tablename__ # FIXME _s_collection_name
829
831
  if table_name in ["CategoryTableNameTest", "Employee"]:
830
832
  debug_str = "Excellent breakpoint"
@@ -917,4 +919,4 @@ class ModelCreationServices(object):
917
919
  project_directory = self.project_directory)
918
920
  model_imported, models_name = self.dynamic_import_model(msg)
919
921
  return_resource_list = self.resource_list_from_safrs_metadata(models_name=models_name) # whether created or used, build resource_list
920
- return return_resource_list
922
+ return return_resource_list