Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(solver): catch solver execption in main solver #305

Open
wants to merge 323 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
323 commits
Select commit Hold shift + click to select a range
dba5781
spg guided relation extraction
zhuzhongshu123 Dec 6, 2024
39a27ca
Merge pull request #111 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 6, 2024
2ffada9
fix dict parse with same key
zhuzhongshu123 Dec 9, 2024
b542252
Merge pull request #113 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 9, 2024
dc1e646
rename graphalgoclient to graphclient
northmachine Dec 10, 2024
a82bbad
rename graphalgoclient to graphclient
northmachine Dec 10, 2024
f13f82d
Merge branch '0.6_dev' of github.com:OpenSPG/KAG into 0.6_dev
northmachine Dec 10, 2024
8c4f6e7
Merge branch '0.6_dev' of github.com:OpenSPG/KAG into 0.6_dev
northmachine Dec 11, 2024
b868e06
file reader supports http url
zhuzhongshu123 Dec 11, 2024
c241ab9
Merge pull request #117 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 11, 2024
2eba9bf
add checkpointer class
zhuzhongshu123 Dec 11, 2024
507a510
parser supports checkpoint
zhuzhongshu123 Dec 12, 2024
d9a071a
add build
northmachine Dec 12, 2024
13fa713
remove incorrect logs
zhuzhongshu123 Dec 12, 2024
38ac5ad
Merge pull request #121 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 12, 2024
1986b1e
remove logs
zhuzhongshu123 Dec 13, 2024
6351fa5
update examples
zhuzhongshu123 Dec 13, 2024
5665991
update chain checkpointer
zhuzhongshu123 Dec 13, 2024
cf37bb6
Merge pull request #124 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 13, 2024
ed349f1
vectorizer batch size set to 32
zhuzhongshu123 Dec 13, 2024
d878d82
Merge pull request #125 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 13, 2024
66a6550
add a zodb backended checkpointer
zhuzhongshu123 Dec 13, 2024
433bc50
add a zodb backended checkpointer
zhuzhongshu123 Dec 13, 2024
03f5153
Merge pull request #127 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 13, 2024
263b073
fix zodb based checkpointer
zhuzhongshu123 Dec 16, 2024
115515b
Merge pull request #128 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 16, 2024
b78b7a3
add thread for zodb IO
zhuzhongshu123 Dec 16, 2024
5a9c73e
fix(common): resolve mutlithread conflict in zodb IO
zhuzhongshu123 Dec 16, 2024
1b147d0
Merge pull request #131 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 16, 2024
8f61b2a
fix(common): load existing zodb checkpoints
zhuzhongshu123 Dec 16, 2024
fd3e5f9
Merge pull request #132 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 16, 2024
3261cda
update examples
zhuzhongshu123 Dec 16, 2024
48214ea
Merge pull request #133 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 16, 2024
0f0481c
update examples
zhuzhongshu123 Dec 16, 2024
519dbcf
Merge pull request #134 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 16, 2024
958f341
fix zodb writer
zhuzhongshu123 Dec 16, 2024
b7e074d
Merge pull request #135 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 16, 2024
1211d8a
add docstring
zhuzhongshu123 Dec 16, 2024
7cab3db
fix jieba version mismatch
zhuzhongshu123 Dec 16, 2024
eae6b4c
Merge pull request #136 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 16, 2024
0bb611b
commit kag_config-tc.yaml
caszkgui Dec 17, 2024
c69cd59
commit kag_config-tc.yaml
caszkgui Dec 17, 2024
5dc70ab
1、fix bug in base_table_splitter
caszkgui Dec 17, 2024
f0231d2
1、fix bug in base_table_splitter
caszkgui Dec 17, 2024
5ad69c3
1、fix bug in default_chain
caszkgui Dec 17, 2024
8daabee
增加solver
royzhao Dec 17, 2024
9490a99
add kag
royzhao Dec 17, 2024
0a95c98
Merge branch '0.6_dev' of github.com:OpenSPG/KAG into 0.6_dev
northmachine Dec 18, 2024
135dc56
update outline splitter
northmachine Dec 18, 2024
eb70c53
add main test
northmachine Dec 18, 2024
689f5df
add op
royzhao Dec 18, 2024
c933df1
code refactor
zhuzhongshu123 Dec 18, 2024
e090432
Merge pull request #140 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 18, 2024
6d60513
add tools
royzhao Dec 18, 2024
4da8a06
fix outline splitter
zhuzhongshu123 Dec 18, 2024
d4d2a62
fix outline prompt
zhuzhongshu123 Dec 18, 2024
43e41ca
Merge pull request #142 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 18, 2024
344cee6
graph api pass
royzhao Dec 18, 2024
f5666fd
commit with page rank
royzhao Dec 18, 2024
45837b6
add search api and graph api
royzhao Dec 18, 2024
aeb980c
add markdown report
northmachine Dec 13, 2024
c5aa82a
Merge branch '0.6_dev' of github.com:OpenSPG/KAG into 0.6_dev
northmachine Dec 19, 2024
e8511dd
fix vectorizer num batch compute
zhuzhongshu123 Dec 19, 2024
2d5c3a4
add retry for vectorize model call
zhuzhongshu123 Dec 19, 2024
eeffee2
Merge pull request #145 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 19, 2024
2577bdb
update markdown reader
northmachine Dec 19, 2024
eecc99b
Merge branch '0.6_dev' of github.com:OpenSPG/KAG into 0.6_dev
northmachine Dec 19, 2024
140c02b
update markdown reader
northmachine Dec 19, 2024
4ae44a3
update pdf reader
northmachine Dec 19, 2024
cf32022
raise extractor failure
zhuzhongshu123 Dec 19, 2024
08bb5b8
Merge pull request #146 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 19, 2024
645230c
add default expr
royzhao Dec 19, 2024
b2d68c7
add log
royzhao Dec 19, 2024
43ab3d9
merge jc reader features
northmachine Dec 19, 2024
86d2189
Merge branch '0.6_dev' of github.com:OpenSPG/KAG into 0.6_dev
northmachine Dec 19, 2024
af2d820
rm import
northmachine Dec 19, 2024
e584db5
add build
northmachine Dec 12, 2024
f2853bc
fix zodb based checkpointer
zhuzhongshu123 Dec 16, 2024
8efa84b
add thread for zodb IO
zhuzhongshu123 Dec 16, 2024
b67bf49
fix(common): resolve mutlithread conflict in zodb IO
zhuzhongshu123 Dec 16, 2024
2517812
fix(common): load existing zodb checkpoints
zhuzhongshu123 Dec 16, 2024
fb55f0e
update examples
zhuzhongshu123 Dec 16, 2024
f566020
update examples
zhuzhongshu123 Dec 16, 2024
56e244a
fix zodb writer
zhuzhongshu123 Dec 16, 2024
c8f2413
add docstring
zhuzhongshu123 Dec 16, 2024
3109e47
fix jieba version mismatch
zhuzhongshu123 Dec 16, 2024
896abea
commit kag_config-tc.yaml
caszkgui Dec 17, 2024
b1f7dce
commit kag_config-tc.yaml
caszkgui Dec 17, 2024
bd39d30
1、fix bug in base_table_splitter
caszkgui Dec 17, 2024
f0260fa
1、fix bug in base_table_splitter
caszkgui Dec 17, 2024
7fb0de8
1、fix bug in default_chain
caszkgui Dec 17, 2024
7f0cf73
update outline splitter
northmachine Dec 18, 2024
5609b69
add main test
northmachine Dec 18, 2024
346b3cb
add markdown report
northmachine Dec 13, 2024
2d7d5ac
code refactor
zhuzhongshu123 Dec 18, 2024
524a605
fix outline splitter
zhuzhongshu123 Dec 18, 2024
ae3758f
fix outline prompt
zhuzhongshu123 Dec 18, 2024
d523cc8
update markdown reader
northmachine Dec 19, 2024
7e7cfae
fix vectorizer num batch compute
zhuzhongshu123 Dec 19, 2024
46388f6
add retry for vectorize model call
zhuzhongshu123 Dec 19, 2024
b7507fe
update markdown reader
northmachine Dec 19, 2024
82b57de
raise extractor failure
zhuzhongshu123 Dec 19, 2024
97c936e
rm parser
northmachine Dec 19, 2024
c213ceb
run pipeline
royzhao Dec 19, 2024
5f51fbf
add config option of whether to perform llm config check, default to …
zhuzhongshu123 Dec 20, 2024
726ecd7
Merge pull request #148 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 20, 2024
738969e
fix
royzhao Dec 20, 2024
0535526
merge
royzhao Dec 20, 2024
ba209ec
recover pdf reader
royzhao Dec 20, 2024
a90a501
several components can be null for default chain
zhuzhongshu123 Dec 20, 2024
e73aad0
Merge pull request #149 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 20, 2024
0d0f31d
支持完整qa运行
royzhao Dec 20, 2024
e119af3
add if
royzhao Dec 20, 2024
de5b207
remove unused code
royzhao Dec 20, 2024
f7c13d6
使用chunk兜底
royzhao Dec 20, 2024
d017fd7
excluded source relation to choose
royzhao Dec 20, 2024
aa2085d
add generate
royzhao Dec 20, 2024
47aadc5
default recall 10
royzhao Dec 20, 2024
e685e1c
add local memory
royzhao Dec 20, 2024
c5c4a38
排除相似边
royzhao Dec 20, 2024
a13cf4f
增加保护
royzhao Dec 20, 2024
2444084
修复并发问题
royzhao Dec 20, 2024
0805229
add debug logger
royzhao Dec 20, 2024
c1014bf
支持topk参数化
royzhao Dec 20, 2024
0673bdf
支持chunk截断和调整spo select 的prompt
royzhao Dec 20, 2024
8e6259e
增加查询请求保护
royzhao Dec 21, 2024
4398317
增加force_chunk配置
royzhao Dec 22, 2024
317d94c
fix entity linker algorithm
royzhao Dec 24, 2024
f27355d
增加sub query改写
royzhao Dec 24, 2024
1d7a44b
fix md reader dup in test
northmachine Dec 24, 2024
c93600a
fix
northmachine Dec 24, 2024
29865db
merge knext to kag parallel
northmachine Dec 24, 2024
d40e9fc
fix package
northmachine Dec 24, 2024
792383d
修复指标下跌问题
royzhao Dec 24, 2024
e736c0a
scanner update
zhuzhongshu123 Dec 24, 2024
a523daa
scanner update
zhuzhongshu123 Dec 24, 2024
aabe820
Merge pull request #156 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 24, 2024
9499c3f
add doc and update example scripts
zhuzhongshu123 Dec 24, 2024
0f6071e
Merge branch '0.6_dev' of github.com:zhuzhongshu123/KAG into 0.6_dev
zhuzhongshu123 Dec 24, 2024
82c75ff
Merge pull request #157 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 24, 2024
f90b242
fix
northmachine Dec 13, 2024
ee3bc50
Merge branch '0.6_dev' of github.com:OpenSPG/KAG into 0.6_dev
northmachine Dec 24, 2024
3768a81
add bridge to spg server
zhuzhongshu123 Dec 24, 2024
f281b57
Merge pull request #158 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 24, 2024
7796b61
add format
royzhao Dec 24, 2024
adf8e01
Merge branch '0.6_dev' into v0.6_solver
royzhao Dec 24, 2024
7515112
fix bridge
zhuzhongshu123 Dec 24, 2024
80b152f
Merge pull request #159 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 24, 2024
63308ff
update conf for baike
caszkgui Dec 25, 2024
2ecb439
Merge branch '0.6_dev' of github.com:OpenSPG/KAG into 0.6_dev
caszkgui Dec 25, 2024
6055c46
disable ckpt for spg server runner
zhuzhongshu123 Dec 25, 2024
69ce1f4
Merge pull request #163 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 25, 2024
d9019b8
llm invoke error default raise exceptions
zhuzhongshu123 Dec 25, 2024
8c7b454
Merge pull request #164 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 25, 2024
e0b1056
chore(version): bump version to X.Y.Z
zhuzhongshu123 Dec 25, 2024
1535672
Merge pull request #165 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 25, 2024
a9082bd
update default response generation prompt
xionghuaidong Dec 24, 2024
46ee79f
add method getSummarizationMetrics
xionghuaidong Dec 24, 2024
c0f1a86
Merge pull request #166 from xionghuaidong/0.6_dev
xionghuaidong Dec 25, 2024
7bb2b91
fix(common): fix project conf empty error
zhuzhongshu123 Dec 25, 2024
a7942df
Merge pull request #167 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 25, 2024
60871d7
fix typo
zhuzhongshu123 Dec 25, 2024
707e093
Merge pull request #168 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 25, 2024
5418120
增加上报信息
royzhao Dec 25, 2024
1e382ed
Merge remote-tracking branch 'origin/0.6_dev' into 0.6_dev
royzhao Dec 25, 2024
b8d0a93
修改main solver
royzhao Dec 25, 2024
78d63dd
postprocessor support spg server
zhuzhongshu123 Dec 25, 2024
2f0a750
Merge pull request #169 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 25, 2024
0ad0f40
修改solver支持名
royzhao Dec 25, 2024
8e9f8f5
fix language
royzhao Dec 25, 2024
03bb962
Merge remote-tracking branch 'origin/0.6_dev' into 0.6_dev
royzhao Dec 25, 2024
fd272d7
修改chunker接口,增加openapi
royzhao Dec 25, 2024
788ba06
rename vectorizer to vectorize_model in spg server config
zhuzhongshu123 Dec 26, 2024
9599740
Merge pull request #172 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 26, 2024
b64fee5
generate_random_string start with gen
royzhao Dec 26, 2024
a905f37
Merge remote-tracking branch 'origin/0.6_dev' into 0.6_dev
royzhao Dec 26, 2024
2214389
merge master
zhuzhongshu123 Dec 26, 2024
428e371
Merge pull request #173 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 26, 2024
697f6ca
Merge branch '0.6_dev' of github.com:OpenSPG/KAG into 0.6_dev
northmachine Dec 26, 2024
5c52367
add knext llm vector checker
northmachine Dec 26, 2024
b4d878a
add knext llm vector checker
northmachine Dec 26, 2024
38ff935
add knext llm vector checker
northmachine Dec 26, 2024
f823cf2
solver移除默认值
royzhao Dec 26, 2024
2f82bef
Merge remote-tracking branch 'origin/0.6_dev' into 0.6_dev
royzhao Dec 26, 2024
20c447d
udpate yaml and register_name for baike
caszkgui Dec 27, 2024
ef8cbea
udpate yaml and register_name for baike
caszkgui Dec 27, 2024
b3034d5
remove config key check
zhuzhongshu123 Dec 27, 2024
a3a5620
Merge pull request #176 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 27, 2024
870ee22
修复llmmodule
royzhao Dec 27, 2024
3b7dd83
Merge remote-tracking branch 'origin/0.6_dev' into 0.6_dev
royzhao Dec 27, 2024
e72f257
fix knext project
northmachine Dec 27, 2024
cc73a02
Merge branch '0.6_dev' of github.com:OpenSPG/KAG into 0.6_dev
northmachine Dec 27, 2024
2e77759
udpate yaml and register_name for examples
caszkgui Dec 27, 2024
b624233
Merge branch '0.6_dev' into 0.6_dev_tc
caszkgui Dec 27, 2024
b3fa5ca
udpate yaml and register_name for examples
caszkgui Dec 27, 2024
63a48bb
Revert "udpate yaml and register_name for examples"
caszkgui Dec 27, 2024
26fdbc0
Merge branch '0.6_dev_tc' of github.com:OpenSPG/KAG into 0.6_dev_tc
caszkgui Dec 27, 2024
192f213
update register name
caszkgui Dec 27, 2024
da5dfb5
fix
northmachine Dec 27, 2024
9b3a73b
fix
northmachine Dec 27, 2024
058bb64
support multiple resigter names
zhuzhongshu123 Dec 28, 2024
023272d
Merge pull request #179 from zhuzhongshu123/0.6_dev_tc
zhuzhongshu123 Dec 28, 2024
10be305
Merge pull request #177 from OpenSPG/0.6_dev_tc
zhuzhongshu123 Dec 28, 2024
67081e8
update component
zhuzhongshu123 Dec 30, 2024
67098c7
Merge pull request #182 from zhuzhongshu123/0.6_dev
zhuzhongshu123 Dec 30, 2024
ce2145b
update reader register names (#183)
zhuzhongshu123 Dec 30, 2024
f366dbd
fix markdown reader
northmachine Dec 30, 2024
b569454
fix llm client for retry
northmachine Dec 30, 2024
7200591
feat(common): add processed chunk id checkpoint (#185)
zhuzhongshu123 Dec 30, 2024
0046f1d
feat(example): add example config (#186)
zhuzhongshu123 Dec 30, 2024
33c4c29
add max_workers parameter for getSummarizationMetrics to make it faster
xionghuaidong Dec 31, 2024
64ae4c1
add csqa data generation script generate_data.py
xionghuaidong Dec 31, 2024
d4fa519
commit generated csqa builder and solver data
xionghuaidong Dec 31, 2024
6abb2ed
add csqa basic project files
xionghuaidong Dec 31, 2024
76ee808
adjust split_length and num_threads_per_chain to match lightrag settings
xionghuaidong Dec 31, 2024
1b4537f
ignore ckpt dirs
xionghuaidong Dec 31, 2024
7e7b337
add csqa evaluation script eval.py
xionghuaidong Dec 31, 2024
725e5b2
save evaluation scripts summarization_metrics.py and factual_correctn…
xionghuaidong Dec 31, 2024
9d368d7
save LightRAG output csqa_lightrag_answers.json
xionghuaidong Dec 31, 2024
5ad618a
ignore KAG output csqa_kag_answers.json
xionghuaidong Dec 31, 2024
a4bf052
add README.md for CSQA
xionghuaidong Dec 31, 2024
a3aaad3
Merge pull request #189 from xionghuaidong/0.6_dev
xionghuaidong Dec 31, 2024
6a098c0
fix(solver): fix solver pipeline conf (#191)
zhuzhongshu123 Dec 31, 2024
3342699
update links and file paths
xionghuaidong Dec 31, 2024
def77b0
reformat csqa kag_config.yaml
xionghuaidong Dec 31, 2024
75698af
reformat csqa python files
xionghuaidong Dec 31, 2024
6a7a7e0
reformat getSummarizationMetrics and compare_summarization_answers
xionghuaidong Dec 31, 2024
fee2f3f
Merge pull request #193 from xionghuaidong/0.6_dev
xionghuaidong Dec 31, 2024
c63959d
fix(solver): fix solver config (#192)
zhuzhongshu123 Dec 31, 2024
de23e1b
add except
royzhao Dec 31, 2024
d68db6d
fix typo in csqa README.md
xionghuaidong Dec 31, 2024
51b08f3
feat(conf): support reinitialize config for call from java side (#199)
zhuzhongshu123 Jan 2, 2025
597eb6e
revert default response generation prompt
xionghuaidong Jan 2, 2025
94026f1
update project list
northmachine Jan 2, 2025
ba552cf
Merge pull request #201 from xionghuaidong/0.6_dev
xionghuaidong Jan 2, 2025
e6948ef
Merge branch '0.6_dev' of github.com:OpenSPG/KAG into 0.6_dev
northmachine Jan 2, 2025
1ff36a2
add README.md for the hotpotqa, 2wiki and musique examples
xionghuaidong Jan 2, 2025
1659147
增加spo检索
royzhao Dec 27, 2024
bc14276
turn off kag config dump by default
xionghuaidong Jan 3, 2025
a0053f4
turn off knext schema dump by default
xionghuaidong Jan 3, 2025
457a5c6
add .gitignore and fix kag_config.yaml
xionghuaidong Jan 3, 2025
1e04078
add README.md for the medicine example
xionghuaidong Jan 3, 2025
97fbcad
add README.md for the supplychain example
xionghuaidong Jan 3, 2025
e7b7fdb
Merge pull request #204 from xionghuaidong/0.6_dev
xionghuaidong Jan 3, 2025
a41ca02
bugfix for risk mining
royzhao Jan 3, 2025
867944b
Merge remote-tracking branch 'origin/0.6_dev' into 0.6_dev
royzhao Jan 3, 2025
eb87e45
use exact out
royzhao Jan 3, 2025
edd170f
refactor(solver): format solver code (#205)
zhuzhongshu123 Jan 3, 2025
419ea61
add chunk
royzhao Jan 17, 2025
8027a43
add retry
royzhao Jan 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
34 changes: 34 additions & 0 deletions .github/workflows/code-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: CI

on:
push:
pull_request:
workflow_dispatch:
repository_dispatch:
types: [my_event]
jobs:
format-check:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pre-commit pytest pytest-cov
pip install -r requirements.txt
pip install -e .
pip install black==24.10.0
- name: Run pre-commit
run: pre-commit run --all-files

# - name: Run unit tests
# run: pushd tests/unit && pytest && popd

28 changes: 28 additions & 0 deletions .github/workflows/pr-title-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: "Lint PR"

on:
pull_request_target:
types:
- opened
- edited
- synchronize

jobs:
main:
name: Validate PR title
runs-on: ubuntu-latest
steps:
# https://www.conventionalcommits.org/en/v1.0.0/#summary
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
requireScope: true
subjectPattern: ^(?![A-Z]).+$
# If `subjectPattern` is configured, you can use this property to override
# the default error message that is shown when the pattern doesn't match.
# The variables `subject` and `title` can be used within the message.
subjectPatternError: |
The subject "{subject}" found in the pull request title "{title}"
didn't match the configured pattern. Please ensure that the subject
doesn't start with an uppercase character.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@
*.pyc
/dist
.vscode/
.idea/
.venv/
__pycache__/
17 changes: 17 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
repos:
- repo: https://github.com/psf/black
rev: 22.3.0
hooks:
- id: black
files: ^kag/.*\.py$
exclude: |
(?x)^(
kag/solver/logic/core_modules/rule_runner/rule_runner.py |
kag/solver/logic/core_modules/parser/logic_node_parser.py
)$

- repo: https://github.com/pycqa/flake8
rev: 4.0.1
hooks:
- id: flake8
files: ^kag/.*\.py$
2 changes: 1 addition & 1 deletion KAG_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.5.2-beta1
0.6
4 changes: 4 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
recursive-include kag *
recursive-exclude kag/examples *
global-exclude *.pyc
global-exclude *.pyo
global-exclude *.pyd
global-exclude __pycache__
5 changes: 5 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
rm -rf build

rm -rf dist

python setup.py sdist bdist_wheel
24 changes: 22 additions & 2 deletions kag/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# flake8: noqa
# Apache License
# Version 2.0, January 2004
# http://www.apache.org/licenses/
Expand Down Expand Up @@ -202,8 +203,27 @@


__package_name__ = "openspg-kag"
__version__ = "0.5.2-beta1"
__version__ = "0.6"

from kag.common.env import init_env
# Register Built-in Components
from kag.common.conf import init_env

init_env()

import kag.interface
import kag.interface.solver.execute
import kag.interface.solver.plan
import kag.solver.execute
import kag.solver.plan
import kag.solver.retriever
import kag.solver.tools
import kag.builder.component
import kag.builder.default_chain
import kag.builder.runner
import kag.builder.prompt
import kag.solver.prompt
import kag.common.vectorize_model
import kag.common.llm
import kag.common.checkpointer
import kag.solver
import kag.bin.commands
File renamed without changes.
49 changes: 49 additions & 0 deletions kag/bin/base.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# -*- coding: utf-8 -*-
# Copyright 2023 OpenSPG Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
# in compliance with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
# or implied.

import argparse
import logging
import typing
from kag.common.registry import Registrable

logger = logging.getLogger()


def add_commands(
subparsers: argparse._SubParsersAction, command_names: typing.List[str] = None
):
"""add commands to subparsers"""
all_cmds = Command.list_available()
if command_names is None:
logger.warn("invalid command_names, will add all available commands.")
command_names = all_cmds
for cmd in command_names:
if cmd not in all_cmds:
raise ValueError(f"command {cmd} not in available commands {all_cmds}")
# Command Subclasses doesn't accept init args, so just pass subclass name is OK.
cls = Command.from_config(cmd)
cls.add_to_parser(subparsers)


class Command(Registrable):
def get_handler(self):
"""return handler of current command"""
return self.handler

def add_to_parser(self, subparsers: argparse._SubParsersAction):
"""setup accept arguments"""
raise NotImplementedError("setup_parser not implemented yet.")

@staticmethod
def handler(args: argparse.Namespace):
"""function to proces the request."""
raise NotImplementedError("handler not implemented yet.")
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,7 @@
# Unless required by applicable law or agreed to in writing, software distributed under the License
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
# or implied.
from kag.bin.commands.info import ListRegisterInfo

from kag.common.retriever.kag_retriever import DefaultRetriever
from kag.common.retriever.retriever import Retriever
__all__ = [
"DefaultRetriever",
"Retriever"
]

__all__ = ["ListRegisterInfo"]
115 changes: 115 additions & 0 deletions kag/bin/commands/info.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# -*- coding: utf-8 -*-
# Copyright 2023 OpenSPG Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
# in compliance with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
# or implied.
import argparse
from tabulate import tabulate
from kag.bin.base import Command
from kag.common.registry import Registrable
from kag.common.utils import reset, bold, red, green, blue


@Command.register("register_info")
class ListRegisterInfo(Command):
def add_to_parser(self, subparsers: argparse._SubParsersAction):
parser = subparsers.add_parser(
"interface", help="Show the interface info of the KAG components."
)
parser.add_argument("--cls", help="class name to query")
parser.add_argument(
"--list", help="list all component interfaces in KAG", action="store_true"
)
parser.set_defaults(func=self.get_handler())

@staticmethod
def get_cls(cls_name):
interface_classes = Registrable.list_all_registered(with_leaf_classes=False)
for item in interface_classes:
if item.__name__ == cls_name:
return item
raise ValueError(f"class {cls_name} is not a valid kag configurable class")

@staticmethod
def handle_list(args: argparse.Namespace):
interface_classes = Registrable.list_all_registered(with_leaf_classes=False)
data = []
for cls in interface_classes:
data.append([cls.__name__, cls.__module__])
headers = [f"{bold}{red}class{reset}", f"{bold}{red}module{reset}"]
msg = (
f"{bold}{red}Below are the interfaces provided by KAG."
f"For detailed information on each class, please use the command `kag interface --cls $class_name`{reset}"
)
print(msg)
print(tabulate(data, headers, tablefmt="grid"))

@staticmethod
def handle_cls(args: argparse.Namespace):
cls_obj = ListRegisterInfo.get_cls(args.cls)
if not issubclass(cls_obj, Registrable):
raise ValueError(f"class {args.cls} is not a valid kag configurable class")
availables = cls_obj.list_available_with_detail()
seg = " " * 20

deduped_availables = {}
for register_name, cls_info in availables.items():
cls = cls_info["class"]
if cls not in deduped_availables:
deduped_availables[cls] = [register_name]
else:
deduped_availables[cls].append(register_name)

print(f"{bold}{red}{seg}Documentation of {args.cls}{seg}{reset}")
import inspect

print(inspect.getdoc(cls_obj))
print(f"{bold}{red}{seg}Registered subclasses of {args.cls}{seg}{reset}")
visited = set()
for register_name, cls_info in availables.items():
cls = cls_info["class"]
if cls in visited:
continue
visited.add(cls)
print(f"{bold}{blue}[{cls}]{reset}")
register_names = " / ".join([f'"{x}"' for x in deduped_availables[cls]])
print(f"{bold}{green}Register Name:{reset} {register_names}\n")

# print(f"Class Name: {cls_info['class']}")
print(f"{bold}{green}Documentation:{reset}\n{cls_info['doc']}\n")
print(f"{bold}{green}Initializer:{reset}\n{cls_info['constructor']}\n")

required_arguments = []
for item in cls_info["params"]["required_params"]:
required_arguments.append(f" {item}")
if len(required_arguments) == 0:
required_arguments = " No Required Arguments found"
else:
required_arguments = "\n".join(required_arguments)
print(f"{bold}{green}Required Arguments:{reset}\n{required_arguments}\n")

optional_arguments = []
for item in cls_info["params"]["optional_params"]:
optional_arguments.append(f" {item}")
if len(optional_arguments) == 0:
optional_arguments = " No Optional Arguments found"
else:
optional_arguments = "\n".join(optional_arguments)
print(f"{bold}{green}Optional Arguments:{reset}\n{optional_arguments}\n")
print(f"{bold}{green}Sample Useage:{reset}\n {cls_info['sample_useage']}")
# for k, v in cls_info.items():
# print(f"{k}: {v}")
print("\n")

@staticmethod
def handler(args: argparse.Namespace):
if args.list:
ListRegisterInfo.handle_list(args)
else:
ListRegisterInfo.handle_cls(args)
35 changes: 35 additions & 0 deletions kag/bin/kag_cmds.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
# Copyright 2023 OpenSPG Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
# in compliance with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
# or implied.
import argparse
from kag.bin.base import add_commands


def build_parser():
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(
dest="subcommand_name",
title="subcommands",
help="subcommands supported by kag",
)
# add registered commands to parser
cmds = [
"register_info",
]
add_commands(subparsers, cmds)
return parser


def main():
"""entry point of script"""
parser = build_parser()
args = parser.parse_args()
args.func(args)
File renamed without changes.
Loading
Loading