65 lines
2.3 KiB
Python
65 lines
2.3 KiB
Python
# main.py
|
|
#!/usr/bin/env python
|
|
"""
|
|
COBOL テストデータ生成 Agent
|
|
|
|
使用方法:
|
|
python main.py --design 詳細設計書_ZAN04MAT.md --source ZAN04MAT.cbl \
|
|
--file-db-md COPY句定義書.md --cpy cpy/ --db-md DB定義書.md --output output/
|
|
"""
|
|
import argparse
|
|
import os
|
|
import sys
|
|
|
|
from agent import generate
|
|
|
|
DEFAULT_RULES_DIR = os.path.join(os.path.dirname(__file__), 'rules')
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(
|
|
description='COBOLテストデータ生成Agent'
|
|
)
|
|
|
|
parser.add_argument('--design', required=True, help='詳細設計書 .md のパス')
|
|
parser.add_argument('--source', required=True, help='COBOL ソース .cbl のパス')
|
|
parser.add_argument('--file-db-md', required=True, help='ファイル/DB 構造 .md のパス')
|
|
parser.add_argument('--cpy', required=True, help='COPYBOOK 格納ディレクトリ')
|
|
parser.add_argument('--db-md', required=True, help='DB 定義書 .md のパス')
|
|
parser.add_argument('--output', default='output', help='出力ディレクトリ')
|
|
parser.add_argument('--api-key', default='sk-6156cccdc9c14d949cf5bfc5afc67a03',
|
|
help='DeepSeek API Key')
|
|
parser.add_argument('--model', default='deepseek-v4-flash', help='API モデル名')
|
|
parser.add_argument('--rules', default=DEFAULT_RULES_DIR, help='ルール格納ディレクトリ')
|
|
|
|
args = parser.parse_args()
|
|
|
|
for name, path in [('--design', args.design), ('--source', args.source)]:
|
|
if not os.path.exists(path):
|
|
print(f"エラー: {name} のファイルが見つかりません: {path}", file=sys.stderr)
|
|
sys.exit(1)
|
|
|
|
result = generate(
|
|
design_md=args.design,
|
|
source_cbl=args.source,
|
|
file_db_md=args.file_db_md,
|
|
cpy_dir=args.cpy,
|
|
db_md=args.db_md,
|
|
output_dir=args.output,
|
|
api_key=args.api_key,
|
|
api_model=args.model,
|
|
rules_dir=args.rules,
|
|
)
|
|
|
|
print(f"\n== 完了 ==")
|
|
print(f"プログラムID: {result['program_id']}")
|
|
print(f"グループ数: {result['groups']}")
|
|
print(f"入力タイプ: {result['input_type']}")
|
|
print(f"出力ファイル:")
|
|
for key, path in sorted(result['output_files'].items()):
|
|
print(f" {key}: {path}")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|