| import argparse
|
| import os
|
| import yaml
|
| from pipeline import Pipeline
|
| from typing import Literal
|
| import models
|
| from models import *
|
| from utils import *
|
| from modules import *
|
|
|
| def main():
|
|
|
| parser = argparse.ArgumentParser(description='Run the extraction framefork.')
|
| parser.add_argument('--config', type=str, required=True,
|
| help='Path to the YAML configuration file.')
|
|
|
|
|
| args = parser.parse_args()
|
|
|
|
|
| config = load_extraction_config(args.config)
|
|
|
| model_config = config['model']
|
| if model_config['vllm_serve'] == True:
|
| model = LocalServer(model_config['model_name_or_path'])
|
| else:
|
| clazz = getattr(models, model_config['category'], None)
|
| if clazz is None:
|
| print(f"Error: The model category '{model_config['category']}' is not supported.")
|
| return
|
| if model_config['api_key'] == "":
|
| model = clazz(model_config['model_name_or_path'])
|
| else:
|
| model = clazz(model_config['model_name_or_path'], model_config['api_key'], model_config['base_url'])
|
| pipeline = Pipeline(model)
|
|
|
| extraction_config = config['extraction']
|
|
|
| if 'construct' in config:
|
| construct_config = config['construct']
|
| result, trajectory, _, _ = pipeline.get_extract_result(task=extraction_config['task'], instruction=extraction_config['instruction'], text=extraction_config['text'], output_schema=extraction_config['output_schema'], constraint=extraction_config['constraint'], use_file=extraction_config['use_file'], file_path=extraction_config['file_path'], truth=extraction_config['truth'], mode=extraction_config['mode'], update_case=extraction_config['update_case'], show_trajectory=extraction_config['show_trajectory'],
|
| construct=construct_config, iskg=True)
|
| return
|
| else:
|
| print("please provide construct config in the yaml file.")
|
|
|
| result, trajectory, _, _ = pipeline.get_extract_result(task=extraction_config['task'], instruction=extraction_config['instruction'], text=extraction_config['text'], output_schema=extraction_config['output_schema'], constraint=extraction_config['constraint'], use_file=extraction_config['use_file'], file_path=extraction_config['file_path'], truth=extraction_config['truth'], mode=extraction_config['mode'], update_case=extraction_config['update_case'], show_trajectory=extraction_config['show_trajectory'])
|
| return
|
|
|
| if __name__ == "__main__":
|
| main()
|
|
|