Files
cobol-java-v3/black-box-data-create/main.py
T
2026-08-25 20:35:52 +08:00

71 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
from agent.config import load_config
DEFAULT_RULES_DIR = os.path.join(os.path.dirname(__file__), 'rules')
def main():
cfg = load_config()['api']
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=cfg['api_key'],
help='DeepSeek API Key(默认读取 config.json 或环境变量 DEEPSEEK_API_KEY')
parser.add_argument('--model', default=cfg['model'], help='API モデル名')
parser.add_argument('--rules', default=DEFAULT_RULES_DIR, help='ルール格納ディレクトリ')
parser.add_argument('--max-tokens', type=int, default=cfg['max_tokens'],
help='API 生成トークン上限')
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,
max_tokens=args.max_tokens,
)
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()