cnhkmcp 2.1.0__tar.gz → 2.1.1__tar.gz
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.
- {cnhkmcp-2.1.0/cnhkmcp.egg-info → cnhkmcp-2.1.1}/PKG-INFO +1 -1
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/main.py +0 -5
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/rag_engine.py +96 -5
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/requirements.txt +0 -5
- cnhkmcp-2.1.1/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/vector_db/_manifest.json +326 -0
- cnhkmcp-2.1.1/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/vector_db/_meta.json +1 -0
- cnhkmcp-2.1.1/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/vector_db/be5d957c-b724-46e3-91d1-999e9f5f7d28/index_metadata.pickle +0 -0
- cnhkmcp-2.1.1/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/vector_db/chroma.sqlite3 +0 -0
- cnhkmcp-2.1.1/cnhkmcp/untracked/APP/Tranformer/ace.log +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1/cnhkmcp.egg-info}/PKG-INFO +1 -1
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp.egg-info/SOURCES.txt +4 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/setup.py +1 -1
- cnhkmcp-2.1.0/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/vector_db/chroma.sqlite3 +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/LICENSE +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/MANIFEST.in +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/README.md +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/__init__.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/README.md" +0 -0
- /cnhkmcp-2.1.0/cnhkmcp/untracked/APP/Tranformer/ace.log → /cnhkmcp-2.1.1/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/ace.log" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/config.json" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/get_knowledgeBase_tool/ace_lib.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/get_knowledgeBase_tool/fetch_all_datasets.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/get_knowledgeBase_tool/fetch_all_documentation.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/get_knowledgeBase_tool/fetch_all_operators.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/get_knowledgeBase_tool/helpful_functions.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/icon.ico" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/icon.png" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/knowledge/test.txt" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/process_knowledge_base.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266/run.bat" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/AI/346/241/214/351/235/242/346/217/222/344/273/266//351/246/226/346/254/241/350/277/220/350/241/214/346/211/223/345/274/200/346/210/221.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/.gitignore +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/MODULAR_STRUCTURE.md +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/README.md +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/Transformer.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/ace_lib.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/helpful_functions.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates_/347/244/272/344/276/213.json" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_error.json +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_success.json +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_generated_expressions_/347/244/272/344/276/213/345/217/257/347/233/264/346/216/245/350/275/275/345/205/245Machine_lib.json" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/parsetab.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/template_summary.txt +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/transformer_config.json +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/validator.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/ace.log +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/ace_lib.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/blueprints/__init__.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/blueprints/feature_engineering.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/blueprints/idea_house.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/blueprints/inspiration_house.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/blueprints/paper_analysis.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/custom_templates/templates.json +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/give_me_idea/BRAIN_Alpha_Template_Expert_SystemPrompt.md +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/give_me_idea/ace_lib.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/give_me_idea/alpha_data_specific_template_master.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/give_me_idea/fetch_all_datasets.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/give_me_idea/fetch_all_operators.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/give_me_idea/helpful_functions.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/give_me_idea/what_is_Alpha_template.md +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/helpful_functions.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/hkSimulator/ace_lib.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/hkSimulator/autosimulator.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/hkSimulator/helpful_functions.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/mirror_config.txt +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/operaters.csv +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/requirements.txt +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/run_app.bat +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/run_app.sh +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/setup_tsinghua.bat +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/setup_tsinghua.sh +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/simulator/alpha_submitter.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/simulator/simulator_wqb.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/ssrn-3332513.pdf +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/static/brain.js +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/static/decoder.js +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/static/feature_engineering.js +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/static/idea_house.js +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/static/inspiration.js +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/static/inspiration_house.js +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/static/paper_analysis.js +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/static/script.js +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/static/simulator.js +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/static/styles.css +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/static/usage_widget.js +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/templates/alpha_inspector.html +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/templates/feature_engineering.html +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/templates/idea_house.html +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/templates/index.html +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/templates/inspiration_house.html +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/templates/paper_analysis.html +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/templates/simulator.html +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/templates/transformer_web.html +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/usage.md +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP//347/274/230/345/210/206/344/270/200/351/201/223/346/241/245/ace_lib.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP//347/274/230/345/210/206/344/270/200/351/201/223/346/241/245/brain_alpha_inspector.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP//347/274/230/345/210/206/344/270/200/351/201/223/346/241/245/helpful_functions.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP//350/277/220/350/241/214/346/211/223/345/274/200/346/210/221.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/arXiv_API_Tool_Manual.md +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/arxiv_api.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/forum_functions.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252/forum_functions.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252/platform_functions.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252/user_config.json" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252//350/256/251AI/350/257/273/350/277/231/344/270/252/346/226/207/346/241/243/346/235/245/345/255/246/344/274/232/344/270/213/350/275/275/346/265/217/350/247/210/345/231/250.md" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/mcp/346/226/207/344/273/266/350/256/272/345/235/233/347/211/2102_/345/246/202/346/236/234/345/216/237/347/211/210/345/220/257/345/212/250/344/270/215/344/272/206/346/265/217/350/247/210/345/231/250/345/260/261/350/257/225/350/277/231/344/270/252//351/205/215/347/275/256/345/211/215/350/277/220/350/241/214/346/210/221_/345/256/211/350/243/205/345/277/205/350/246/201/344/276/235/350/265/226/345/214/205.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/platform_functions.py +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/sample_mcp_config.json +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/user_config.json +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked//347/244/272/344/276/213/345/217/202/350/200/203/346/226/207/346/241/243_BRAIN_Alpha_Test_Requirements_and_Tips.md" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_Alpha_explaination_workflow.md" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_BRAIN_6_Tips_Datafield_Exploration_Guide.md" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_BRAIN_Alpha_Improvement_Workflow.md" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_Dataset_Exploration_Expert_Manual.md" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked//347/244/272/344/276/213/345/267/245/344/275/234/346/265/201_daily_report_workflow.md" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked//351/205/215/347/275/256/345/211/215/350/277/220/350/241/214/346/210/221_/345/256/211/350/243/205/345/277/205/350/246/201/344/276/235/350/265/226/345/214/205.py" +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp.egg-info/dependency_links.txt +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp.egg-info/entry_points.txt +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp.egg-info/not-zip-safe +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp.egg-info/requires.txt +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp.egg-info/top_level.txt +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/requirements.txt +0 -0
- {cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/setup.cfg +0 -0
|
@@ -4,7 +4,6 @@ import base64
|
|
|
4
4
|
import tkinter as tk
|
|
5
5
|
from tkinter import scrolledtext, messagebox, Toplevel
|
|
6
6
|
from PIL import Image, ImageTk, ImageGrab
|
|
7
|
-
import pyautogui
|
|
8
7
|
from openai import OpenAI
|
|
9
8
|
import threading
|
|
10
9
|
import io
|
|
@@ -21,14 +20,10 @@ def install_dependencies():
|
|
|
21
20
|
# Mapping of package names to their import names (if different)
|
|
22
21
|
packages = {
|
|
23
22
|
"openai": "openai",
|
|
24
|
-
"pyautogui": "pyautogui",
|
|
25
23
|
"Pillow": "PIL",
|
|
26
|
-
"pyperclip": "pyperclip",
|
|
27
|
-
"keyboard": "keyboard",
|
|
28
24
|
"fastembed": "fastembed",
|
|
29
25
|
"chromadb": "chromadb",
|
|
30
26
|
"watchdog": "watchdog",
|
|
31
|
-
"urllib3": "urllib3",
|
|
32
27
|
"pypdf": "pypdf",
|
|
33
28
|
"python-docx": "docx"
|
|
34
29
|
}
|
|
@@ -34,6 +34,8 @@ class KnowledgeBase:
|
|
|
34
34
|
def __init__(self, kb_path="knowledge", db_path="vector_db"):
|
|
35
35
|
self.kb_path = os.path.abspath(kb_path)
|
|
36
36
|
self.db_path = os.path.abspath(db_path)
|
|
37
|
+
self.meta_path = os.path.join(self.db_path, "_meta.json")
|
|
38
|
+
self.manifest_path = os.path.join(self.db_path, "_manifest.json")
|
|
37
39
|
self._collection_reset_guard = False
|
|
38
40
|
|
|
39
41
|
if not os.path.exists(self.kb_path):
|
|
@@ -71,6 +73,13 @@ class KnowledgeBase:
|
|
|
71
73
|
# Store chosen model name for reference
|
|
72
74
|
global MODEL_NAME
|
|
73
75
|
MODEL_NAME = chosen
|
|
76
|
+
|
|
77
|
+
# Cache embedding dimension (detects library/model changes that corrupt existing indexes)
|
|
78
|
+
self.embed_dim = self._get_embedding_dim()
|
|
79
|
+
self.chroma_version = getattr(chromadb, "__version__", "unknown")
|
|
80
|
+
|
|
81
|
+
# If the stored index was built with a different model/dimension/chromadb version, wipe it
|
|
82
|
+
self._maybe_reset_for_incompatibility(chosen, self.embed_dim, self.chroma_version)
|
|
74
83
|
|
|
75
84
|
# Initialize Vector DB
|
|
76
85
|
self._init_collection()
|
|
@@ -85,19 +94,73 @@ class KnowledgeBase:
|
|
|
85
94
|
"""(Re)initialize Chroma client/collection. If recreate=True, wipe on-disk index."""
|
|
86
95
|
if recreate and os.path.exists(self.db_path):
|
|
87
96
|
shutil.rmtree(self.db_path, ignore_errors=True)
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
97
|
+
try:
|
|
98
|
+
self.client = chromadb.PersistentClient(path=self.db_path)
|
|
99
|
+
self.collection = self.client.get_or_create_collection(
|
|
100
|
+
name=COLLECTION_NAME,
|
|
101
|
+
metadata={"hnsw:space": "cosine"}
|
|
102
|
+
)
|
|
103
|
+
except Exception as exc:
|
|
104
|
+
# If collection load itself fails, wipe and retry once to clear corrupted segments
|
|
105
|
+
if not recreate:
|
|
106
|
+
shutil.rmtree(self.db_path, ignore_errors=True)
|
|
107
|
+
return self._init_collection(recreate=True)
|
|
108
|
+
raise
|
|
109
|
+
|
|
110
|
+
# Persist metadata about the embedding model used to build this index
|
|
111
|
+
try:
|
|
112
|
+
os.makedirs(self.db_path, exist_ok=True)
|
|
113
|
+
with open(self.meta_path, "w", encoding="utf-8") as f:
|
|
114
|
+
json.dump({
|
|
115
|
+
"model": MODEL_NAME,
|
|
116
|
+
"embed_dim": self.embed_dim,
|
|
117
|
+
"chroma_version": self.chroma_version,
|
|
118
|
+
}, f)
|
|
119
|
+
except Exception:
|
|
120
|
+
pass # Metadata failure should not block runtime
|
|
121
|
+
|
|
122
|
+
def _maybe_reset_for_incompatibility(self, chosen_model: str, embed_dim: int, chroma_version: str):
|
|
123
|
+
"""If existing index meta differs (model/dimension/chromadb), wipe it."""
|
|
124
|
+
if not os.path.exists(self.db_path):
|
|
125
|
+
return
|
|
126
|
+
try:
|
|
127
|
+
with open(self.meta_path, "r", encoding="utf-8") as f:
|
|
128
|
+
meta = json.load(f)
|
|
129
|
+
prev_model = meta.get("model")
|
|
130
|
+
prev_dim = meta.get("embed_dim")
|
|
131
|
+
prev_chroma = meta.get("chroma_version")
|
|
132
|
+
if prev_model != chosen_model or prev_dim != embed_dim or prev_chroma != chroma_version:
|
|
133
|
+
shutil.rmtree(self.db_path, ignore_errors=True)
|
|
134
|
+
except Exception:
|
|
135
|
+
# If meta cannot be read, assume stale/corrupted and rebuild
|
|
136
|
+
shutil.rmtree(self.db_path, ignore_errors=True)
|
|
137
|
+
|
|
138
|
+
def _get_embedding_dim(self) -> int:
|
|
139
|
+
for vec in self.model.embed(["dimension_probe"]):
|
|
140
|
+
try:
|
|
141
|
+
return len(vec)
|
|
142
|
+
except Exception:
|
|
143
|
+
return len(list(vec))
|
|
144
|
+
raise RuntimeError("Failed to determine embedding dimension")
|
|
93
145
|
|
|
94
146
|
def sync_knowledge(self, allow_reset: bool = True):
|
|
95
147
|
"""Scans the knowledge folder and updates the vector database."""
|
|
96
148
|
print("Syncing knowledge base...")
|
|
149
|
+
manifest = self._load_manifest()
|
|
150
|
+
updated_manifest = {}
|
|
97
151
|
supported_extensions = (".txt", ".md", ".pdf", ".docx", ".json")
|
|
152
|
+
current_files = []
|
|
98
153
|
for filename in os.listdir(self.kb_path):
|
|
99
154
|
file_path = os.path.join(self.kb_path, filename)
|
|
100
155
|
if os.path.isfile(file_path) and filename.lower().endswith(supported_extensions):
|
|
156
|
+
current_files.append(filename)
|
|
157
|
+
mtime = os.path.getmtime(file_path)
|
|
158
|
+
size = os.path.getsize(file_path)
|
|
159
|
+
prev_meta = manifest.get(filename)
|
|
160
|
+
# Skip unchanged files
|
|
161
|
+
if prev_meta and prev_meta.get("mtime") == mtime and prev_meta.get("size") == size:
|
|
162
|
+
updated_manifest[filename] = prev_meta
|
|
163
|
+
continue
|
|
101
164
|
try:
|
|
102
165
|
content = self._extract_text(file_path)
|
|
103
166
|
if content:
|
|
@@ -133,6 +196,7 @@ class KnowledgeBase:
|
|
|
133
196
|
embeddings=embeddings
|
|
134
197
|
)
|
|
135
198
|
print(f" ✓ Indexed {filename}: {len(original_chunks)} chunks")
|
|
199
|
+
updated_manifest[filename] = {"mtime": mtime, "size": size}
|
|
136
200
|
except Exception as e:
|
|
137
201
|
err_msg = str(e)
|
|
138
202
|
print(f"Error processing {filename}: {err_msg}")
|
|
@@ -143,6 +207,16 @@ class KnowledgeBase:
|
|
|
143
207
|
self._collection_reset_guard = True
|
|
144
208
|
self._init_collection(recreate=True)
|
|
145
209
|
return self.sync_knowledge(allow_reset=False)
|
|
210
|
+
# Remove deleted files from the index
|
|
211
|
+
deleted_files = set(manifest.keys()) - set(current_files)
|
|
212
|
+
for filename in deleted_files:
|
|
213
|
+
try:
|
|
214
|
+
self.collection.delete(where={"source": filename})
|
|
215
|
+
print(f" ✓ Removed deleted file from index: {filename}")
|
|
216
|
+
except Exception as e:
|
|
217
|
+
print(f" ! Failed to remove {filename}: {e}")
|
|
218
|
+
# Persist manifest
|
|
219
|
+
self._save_manifest(updated_manifest)
|
|
146
220
|
print("Knowledge base sync complete.")
|
|
147
221
|
|
|
148
222
|
def _extract_text(self, file_path):
|
|
@@ -248,6 +322,23 @@ class KnowledgeBase:
|
|
|
248
322
|
self.observer.schedule(event_handler, self.kb_path, recursive=False)
|
|
249
323
|
self.observer.start()
|
|
250
324
|
|
|
325
|
+
def _load_manifest(self):
|
|
326
|
+
if not os.path.exists(self.manifest_path):
|
|
327
|
+
return {}
|
|
328
|
+
try:
|
|
329
|
+
with open(self.manifest_path, "r", encoding="utf-8") as f:
|
|
330
|
+
return json.load(f)
|
|
331
|
+
except Exception:
|
|
332
|
+
return {}
|
|
333
|
+
|
|
334
|
+
def _save_manifest(self, data):
|
|
335
|
+
try:
|
|
336
|
+
os.makedirs(self.db_path, exist_ok=True)
|
|
337
|
+
with open(self.manifest_path, "w", encoding="utf-8") as f:
|
|
338
|
+
json.dump(data, f, ensure_ascii=False, indent=2)
|
|
339
|
+
except Exception as e:
|
|
340
|
+
print(f" ! Failed to save manifest: {e}")
|
|
341
|
+
|
|
251
342
|
class KBHandler(FileSystemEventHandler):
|
|
252
343
|
def __init__(self, kb_instance):
|
|
253
344
|
self.kb = kb_instance
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
{
|
|
2
|
+
"001_10_Steps_to_Start_on_BRAIN_documentation.json": {
|
|
3
|
+
"mtime": 1767187226.1783848,
|
|
4
|
+
"size": 2483
|
|
5
|
+
},
|
|
6
|
+
"001_Intermediate_Pack_-_Improve_your_Alpha_2_2_documentation.json": {
|
|
7
|
+
"mtime": 1767187225.6750722,
|
|
8
|
+
"size": 9295
|
|
9
|
+
},
|
|
10
|
+
"001_Intermediate_Pack_-_Understand_Results_1_2_documentation.json": {
|
|
11
|
+
"mtime": 1767187225.1160033,
|
|
12
|
+
"size": 9758
|
|
13
|
+
},
|
|
14
|
+
"001_Introduction_to_Alphas_documentation.json": {
|
|
15
|
+
"mtime": 1767187223.7560995,
|
|
16
|
+
"size": 11156
|
|
17
|
+
},
|
|
18
|
+
"001_Introduction_to_BRAIN_Expression_Language_documentation.json": {
|
|
19
|
+
"mtime": 1767187224.277528,
|
|
20
|
+
"size": 4925
|
|
21
|
+
},
|
|
22
|
+
"001_WorldQuant_Challenge_documentation.json": {
|
|
23
|
+
"mtime": 1767187226.6850047,
|
|
24
|
+
"size": 4605
|
|
25
|
+
},
|
|
26
|
+
"001__Read_this_First_-_Starter_Pack_documentation.json": {
|
|
27
|
+
"mtime": 1767187223.2536645,
|
|
28
|
+
"size": 31286
|
|
29
|
+
},
|
|
30
|
+
"002_How_to_choose_the_Simulation_Settings_documentation.json": {
|
|
31
|
+
"mtime": 1767187228.2257776,
|
|
32
|
+
"size": 13775
|
|
33
|
+
},
|
|
34
|
+
"002_Simulate_your_first_Alpha_documentation.json": {
|
|
35
|
+
"mtime": 1767187227.7143147,
|
|
36
|
+
"size": 8701
|
|
37
|
+
},
|
|
38
|
+
"002__Alpha_Examples_for_Beginners_documentation.json": {
|
|
39
|
+
"mtime": 1767187229.1900375,
|
|
40
|
+
"size": 10826
|
|
41
|
+
},
|
|
42
|
+
"002__Alpha_Examples_for_Bronze_Users_documentation.json": {
|
|
43
|
+
"mtime": 1767187229.664476,
|
|
44
|
+
"size": 4795
|
|
45
|
+
},
|
|
46
|
+
"002__Alpha_Examples_for_Silver_Users_documentation.json": {
|
|
47
|
+
"mtime": 1767187230.1425803,
|
|
48
|
+
"size": 3854
|
|
49
|
+
},
|
|
50
|
+
"002__How_BRAIN_works_documentation.json": {
|
|
51
|
+
"mtime": 1767187228.7194252,
|
|
52
|
+
"size": 16929
|
|
53
|
+
},
|
|
54
|
+
"003_Clear_these_tests_before_submitting_an_Alpha_documentation.json": {
|
|
55
|
+
"mtime": 1767187231.1392078,
|
|
56
|
+
"size": 24609
|
|
57
|
+
},
|
|
58
|
+
"003_Parameters_in_the_Simulation_results_documentation.json": {
|
|
59
|
+
"mtime": 1767187231.8167577,
|
|
60
|
+
"size": 16168
|
|
61
|
+
},
|
|
62
|
+
"004_Group_Data_Fields_documentation.json": {
|
|
63
|
+
"mtime": 1767187234.323853,
|
|
64
|
+
"size": 4663
|
|
65
|
+
},
|
|
66
|
+
"004_How_to_use_the_Data_Explorer_documentation.json": {
|
|
67
|
+
"mtime": 1767187233.2908292,
|
|
68
|
+
"size": 6196
|
|
69
|
+
},
|
|
70
|
+
"004_Model77_dataset_documentation.json": {
|
|
71
|
+
"mtime": 1767187234.7999012,
|
|
72
|
+
"size": 3274
|
|
73
|
+
},
|
|
74
|
+
"004_Sentiment1_dataset_documentation.json": {
|
|
75
|
+
"mtime": 1767187235.2783144,
|
|
76
|
+
"size": 2058
|
|
77
|
+
},
|
|
78
|
+
"004_Understanding_Data_in_BRAIN_Key_Concepts_and_Tips_documentation.json": {
|
|
79
|
+
"mtime": 1767187232.782544,
|
|
80
|
+
"size": 9173
|
|
81
|
+
},
|
|
82
|
+
"004_Vector_Data_Fields_documentation.json": {
|
|
83
|
+
"mtime": 1767187233.8419762,
|
|
84
|
+
"size": 6058
|
|
85
|
+
},
|
|
86
|
+
"005_Crowding_Risk-Neutralized_Alphas_documentation.json": {
|
|
87
|
+
"mtime": 1767187239.4696057,
|
|
88
|
+
"size": 3404
|
|
89
|
+
},
|
|
90
|
+
"005_D0_documentation.json": {
|
|
91
|
+
"mtime": 1767187237.8772166,
|
|
92
|
+
"size": 5894
|
|
93
|
+
},
|
|
94
|
+
"005_Double_Neutralization_documentation.json": {
|
|
95
|
+
"mtime": 1767187237.2801647,
|
|
96
|
+
"size": 3308
|
|
97
|
+
},
|
|
98
|
+
"005_Fast_D1_Documentation_documentation.json": {
|
|
99
|
+
"mtime": 1767187244.849411,
|
|
100
|
+
"size": 11325
|
|
101
|
+
},
|
|
102
|
+
"005_Investability_Constrained_Metrics_documentation.json": {
|
|
103
|
+
"mtime": 1767187244.361986,
|
|
104
|
+
"size": 7971
|
|
105
|
+
},
|
|
106
|
+
"005_Must-read_posts_How_to_improve_your_Alphas_documentation.json": {
|
|
107
|
+
"mtime": 1767187236.2457168,
|
|
108
|
+
"size": 2781
|
|
109
|
+
},
|
|
110
|
+
"005_Neutralization_documentation.json": {
|
|
111
|
+
"mtime": 1767187236.7823203,
|
|
112
|
+
"size": 8962
|
|
113
|
+
},
|
|
114
|
+
"005_RAM_Risk-Neutralized_Alphas_documentation.json": {
|
|
115
|
+
"mtime": 1767187240.0576506,
|
|
116
|
+
"size": 4121
|
|
117
|
+
},
|
|
118
|
+
"005_Risk_Neutralization_Default_setting_documentation.json": {
|
|
119
|
+
"mtime": 1767187238.9658227,
|
|
120
|
+
"size": 3796
|
|
121
|
+
},
|
|
122
|
+
"005_Risk_Neutralized_Alphas_documentation.json": {
|
|
123
|
+
"mtime": 1767187238.4253874,
|
|
124
|
+
"size": 11617
|
|
125
|
+
},
|
|
126
|
+
"005_Statistical_Risk-Neutralized_Alphas_documentation.json": {
|
|
127
|
+
"mtime": 1767187240.5924916,
|
|
128
|
+
"size": 5663
|
|
129
|
+
},
|
|
130
|
+
"006_EUR_TOP2500_Universe_documentation.json": {
|
|
131
|
+
"mtime": 1767187247.5703416,
|
|
132
|
+
"size": 2248
|
|
133
|
+
},
|
|
134
|
+
"006_Getting_Started_China_Research_for_Consultants_Gold_documentation.json": {
|
|
135
|
+
"mtime": 1767187248.0169055,
|
|
136
|
+
"size": 8247
|
|
137
|
+
},
|
|
138
|
+
"006_Getting_started_on_Illiquid_Universes_Gold_documentation.json": {
|
|
139
|
+
"mtime": 1767187247.1297894,
|
|
140
|
+
"size": 2224
|
|
141
|
+
},
|
|
142
|
+
"006_Getting_started_with_USA_TOPSP500_universe_Gold_documentation.json": {
|
|
143
|
+
"mtime": 1767187246.6729863,
|
|
144
|
+
"size": 2681
|
|
145
|
+
},
|
|
146
|
+
"006_GLB_TOPDIV3000_Universe_documentation.json": {
|
|
147
|
+
"mtime": 1767187248.4504318,
|
|
148
|
+
"size": 2990
|
|
149
|
+
},
|
|
150
|
+
"006_Global_Alphas_Gold_documentation.json": {
|
|
151
|
+
"mtime": 1767187246.0390387,
|
|
152
|
+
"size": 5531
|
|
153
|
+
},
|
|
154
|
+
"006_India_Alphas_documentation.json": {
|
|
155
|
+
"mtime": 1767187248.8769279,
|
|
156
|
+
"size": 1845
|
|
157
|
+
},
|
|
158
|
+
"007_Consultant_Dos_and_Don_ts_documentation.json": {
|
|
159
|
+
"mtime": 1767187252.9861574,
|
|
160
|
+
"size": 6318
|
|
161
|
+
},
|
|
162
|
+
"007_Consultant_Features_documentation.json": {
|
|
163
|
+
"mtime": 1767187251.6508195,
|
|
164
|
+
"size": 16785
|
|
165
|
+
},
|
|
166
|
+
"007_Consultant_Simulation_Features_documentation.json": {
|
|
167
|
+
"mtime": 1767187251.177272,
|
|
168
|
+
"size": 7226
|
|
169
|
+
},
|
|
170
|
+
"007_Consultant_Submission_Tests_documentation.json": {
|
|
171
|
+
"mtime": 1767187252.1096609,
|
|
172
|
+
"size": 17040
|
|
173
|
+
},
|
|
174
|
+
"007_Finding_Consultant_Alphas_documentation.json": {
|
|
175
|
+
"mtime": 1767187250.6579707,
|
|
176
|
+
"size": 24560
|
|
177
|
+
},
|
|
178
|
+
"007_Power_Pool_Alphas_documentation.json": {
|
|
179
|
+
"mtime": 1767187250.1653683,
|
|
180
|
+
"size": 6398
|
|
181
|
+
},
|
|
182
|
+
"007_Research_Advisory_Program_documentation.json": {
|
|
183
|
+
"mtime": 1767187253.4177225,
|
|
184
|
+
"size": 2637
|
|
185
|
+
},
|
|
186
|
+
"007_Starting_Guide_for_Research_Consultants_documentation.json": {
|
|
187
|
+
"mtime": 1767187249.7283993,
|
|
188
|
+
"size": 3245
|
|
189
|
+
},
|
|
190
|
+
"007_Visualization_Tool_documentation.json": {
|
|
191
|
+
"mtime": 1767187252.5484178,
|
|
192
|
+
"size": 5744
|
|
193
|
+
},
|
|
194
|
+
"007_Your_Advisor_-_Kunqi_Jiang_documentation.json": {
|
|
195
|
+
"mtime": 1767187253.8533716,
|
|
196
|
+
"size": 4746
|
|
197
|
+
},
|
|
198
|
+
"007__Brain_Genius_documentation.json": {
|
|
199
|
+
"mtime": 1767187257.3133671,
|
|
200
|
+
"size": 16460
|
|
201
|
+
},
|
|
202
|
+
"007__Single_Dataset_Alphas_documentation.json": {
|
|
203
|
+
"mtime": 1767187256.8453045,
|
|
204
|
+
"size": 4113
|
|
205
|
+
},
|
|
206
|
+
"008_Advisory_Theme_Calendar_documentation.json": {
|
|
207
|
+
"mtime": 1767187259.502196,
|
|
208
|
+
"size": 584
|
|
209
|
+
},
|
|
210
|
+
"008_Multiplier_Rules_documentation.json": {
|
|
211
|
+
"mtime": 1767187258.6333888,
|
|
212
|
+
"size": 2178
|
|
213
|
+
},
|
|
214
|
+
"008_Overview_of_Themes_documentation.json": {
|
|
215
|
+
"mtime": 1767187258.1852746,
|
|
216
|
+
"size": 1784
|
|
217
|
+
},
|
|
218
|
+
"008_Theme_Calendar_documentation.json": {
|
|
219
|
+
"mtime": 1767187259.0729353,
|
|
220
|
+
"size": 8936
|
|
221
|
+
},
|
|
222
|
+
"009_Combo_Expression_documentation.json": {
|
|
223
|
+
"mtime": 1767187261.4117863,
|
|
224
|
+
"size": 10902
|
|
225
|
+
},
|
|
226
|
+
"009_Global_SuperAlphas_documentation.json": {
|
|
227
|
+
"mtime": 1767187263.181562,
|
|
228
|
+
"size": 3717
|
|
229
|
+
},
|
|
230
|
+
"009_Helpful_Tips_documentation.json": {
|
|
231
|
+
"mtime": 1767187262.3033876,
|
|
232
|
+
"size": 3618
|
|
233
|
+
},
|
|
234
|
+
"009_Selection_Expression_documentation.json": {
|
|
235
|
+
"mtime": 1767187260.918844,
|
|
236
|
+
"size": 47119
|
|
237
|
+
},
|
|
238
|
+
"009_SuperAlpha_Operators_documentation.json": {
|
|
239
|
+
"mtime": 1767187262.748049,
|
|
240
|
+
"size": 18735
|
|
241
|
+
},
|
|
242
|
+
"009_SuperAlpha_Results_documentation.json": {
|
|
243
|
+
"mtime": 1767187261.8593862,
|
|
244
|
+
"size": 3838
|
|
245
|
+
},
|
|
246
|
+
"009_What_is_a_SuperAlpha_documentation.json": {
|
|
247
|
+
"mtime": 1767187260.3861206,
|
|
248
|
+
"size": 13234
|
|
249
|
+
},
|
|
250
|
+
"010_BRAIN_API_documentation.json": {
|
|
251
|
+
"mtime": 1767187264.5490012,
|
|
252
|
+
"size": 36407
|
|
253
|
+
},
|
|
254
|
+
"010_Documentation_for_ACE_API_Library_Gold_documentation.json": {
|
|
255
|
+
"mtime": 1767187264.9810457,
|
|
256
|
+
"size": 1660
|
|
257
|
+
},
|
|
258
|
+
"010__Understanding_simulation_limits_documentation.json": {
|
|
259
|
+
"mtime": 1767187264.0576608,
|
|
260
|
+
"size": 12013
|
|
261
|
+
},
|
|
262
|
+
"arithmetic_operators.json": {
|
|
263
|
+
"mtime": 1767187265.4527013,
|
|
264
|
+
"size": 5302
|
|
265
|
+
},
|
|
266
|
+
"asi_datasets.json": {
|
|
267
|
+
"mtime": 1767187329.8343418,
|
|
268
|
+
"size": 241709
|
|
269
|
+
},
|
|
270
|
+
"chn_datasets.json": {
|
|
271
|
+
"mtime": 1767187329.8464715,
|
|
272
|
+
"size": 112139
|
|
273
|
+
},
|
|
274
|
+
"cross_sectional_operators.json": {
|
|
275
|
+
"mtime": 1767187265.454866,
|
|
276
|
+
"size": 3393
|
|
277
|
+
},
|
|
278
|
+
"eur_datasets.json": {
|
|
279
|
+
"mtime": 1767187329.8725038,
|
|
280
|
+
"size": 268981
|
|
281
|
+
},
|
|
282
|
+
"glb_datasets.json": {
|
|
283
|
+
"mtime": 1767187329.8975177,
|
|
284
|
+
"size": 222049
|
|
285
|
+
},
|
|
286
|
+
"group_operators.json": {
|
|
287
|
+
"mtime": 1767187265.4558804,
|
|
288
|
+
"size": 4058
|
|
289
|
+
},
|
|
290
|
+
"ind_datasets.json": {
|
|
291
|
+
"mtime": 1767187329.930282,
|
|
292
|
+
"size": 259819
|
|
293
|
+
},
|
|
294
|
+
"logical_operators.json": {
|
|
295
|
+
"mtime": 1767187265.4568646,
|
|
296
|
+
"size": 3549
|
|
297
|
+
},
|
|
298
|
+
"reduce_operators.json": {
|
|
299
|
+
"mtime": 1767187265.4588814,
|
|
300
|
+
"size": 8602
|
|
301
|
+
},
|
|
302
|
+
"special_operators.json": {
|
|
303
|
+
"mtime": 1767188164.9683514,
|
|
304
|
+
"size": 893
|
|
305
|
+
},
|
|
306
|
+
"test.txt": {
|
|
307
|
+
"mtime": 1767174050.546388,
|
|
308
|
+
"size": 82
|
|
309
|
+
},
|
|
310
|
+
"time_series_operators.json": {
|
|
311
|
+
"mtime": 1767187265.4623148,
|
|
312
|
+
"size": 12968
|
|
313
|
+
},
|
|
314
|
+
"transformational_operators.json": {
|
|
315
|
+
"mtime": 1767187265.4623148,
|
|
316
|
+
"size": 2080
|
|
317
|
+
},
|
|
318
|
+
"usa_datasets.json": {
|
|
319
|
+
"mtime": 1767187329.9605117,
|
|
320
|
+
"size": 402280
|
|
321
|
+
},
|
|
322
|
+
"vector_operators.json": {
|
|
323
|
+
"mtime": 1767187265.4637623,
|
|
324
|
+
"size": 997
|
|
325
|
+
}
|
|
326
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"model": "jinaai/jina-embeddings-v2-base-zh", "embed_dim": 768, "chroma_version": "1.4.0"}
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
@@ -25,6 +25,7 @@ cnhkmcp/untracked/示例工作流_Dataset_Exploration_Expert_Manual.md
|
|
|
25
25
|
cnhkmcp/untracked/示例工作流_daily_report_workflow.md
|
|
26
26
|
cnhkmcp/untracked/配置前运行我_安装必要依赖包.py
|
|
27
27
|
cnhkmcp/untracked/AI桌面插件/README.md
|
|
28
|
+
cnhkmcp/untracked/AI桌面插件/ace.log
|
|
28
29
|
cnhkmcp/untracked/AI桌面插件/config.json
|
|
29
30
|
cnhkmcp/untracked/AI桌面插件/icon.ico
|
|
30
31
|
cnhkmcp/untracked/AI桌面插件/icon.png
|
|
@@ -40,7 +41,10 @@ cnhkmcp/untracked/AI桌面插件/get_knowledgeBase_tool/fetch_all_documentation.
|
|
|
40
41
|
cnhkmcp/untracked/AI桌面插件/get_knowledgeBase_tool/fetch_all_operators.py
|
|
41
42
|
cnhkmcp/untracked/AI桌面插件/get_knowledgeBase_tool/helpful_functions.py
|
|
42
43
|
cnhkmcp/untracked/AI桌面插件/knowledge/test.txt
|
|
44
|
+
cnhkmcp/untracked/AI桌面插件/vector_db/_manifest.json
|
|
45
|
+
cnhkmcp/untracked/AI桌面插件/vector_db/_meta.json
|
|
43
46
|
cnhkmcp/untracked/AI桌面插件/vector_db/chroma.sqlite3
|
|
47
|
+
cnhkmcp/untracked/AI桌面插件/vector_db/be5d957c-b724-46e3-91d1-999e9f5f7d28/index_metadata.pickle
|
|
44
48
|
cnhkmcp/untracked/APP/.gitignore
|
|
45
49
|
cnhkmcp/untracked/APP/MODULAR_STRUCTURE.md
|
|
46
50
|
cnhkmcp/untracked/APP/README.md
|
|
@@ -13,7 +13,7 @@ def read_requirements():
|
|
|
13
13
|
|
|
14
14
|
setup(
|
|
15
15
|
name="cnhkmcp",
|
|
16
|
-
version="2.1.
|
|
16
|
+
version="2.1.1",
|
|
17
17
|
author="CNHK",
|
|
18
18
|
author_email="cnhk@example.com",
|
|
19
19
|
description="A comprehensive Model Context Protocol (MCP) server for quantitative trading platform integration",
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/Tranformer/output/Alpha_candidates.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cnhkmcp-2.1.0 → cnhkmcp-2.1.1}/cnhkmcp/untracked/APP/give_me_idea/what_is_Alpha_template.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|