cnhkmcp 2.1.3__py3-none-any.whl → 2.1.4__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 (192) hide show
  1. cnhkmcp/__init__.py +126 -0
  2. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/README.md +38 -0
  3. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/ace.log +0 -0
  4. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/config.json +6 -0
  5. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/ace_lib.py +1514 -0
  6. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/fetch_all_datasets.py +157 -0
  7. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/fetch_all_documentation.py +132 -0
  8. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/fetch_all_operators.py +99 -0
  9. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/get_knowledgeBase_tool/helpful_functions.py +180 -0
  10. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/icon.ico +0 -0
  11. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/icon.png +0 -0
  12. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_10_Steps_to_Start_on_BRAIN_documentation.json +14 -0
  13. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_Intermediate_Pack_-_Improve_your_Alpha_2_2_documentation.json +174 -0
  14. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_Intermediate_Pack_-_Understand_Results_1_2_documentation.json +167 -0
  15. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_Introduction_to_Alphas_documentation.json +145 -0
  16. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_Introduction_to_BRAIN_Expression_Language_documentation.json +107 -0
  17. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001_WorldQuant_Challenge_documentation.json +56 -0
  18. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/001__Read_this_First_-_Starter_Pack_documentation.json +404 -0
  19. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002_How_to_choose_the_Simulation_Settings_documentation.json +268 -0
  20. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002_Simulate_your_first_Alpha_documentation.json +88 -0
  21. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002__Alpha_Examples_for_Beginners_documentation.json +254 -0
  22. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002__Alpha_Examples_for_Bronze_Users_documentation.json +114 -0
  23. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002__Alpha_Examples_for_Silver_Users_documentation.json +79 -0
  24. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/002__How_BRAIN_works_documentation.json +184 -0
  25. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/003_Clear_these_tests_before_submitting_an_Alpha_documentation.json +388 -0
  26. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/003_Parameters_in_the_Simulation_results_documentation.json +243 -0
  27. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Group_Data_Fields_documentation.json +69 -0
  28. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_How_to_use_the_Data_Explorer_documentation.json +142 -0
  29. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Model77_dataset_documentation.json +14 -0
  30. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Sentiment1_dataset_documentation.json +14 -0
  31. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Understanding_Data_in_BRAIN_Key_Concepts_and_Tips_documentation.json +182 -0
  32. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/004_Vector_Data_Fields_documentation.json +30 -0
  33. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Crowding_Risk-Neutralized_Alphas_documentation.json +64 -0
  34. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_D0_documentation.json +66 -0
  35. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Double_Neutralization_documentation.json +53 -0
  36. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Fast_D1_Documentation_documentation.json +304 -0
  37. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Investability_Constrained_Metrics_documentation.json +129 -0
  38. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Must-read_posts_How_to_improve_your_Alphas_documentation.json +14 -0
  39. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Neutralization_documentation.json +29 -0
  40. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_RAM_Risk-Neutralized_Alphas_documentation.json +64 -0
  41. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Risk_Neutralization_Default_setting_documentation.json +75 -0
  42. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Risk_Neutralized_Alphas_documentation.json +171 -0
  43. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/005_Statistical_Risk-Neutralized_Alphas_documentation.json +51 -0
  44. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_EUR_TOP2500_Universe_documentation.json +35 -0
  45. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_GLB_TOPDIV3000_Universe_documentation.json +48 -0
  46. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_Getting_Started_China_Research_for_Consultants_Gold_documentation.json +142 -0
  47. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_Getting_started_on_Illiquid_Universes_Gold_documentation.json +46 -0
  48. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_Getting_started_with_USA_TOPSP500_universe_Gold_documentation.json +62 -0
  49. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_Global_Alphas_Gold_documentation.json +66 -0
  50. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/006_India_Alphas_documentation.json +35 -0
  51. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Consultant_Dos_and_Don_ts_documentation.json +35 -0
  52. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Consultant_Features_documentation.json +239 -0
  53. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Consultant_Simulation_Features_documentation.json +149 -0
  54. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Consultant_Submission_Tests_documentation.json +363 -0
  55. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Finding_Consultant_Alphas_documentation.json +333 -0
  56. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Power_Pool_Alphas_documentation.json +14 -0
  57. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Research_Advisory_Program_documentation.json +35 -0
  58. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Starting_Guide_for_Research_Consultants_documentation.json +14 -0
  59. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Visualization_Tool_documentation.json +99 -0
  60. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007_Your_Advisor_-_Kunqi_Jiang_documentation.json +53 -0
  61. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007__Brain_Genius_documentation.json +288 -0
  62. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/007__Single_Dataset_Alphas_documentation.json +41 -0
  63. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/008_Advisory_Theme_Calendar_documentation.json +14 -0
  64. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/008_Multiplier_Rules_documentation.json +14 -0
  65. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/008_Overview_of_Themes_documentation.json +14 -0
  66. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/008_Theme_Calendar_documentation.json +14 -0
  67. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_Combo_Expression_documentation.json +272 -0
  68. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_Global_SuperAlphas_documentation.json +14 -0
  69. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_Helpful_Tips_documentation.json +58 -0
  70. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_Selection_Expression_documentation.json +1546 -0
  71. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_SuperAlpha_Operators_documentation.json +890 -0
  72. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_SuperAlpha_Results_documentation.json +83 -0
  73. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/009_What_is_a_SuperAlpha_documentation.json +261 -0
  74. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/010_BRAIN_API_documentation.json +515 -0
  75. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/010_Documentation_for_ACE_API_Library_Gold_documentation.json +27 -0
  76. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/010__Understanding_simulation_limits_documentation.json +210 -0
  77. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/arithmetic_operators.json +209 -0
  78. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/cross_sectional_operators.json +98 -0
  79. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/group_operators.json +121 -0
  80. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/logical_operators.json +145 -0
  81. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/reduce_operators.json +156 -0
  82. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/special_operators.json +35 -0
  83. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/test.txt +1 -0
  84. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/time_series_operators.json +386 -0
  85. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/transformational_operators.json +61 -0
  86. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/knowledge/vector_operators.json +38 -0
  87. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/main.py +576 -0
  88. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/process_knowledge_base.py +281 -0
  89. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/rag_engine.py +408 -0
  90. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/requirements.txt +7 -0
  91. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/run.bat +3 -0
  92. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/vector_db/_manifest.json +302 -0
  93. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/vector_db/_meta.json +1 -0
  94. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242/vector_db/chroma.sqlite3 +0 -0
  95. cnhkmcp/untracked/AI/321/206/320/261/320/234/321/211/320/255/320/262/321/206/320/237/320/242/321/204/342/225/227/342/225/242//321/211/320/266/320/246/321/206/320/274/320/261/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/231/320/243/321/205/342/225/235/320/220/321/206/320/230/320/241.py +265 -0
  96. cnhkmcp/untracked/APP/.gitignore +32 -0
  97. cnhkmcp/untracked/APP/MODULAR_STRUCTURE.md +112 -0
  98. cnhkmcp/untracked/APP/README.md +309 -0
  99. cnhkmcp/untracked/APP/Tranformer/Transformer.py +4989 -0
  100. cnhkmcp/untracked/APP/Tranformer/ace.log +0 -0
  101. cnhkmcp/untracked/APP/Tranformer/ace_lib.py +1514 -0
  102. cnhkmcp/untracked/APP/Tranformer/helpful_functions.py +180 -0
  103. cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json +7187 -0
  104. cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates_/321/207/320/264/342/225/221/321/204/342/225/233/320/233.json +654 -0
  105. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json +1 -0
  106. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_success.json +47312 -0
  107. cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_/321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/320/237/320/277/321/207/320/253/342/224/244/321/206/320/236/320/265/321/210/342/225/234/342/225/234/321/205/320/225/320/265Machine_lib.json +22 -0
  108. cnhkmcp/untracked/APP/Tranformer/parsetab.py +60 -0
  109. cnhkmcp/untracked/APP/Tranformer/template_summary.txt +3182 -0
  110. cnhkmcp/untracked/APP/Tranformer/transformer_config.json +7 -0
  111. cnhkmcp/untracked/APP/Tranformer/validator.py +889 -0
  112. cnhkmcp/untracked/APP/ace.log +69 -0
  113. cnhkmcp/untracked/APP/ace_lib.py +1514 -0
  114. cnhkmcp/untracked/APP/blueprints/__init__.py +6 -0
  115. cnhkmcp/untracked/APP/blueprints/feature_engineering.py +347 -0
  116. cnhkmcp/untracked/APP/blueprints/idea_house.py +221 -0
  117. cnhkmcp/untracked/APP/blueprints/inspiration_house.py +432 -0
  118. cnhkmcp/untracked/APP/blueprints/paper_analysis.py +570 -0
  119. cnhkmcp/untracked/APP/custom_templates/templates.json +1257 -0
  120. cnhkmcp/untracked/APP/give_me_idea/BRAIN_Alpha_Template_Expert_SystemPrompt.md +400 -0
  121. cnhkmcp/untracked/APP/give_me_idea/ace_lib.py +1514 -0
  122. cnhkmcp/untracked/APP/give_me_idea/alpha_data_specific_template_master.py +252 -0
  123. cnhkmcp/untracked/APP/give_me_idea/fetch_all_datasets.py +157 -0
  124. cnhkmcp/untracked/APP/give_me_idea/fetch_all_operators.py +99 -0
  125. cnhkmcp/untracked/APP/give_me_idea/helpful_functions.py +180 -0
  126. cnhkmcp/untracked/APP/give_me_idea/what_is_Alpha_template.md +11 -0
  127. cnhkmcp/untracked/APP/helpful_functions.py +180 -0
  128. cnhkmcp/untracked/APP/hkSimulator/ace_lib.py +1501 -0
  129. cnhkmcp/untracked/APP/hkSimulator/autosimulator.py +447 -0
  130. cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py +180 -0
  131. cnhkmcp/untracked/APP/mirror_config.txt +20 -0
  132. cnhkmcp/untracked/APP/operaters.csv +129 -0
  133. cnhkmcp/untracked/APP/requirements.txt +53 -0
  134. cnhkmcp/untracked/APP/run_app.bat +28 -0
  135. cnhkmcp/untracked/APP/run_app.sh +34 -0
  136. cnhkmcp/untracked/APP/setup_tsinghua.bat +39 -0
  137. cnhkmcp/untracked/APP/setup_tsinghua.sh +43 -0
  138. cnhkmcp/untracked/APP/simulator/alpha_submitter.py +404 -0
  139. cnhkmcp/untracked/APP/simulator/simulator_wqb.py +618 -0
  140. cnhkmcp/untracked/APP/simulator/wqb20260107015647.log +57 -0
  141. cnhkmcp/untracked/APP/ssrn-3332513.pdf +109188 -19
  142. cnhkmcp/untracked/APP/static/brain.js +589 -0
  143. cnhkmcp/untracked/APP/static/decoder.js +1540 -0
  144. cnhkmcp/untracked/APP/static/feature_engineering.js +1729 -0
  145. cnhkmcp/untracked/APP/static/idea_house.js +937 -0
  146. cnhkmcp/untracked/APP/static/inspiration.js +465 -0
  147. cnhkmcp/untracked/APP/static/inspiration_house.js +868 -0
  148. cnhkmcp/untracked/APP/static/paper_analysis.js +390 -0
  149. cnhkmcp/untracked/APP/static/script.js +3082 -0
  150. cnhkmcp/untracked/APP/static/simulator.js +597 -0
  151. cnhkmcp/untracked/APP/static/styles.css +3127 -0
  152. cnhkmcp/untracked/APP/static/usage_widget.js +508 -0
  153. cnhkmcp/untracked/APP/templates/alpha_inspector.html +511 -0
  154. cnhkmcp/untracked/APP/templates/feature_engineering.html +960 -0
  155. cnhkmcp/untracked/APP/templates/idea_house.html +564 -0
  156. cnhkmcp/untracked/APP/templates/index.html +932 -0
  157. cnhkmcp/untracked/APP/templates/inspiration_house.html +861 -0
  158. cnhkmcp/untracked/APP/templates/paper_analysis.html +91 -0
  159. cnhkmcp/untracked/APP/templates/simulator.html +343 -0
  160. cnhkmcp/untracked/APP/templates/transformer_web.html +580 -0
  161. cnhkmcp/untracked/APP/usage.md +351 -0
  162. cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/ace_lib.py +1514 -0
  163. cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/brain_alpha_inspector.py +712 -0
  164. cnhkmcp/untracked/APP//321/207/342/225/235/320/250/321/205/320/230/320/226/321/204/342/225/225/320/220/321/211/320/221/320/243/321/206/320/261/320/265/helpful_functions.py +180 -0
  165. cnhkmcp/untracked/APP//321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/231/320/243/321/205/342/225/235/320/220/321/206/320/230/320/241.py +2460 -0
  166. cnhkmcp/untracked/__init__.py +0 -0
  167. cnhkmcp/untracked/arXiv_API_Tool_Manual.md +490 -0
  168. cnhkmcp/untracked/arxiv_api.py +229 -0
  169. cnhkmcp/untracked/forum_functions.py +998 -0
  170. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/forum_functions.py +407 -0
  171. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/platform_functions.py +2601 -0
  172. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/user_config.json +31 -0
  173. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272//321/210/320/276/320/271AI/321/210/320/277/342/225/227/321/210/342/224/220/320/251/321/204/342/225/225/320/272/321/206/320/246/320/227/321/206/320/261/320/263/321/206/320/255/320/265/321/205/320/275/320/266/321/204/342/225/235/320/252/321/204/342/225/225/320/233/321/210/342/225/234/342/225/234/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270.md +101 -0
  174. cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272//321/211/320/225/320/235/321/207/342/225/234/320/276/321/205/320/231/320/235/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/230/320/241_/321/205/320/276/320/231/321/210/320/263/320/225/321/205/342/224/220/320/225/321/210/320/266/320/221/321/204/342/225/233/320/255/321/210/342/225/241/320/246/321/205/320/234/320/225.py +190 -0
  175. cnhkmcp/untracked/platform_functions.py +2886 -0
  176. cnhkmcp/untracked/sample_mcp_config.json +11 -0
  177. cnhkmcp/untracked/user_config.json +31 -0
  178. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/320/237/320/222/321/210/320/220/320/223/321/206/320/246/320/227/321/206/320/261/320/263_BRAIN_Alpha_Test_Requirements_and_Tips.md +202 -0
  179. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_Alpha_explaination_workflow.md +56 -0
  180. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_BRAIN_6_Tips_Datafield_Exploration_Guide.md +194 -0
  181. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_BRAIN_Alpha_Improvement_Workflow.md +101 -0
  182. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_Dataset_Exploration_Expert_Manual.md +436 -0
  183. cnhkmcp/untracked//321/207/320/264/342/225/221/321/204/342/225/233/320/233/321/205/342/225/226/320/265/321/204/342/225/234/320/254/321/206/342/225/241/320/221_daily_report_workflow.md +128 -0
  184. cnhkmcp/untracked//321/211/320/225/320/235/321/207/342/225/234/320/276/321/205/320/231/320/235/321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/230/320/241_/321/205/320/276/320/231/321/210/320/263/320/225/321/205/342/224/220/320/225/321/210/320/266/320/221/321/204/342/225/233/320/255/321/210/342/225/241/320/246/321/205/320/234/320/225.py +190 -0
  185. {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.4.dist-info}/METADATA +1 -1
  186. cnhkmcp-2.1.4.dist-info/RECORD +190 -0
  187. cnhkmcp-2.1.4.dist-info/top_level.txt +1 -0
  188. cnhkmcp-2.1.3.dist-info/RECORD +0 -6
  189. cnhkmcp-2.1.3.dist-info/top_level.txt +0 -1
  190. {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.4.dist-info}/WHEEL +0 -0
  191. {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.4.dist-info}/entry_points.txt +0 -0
  192. {cnhkmcp-2.1.3.dist-info → cnhkmcp-2.1.4.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,7 @@
1
+ openai
2
+ Pillow
3
+ fastembed>=0.3.6
4
+ chromadb>=0.5.11
5
+ watchdog
6
+ pypdf
7
+ python-docx
@@ -0,0 +1,302 @@
1
+ {
2
+ "001_10_Steps_to_Start_on_BRAIN_documentation.json": {
3
+ "mtime": 1767205657.3113902,
4
+ "size": 2483
5
+ },
6
+ "001_Intermediate_Pack_-_Improve_your_Alpha_2_2_documentation.json": {
7
+ "mtime": 1767205656.9802248,
8
+ "size": 9295
9
+ },
10
+ "001_Intermediate_Pack_-_Understand_Results_1_2_documentation.json": {
11
+ "mtime": 1767205656.584933,
12
+ "size": 9758
13
+ },
14
+ "001_Introduction_to_Alphas_documentation.json": {
15
+ "mtime": 1767205655.9214056,
16
+ "size": 11156
17
+ },
18
+ "001_Introduction_to_BRAIN_Expression_Language_documentation.json": {
19
+ "mtime": 1767205656.2119222,
20
+ "size": 4925
21
+ },
22
+ "001_WorldQuant_Challenge_documentation.json": {
23
+ "mtime": 1767205657.651904,
24
+ "size": 4605
25
+ },
26
+ "001__Read_this_First_-_Starter_Pack_documentation.json": {
27
+ "mtime": 1767205655.607875,
28
+ "size": 31286
29
+ },
30
+ "002_How_to_choose_the_Simulation_Settings_documentation.json": {
31
+ "mtime": 1767205658.687592,
32
+ "size": 13775
33
+ },
34
+ "002_Simulate_your_first_Alpha_documentation.json": {
35
+ "mtime": 1767205658.3287065,
36
+ "size": 8701
37
+ },
38
+ "002__Alpha_Examples_for_Beginners_documentation.json": {
39
+ "mtime": 1767205659.4102447,
40
+ "size": 10826
41
+ },
42
+ "002__Alpha_Examples_for_Bronze_Users_documentation.json": {
43
+ "mtime": 1767205659.7409737,
44
+ "size": 4795
45
+ },
46
+ "002__Alpha_Examples_for_Silver_Users_documentation.json": {
47
+ "mtime": 1767205660.0698695,
48
+ "size": 3854
49
+ },
50
+ "002__How_BRAIN_works_documentation.json": {
51
+ "mtime": 1767205659.0631225,
52
+ "size": 16929
53
+ },
54
+ "003_Clear_these_tests_before_submitting_an_Alpha_documentation.json": {
55
+ "mtime": 1767205660.7332313,
56
+ "size": 24609
57
+ },
58
+ "003_Parameters_in_the_Simulation_results_documentation.json": {
59
+ "mtime": 1767205661.1079519,
60
+ "size": 16168
61
+ },
62
+ "004_Group_Data_Fields_documentation.json": {
63
+ "mtime": 1767205662.790159,
64
+ "size": 4663
65
+ },
66
+ "004_How_to_use_the_Data_Explorer_documentation.json": {
67
+ "mtime": 1767205662.1967475,
68
+ "size": 6196
69
+ },
70
+ "004_Model77_dataset_documentation.json": {
71
+ "mtime": 1767205663.0996022,
72
+ "size": 3274
73
+ },
74
+ "004_Sentiment1_dataset_documentation.json": {
75
+ "mtime": 1767205663.436493,
76
+ "size": 2058
77
+ },
78
+ "004_Understanding_Data_in_BRAIN_Key_Concepts_and_Tips_documentation.json": {
79
+ "mtime": 1767205661.830939,
80
+ "size": 9173
81
+ },
82
+ "004_Vector_Data_Fields_documentation.json": {
83
+ "mtime": 1767205662.482697,
84
+ "size": 6058
85
+ },
86
+ "005_Crowding_Risk-Neutralized_Alphas_documentation.json": {
87
+ "mtime": 1767205666.6135564,
88
+ "size": 3404
89
+ },
90
+ "005_D0_documentation.json": {
91
+ "mtime": 1767205665.3834035,
92
+ "size": 5894
93
+ },
94
+ "005_Double_Neutralization_documentation.json": {
95
+ "mtime": 1767205665.0453224,
96
+ "size": 3308
97
+ },
98
+ "005_Fast_D1_Documentation_documentation.json": {
99
+ "mtime": 1767205668.092214,
100
+ "size": 11325
101
+ },
102
+ "005_Investability_Constrained_Metrics_documentation.json": {
103
+ "mtime": 1767205667.7071521,
104
+ "size": 7971
105
+ },
106
+ "005_Must-read_posts_How_to_improve_your_Alphas_documentation.json": {
107
+ "mtime": 1767205664.22182,
108
+ "size": 2781
109
+ },
110
+ "005_Neutralization_documentation.json": {
111
+ "mtime": 1767205664.6446226,
112
+ "size": 8962
113
+ },
114
+ "005_RAM_Risk-Neutralized_Alphas_documentation.json": {
115
+ "mtime": 1767205666.9769416,
116
+ "size": 4121
117
+ },
118
+ "005_Risk_Neutralization_Default_setting_documentation.json": {
119
+ "mtime": 1767205666.256811,
120
+ "size": 3796
121
+ },
122
+ "005_Risk_Neutralized_Alphas_documentation.json": {
123
+ "mtime": 1767205665.7260354,
124
+ "size": 11617
125
+ },
126
+ "005_Statistical_Risk-Neutralized_Alphas_documentation.json": {
127
+ "mtime": 1767205667.3264325,
128
+ "size": 5663
129
+ },
130
+ "006_EUR_TOP2500_Universe_documentation.json": {
131
+ "mtime": 1767205669.7011774,
132
+ "size": 2248
133
+ },
134
+ "006_Getting_Started_China_Research_for_Consultants_Gold_documentation.json": {
135
+ "mtime": 1767205670.0584345,
136
+ "size": 8247
137
+ },
138
+ "006_Getting_started_on_Illiquid_Universes_Gold_documentation.json": {
139
+ "mtime": 1767205669.39144,
140
+ "size": 2224
141
+ },
142
+ "006_Getting_started_with_USA_TOPSP500_universe_Gold_documentation.json": {
143
+ "mtime": 1767205669.0832088,
144
+ "size": 2681
145
+ },
146
+ "006_GLB_TOPDIV3000_Universe_documentation.json": {
147
+ "mtime": 1767205670.398031,
148
+ "size": 2990
149
+ },
150
+ "006_Global_Alphas_Gold_documentation.json": {
151
+ "mtime": 1767205668.80443,
152
+ "size": 5531
153
+ },
154
+ "006_India_Alphas_documentation.json": {
155
+ "mtime": 1767205670.7715836,
156
+ "size": 1845
157
+ },
158
+ "007_Consultant_Dos_and_Don_ts_documentation.json": {
159
+ "mtime": 1767205676.2029963,
160
+ "size": 6318
161
+ },
162
+ "007_Consultant_Features_documentation.json": {
163
+ "mtime": 1767205673.3801267,
164
+ "size": 16785
165
+ },
166
+ "007_Consultant_Simulation_Features_documentation.json": {
167
+ "mtime": 1767205673.0209067,
168
+ "size": 7226
169
+ },
170
+ "007_Consultant_Submission_Tests_documentation.json": {
171
+ "mtime": 1767205673.745088,
172
+ "size": 17040
173
+ },
174
+ "007_Finding_Consultant_Alphas_documentation.json": {
175
+ "mtime": 1767205672.251832,
176
+ "size": 24560
177
+ },
178
+ "007_Power_Pool_Alphas_documentation.json": {
179
+ "mtime": 1767205671.878901,
180
+ "size": 6398
181
+ },
182
+ "007_Research_Advisory_Program_documentation.json": {
183
+ "mtime": 1767205676.5531626,
184
+ "size": 2637
185
+ },
186
+ "007_Starting_Guide_for_Research_Consultants_documentation.json": {
187
+ "mtime": 1767205671.4752853,
188
+ "size": 3245
189
+ },
190
+ "007_Visualization_Tool_documentation.json": {
191
+ "mtime": 1767205674.119551,
192
+ "size": 5744
193
+ },
194
+ "007_Your_Advisor_-_Kunqi_Jiang_documentation.json": {
195
+ "mtime": 1767205676.9000566,
196
+ "size": 4746
197
+ },
198
+ "007__Brain_Genius_documentation.json": {
199
+ "mtime": 1767205677.6026185,
200
+ "size": 16460
201
+ },
202
+ "007__Single_Dataset_Alphas_documentation.json": {
203
+ "mtime": 1767205677.241985,
204
+ "size": 4113
205
+ },
206
+ "008_Advisory_Theme_Calendar_documentation.json": {
207
+ "mtime": 1767205679.3681905,
208
+ "size": 584
209
+ },
210
+ "008_Multiplier_Rules_documentation.json": {
211
+ "mtime": 1767205678.6744087,
212
+ "size": 2178
213
+ },
214
+ "008_Overview_of_Themes_documentation.json": {
215
+ "mtime": 1767205678.3109314,
216
+ "size": 1784
217
+ },
218
+ "008_Theme_Calendar_documentation.json": {
219
+ "mtime": 1767205679.021326,
220
+ "size": 8936
221
+ },
222
+ "009_Combo_Expression_documentation.json": {
223
+ "mtime": 1767205681.154851,
224
+ "size": 10902
225
+ },
226
+ "009_Global_SuperAlphas_documentation.json": {
227
+ "mtime": 1767205682.4950798,
228
+ "size": 3717
229
+ },
230
+ "009_Helpful_Tips_documentation.json": {
231
+ "mtime": 1767205681.8373532,
232
+ "size": 3618
233
+ },
234
+ "009_Selection_Expression_documentation.json": {
235
+ "mtime": 1767205680.810195,
236
+ "size": 47119
237
+ },
238
+ "009_SuperAlpha_Operators_documentation.json": {
239
+ "mtime": 1767205682.1679401,
240
+ "size": 18735
241
+ },
242
+ "009_SuperAlpha_Results_documentation.json": {
243
+ "mtime": 1767205681.500101,
244
+ "size": 3838
245
+ },
246
+ "009_What_is_a_SuperAlpha_documentation.json": {
247
+ "mtime": 1767205680.1058033,
248
+ "size": 13234
249
+ },
250
+ "010_BRAIN_API_documentation.json": {
251
+ "mtime": 1767205683.554062,
252
+ "size": 36407
253
+ },
254
+ "010_Documentation_for_ACE_API_Library_Gold_documentation.json": {
255
+ "mtime": 1767205683.8682556,
256
+ "size": 1660
257
+ },
258
+ "010__Understanding_simulation_limits_documentation.json": {
259
+ "mtime": 1767205683.1834643,
260
+ "size": 12013
261
+ },
262
+ "arithmetic_operators.json": {
263
+ "mtime": 1767205684.2544255,
264
+ "size": 5302
265
+ },
266
+ "cross_sectional_operators.json": {
267
+ "mtime": 1767205684.2554393,
268
+ "size": 3393
269
+ },
270
+ "group_operators.json": {
271
+ "mtime": 1767205684.2564406,
272
+ "size": 4058
273
+ },
274
+ "logical_operators.json": {
275
+ "mtime": 1767205684.2584274,
276
+ "size": 3549
277
+ },
278
+ "reduce_operators.json": {
279
+ "mtime": 1767205684.2594502,
280
+ "size": 8602
281
+ },
282
+ "special_operators.json": {
283
+ "mtime": 1767205684.2606597,
284
+ "size": 891
285
+ },
286
+ "test.txt": {
287
+ "mtime": 1767174050.546388,
288
+ "size": 82
289
+ },
290
+ "time_series_operators.json": {
291
+ "mtime": 1767205684.2626643,
292
+ "size": 12968
293
+ },
294
+ "transformational_operators.json": {
295
+ "mtime": 1767205684.2626643,
296
+ "size": 2080
297
+ },
298
+ "vector_operators.json": {
299
+ "mtime": 1767205684.2636645,
300
+ "size": 997
301
+ }
302
+ }
@@ -0,0 +1 @@
1
+ {"model": "jinaai/jina-embeddings-v2-base-zh", "embed_dim": 768, "chroma_version": "1.4.0"}
@@ -0,0 +1,265 @@
1
+ """
2
+ 首次运行初始化脚本
3
+ - 创建桌面快捷方式指向 main.py,用 Python 运行,图标为 icon.png
4
+ - 检查 knowledge 文件夹文件数量
5
+ - 如果 <= 3,提示用户建立知识库,并自动运行 process_knowledge_base.py
6
+ """
7
+
8
+ import os
9
+ import sys
10
+ import subprocess
11
+ import shutil
12
+ import json
13
+ import platform
14
+ import urllib.parse
15
+ import urllib.request
16
+ from pathlib import Path
17
+
18
+ # 获取脚本所在目录(项目根目录)
19
+ PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
20
+ MAIN_SCRIPT = os.path.join(PROJECT_DIR, "main.py")
21
+ ICON_ICO = os.path.join(PROJECT_DIR, "icon.ico")
22
+ ICON_PNG = os.path.join(PROJECT_DIR, "icon.png")
23
+ KNOWLEDGE_DIR = os.path.join(PROJECT_DIR, "knowledge")
24
+ PROCESS_SCRIPT = os.path.join(PROJECT_DIR, "process_knowledge_base.py")
25
+ CONFIG_PATH = os.path.join(PROJECT_DIR, "config.json")
26
+
27
+
28
+ def load_config():
29
+ if not os.path.exists(CONFIG_PATH):
30
+ return {}
31
+ try:
32
+ with open(CONFIG_PATH, "r", encoding="utf-8") as f:
33
+ return json.load(f) or {}
34
+ except Exception as exc:
35
+ print(f"✗ 读取 config.json 失败:{exc}")
36
+ return {}
37
+
38
+
39
+ def save_config(cfg):
40
+ try:
41
+ with open(CONFIG_PATH, "w", encoding="utf-8") as f:
42
+ json.dump(cfg, f, ensure_ascii=False, indent=4)
43
+ print(f"✓ 配置已写入:{CONFIG_PATH}")
44
+ except Exception as exc:
45
+ print(f"✗ 写入 config.json 失败:{exc}")
46
+
47
+
48
+ def check_network_reachable(url="https://www.google.com/generate_204", timeout_ms=2000):
49
+ """Check connectivity via ping + lightweight HTTPS GET. Returns True if either succeeds."""
50
+ parsed = urllib.parse.urlparse(url)
51
+ host = parsed.hostname or "google.com"
52
+ is_windows = platform.system().lower().startswith("win")
53
+ if is_windows:
54
+ cmd = ["ping", "-n", "1", "-w", str(timeout_ms), host]
55
+ else:
56
+ cmd = ["ping", "-c", "1", "-W", str(int(timeout_ms / 1000)), host]
57
+
58
+ try:
59
+ result = subprocess.run(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
60
+ if result.returncode == 0:
61
+ return True
62
+ except Exception as exc:
63
+ print(f"✗ 无法执行 ping:{exc}")
64
+
65
+ # Fallback: HTTPS request (respects proxy envs)
66
+ try:
67
+ with urllib.request.urlopen(url, timeout=timeout_ms / 1000.0) as resp:
68
+ return 200 <= getattr(resp, "status", 200) < 400
69
+ except Exception as exc:
70
+ print(f"✗ HTTPS 连通性检测失败:{exc}")
71
+ return False
72
+
73
+
74
+ def prompt_config_if_needed():
75
+ cfg = load_config()
76
+
77
+ defaults = {
78
+ "base_url": cfg.get("base_url") or "https://api.moonshot.cn/v1",
79
+ "model": cfg.get("model") or "kimi-latest",
80
+ }
81
+
82
+ if not cfg.get("system_prompt"):
83
+ cfg["system_prompt"] = (
84
+ "You are a WorldQuant BRAIN platform expert and Consultant. "
85
+ "Your goal is to assist users with Alpha development, BRAIN API usage, and maximizing consultant income."
86
+ )
87
+
88
+ def ask(field, label, default_value=None, allow_empty=False):
89
+ current = str(cfg.get(field, "")).strip()
90
+ prompt = f"请输入 {label}" + (f" [默认: {current or default_value}]" if (current or default_value) else "") + ": "
91
+ value = input(prompt).strip()
92
+ if not value:
93
+ value = current if current else (default_value if default_value is not None else "")
94
+ if value or allow_empty:
95
+ cfg[field] = value
96
+ return value
97
+
98
+ api_key = ask("api_key", "API Key")
99
+ base_url = ask("base_url", "Base URL", defaults["base_url"], allow_empty=True)
100
+ model = ask("model", "模型名称", defaults["model"], allow_empty=True)
101
+
102
+ if api_key:
103
+ save_config(cfg)
104
+ return True
105
+
106
+ print("✗ 配置文件中的 api_key 为空,请填写后再运行本脚本。")
107
+ return False
108
+
109
+
110
+ def is_api_key_configured():
111
+ """Check config; if api_key missing/empty, prompt user to fill and persist."""
112
+ cfg = load_config()
113
+
114
+ api_key = str(cfg.get("api_key", "")).strip()
115
+ if api_key:
116
+ return True
117
+
118
+ print("✗ 当前 config.json 中 api_key 为空。")
119
+ return prompt_config_if_needed()
120
+
121
+ def create_desktop_shortcut():
122
+ """创建桌面快捷方式"""
123
+ try:
124
+ import win32com.client
125
+
126
+ desktop = os.path.expanduser("~\\Desktop")
127
+ shortcut_path = os.path.join(desktop, "BRAIN顾问助手.lnk")
128
+
129
+ # 获取 Python 可执行文件路径
130
+ python_exe = sys.executable
131
+
132
+ # 创建 shortcut
133
+ shell = win32com.client.Dispatch("WScript.Shell")
134
+ shortcut = shell.CreateShortcut(shortcut_path)
135
+ shortcut.TargetPath = python_exe
136
+ shortcut.Arguments = f'"{MAIN_SCRIPT}"'
137
+ shortcut.WorkingDirectory = PROJECT_DIR
138
+
139
+ # 设置图标:优先使用 .ico(Windows 标准格式),再试 .png
140
+ icon_found = False
141
+ if os.path.exists(ICON_ICO):
142
+ # .ico 文件:使用 "路径,0" 格式
143
+ shortcut.IconLocation = f"{ICON_ICO},0"
144
+ icon_found = True
145
+ print(f" 使用图标:{ICON_ICO}")
146
+ elif os.path.exists(ICON_PNG):
147
+ # .png 文件:也需要 "路径,0" 格式
148
+ shortcut.IconLocation = f"{ICON_PNG},0"
149
+ icon_found = True
150
+ print(f" 使用图标:{ICON_PNG}")
151
+ else:
152
+ # 使用 Python 可执行文件的图标作为默认
153
+ shortcut.IconLocation = f"{python_exe},0"
154
+ print(f" 使用默认图标(Python 图标)")
155
+
156
+ shortcut.Description = "BRAIN 顾问助手 - AI 驱动的交互工具"
157
+ shortcut.save()
158
+
159
+ print(f"✓ 桌面快捷方式已创建:{shortcut_path}")
160
+ return True
161
+ except ImportError:
162
+ print("⚠ pywin32 未安装,尝试使用备选方案创建快捷方式...")
163
+ try:
164
+ # 备选方案:使用 Windows API
165
+ create_shortcut_via_batch(desktop, shortcut_path, python_exe)
166
+ return True
167
+ except Exception as e:
168
+ print(f"✗ 创建快捷方式失败:{e}")
169
+ print(f" 请手动创建快捷方式,目标为:{python_exe} \"{MAIN_SCRIPT}\"")
170
+ return False
171
+ except Exception as e:
172
+ print(f"✗ 创建快捷方式失败:{e}")
173
+ return False
174
+
175
+ def check_knowledge_base():
176
+ """检查 knowledge 文件夹中的文件数量"""
177
+ if not os.path.exists(KNOWLEDGE_DIR):
178
+ os.makedirs(KNOWLEDGE_DIR)
179
+ print(f"✓ 创建 knowledge 文件夹:{KNOWLEDGE_DIR}")
180
+ return 0
181
+
182
+ # 只计算文件,不计算目录
183
+ files = [f for f in os.listdir(KNOWLEDGE_DIR) if os.path.isfile(os.path.join(KNOWLEDGE_DIR, f))]
184
+ file_count = len(files)
185
+ print(f"知识库文件数量:{file_count}")
186
+
187
+ if files:
188
+ print(f" 已有文件:{', '.join(files)}")
189
+
190
+ return file_count
191
+
192
+ def run_process_knowledge_base():
193
+ """运行 process_knowledge_base.py 建立知识库"""
194
+ if not os.path.exists(PROCESS_SCRIPT):
195
+ print(f"✗ 找不到 {PROCESS_SCRIPT}")
196
+ return False
197
+
198
+ print(f"\n正在运行知识库初始化脚本...")
199
+ print(f"命令:{sys.executable} \"{PROCESS_SCRIPT}\"")
200
+
201
+ try:
202
+ subprocess.run([sys.executable, PROCESS_SCRIPT], cwd=PROJECT_DIR)
203
+ print("✓ 知识库初始化完成")
204
+ return True
205
+ except Exception as e:
206
+ print(f"✗ 运行 process_knowledge_base.py 失败:{e}")
207
+ return False
208
+
209
+ def main():
210
+ print("=" * 60)
211
+ print("BRAIN 顾问助手 - 首次运行初始化")
212
+ print("=" * 60)
213
+ print()
214
+
215
+ # 0. 检查 api_key 是否已配置,未配置则直接退出
216
+ if not is_api_key_configured():
217
+ input("按 Enter 键退出...")
218
+ return
219
+
220
+ # 0.1 检查网络(ping + HTTPS),以确认代理已开启
221
+ print("[网络检查] 正在测试到 https://www.google.com 的连通性...")
222
+ if not check_network_reachable("https://www.google.com/generate_204"):
223
+ print("✗ 无法连通 google.com,请确认代理已开启,然后重新运行本脚本。")
224
+ input("按 Enter 键退出...")
225
+ return
226
+ print("✓ 网络检查通过")
227
+
228
+ # 1. 创建桌面快捷方式
229
+ print("[1/2] 创建桌面快捷方式...")
230
+ shortcut_ok = create_desktop_shortcut()
231
+ print()
232
+
233
+ # 2. 检查知识库
234
+ print("[2/2] 检查本地知识库...")
235
+ file_count = check_knowledge_base()
236
+ print()
237
+
238
+ if file_count <= 3:
239
+ print("⚠ 知识库文件较少(<= 3 个)")
240
+ print("建议建立本地知识库以增强 AI 回答效果")
241
+ print()
242
+
243
+ response = input("是否现在运行知识库初始化脚本?(y/n) [默认: y]: ").strip().lower()
244
+ if response != 'n':
245
+ run_process_knowledge_base()
246
+ else:
247
+ print(f"✓ 知识库已初始化(包含 {file_count} 个文件)")
248
+
249
+ print()
250
+ print("=" * 60)
251
+ print("初始化完成!")
252
+ print("=" * 60)
253
+ print()
254
+
255
+ if shortcut_ok:
256
+ print("📌 你现在可以从桌面快捷方式启动应用")
257
+ print(f" 或者运行:{sys.executable} \"{MAIN_SCRIPT}\"")
258
+ else:
259
+ print(f"请运行:{sys.executable} \"{MAIN_SCRIPT}\"")
260
+ print()
261
+
262
+ input("按 Enter 键退出...")
263
+
264
+ if __name__ == "__main__":
265
+ main()
@@ -0,0 +1,32 @@
1
+ # Custom templates directory (user-specific data)
2
+ custom_templates/
3
+
4
+ # Python cache
5
+ __pycache__/
6
+ *.pyc
7
+ *.pyo
8
+ *.pyd
9
+ .Python
10
+ *.so
11
+
12
+ # Virtual environment
13
+ venv/
14
+ env/
15
+ .env
16
+
17
+ # IDE files
18
+ .vscode/
19
+ .idea/
20
+ *.swp
21
+ *.swo
22
+
23
+ # OS files
24
+ .DS_Store
25
+ Thumbs.db
26
+
27
+ # Logs
28
+ *.log
29
+
30
+ # Temporary files
31
+ *.tmp
32
+ *.temp