OneKE / src /run.py
ShawnRu's picture
Upload 34 files
32e142e verified
Raw
History Blame Contribute Delete
2.8 kB
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():
# Create command-line argument parser
parser = argparse.ArgumentParser(description='Run the extraction framefork.')
parser.add_argument('--config', type=str, required=True,
help='Path to the YAML configuration file.')
# Parse command-line arguments
args = parser.parse_args()
# Load configuration
config = load_extraction_config(args.config)
# Model 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
extraction_config = config['extraction']
# constuct config
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) # When 'construct' is provided, 'iskg' should be True to construct the knowledge graph.
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()