OneKE / src /run.py
ShawnRu's picture
update
e6e7506
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()