llama-index
41 строка · 1.1 Кб
1import os
2import sys
3import time
4
5import openai
6from openai import OpenAI
7from validate_json import validate_json
8
9client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
10
11
12def launch_training(data_path: str) -> None:
13validate_json(data_path)
14
15# TODO: figure out how to specify file name in the new API
16# file_name = os.path.basename(data_path)
17
18# upload file
19with open(data_path, "rb") as f:
20output = client.files.create(
21file=f,
22purpose="fine-tune",
23)
24print("File uploaded...")
25
26# launch training
27while True:
28try:
29client.fine_tunes.create(training_file=output.id, model="gpt-3.5-turbo")
30break
31except openai.BadRequestError:
32print("Waiting for file to be ready...")
33time.sleep(60)
34print(f"Training job {output.id} launched. You will be emailed when it's complete.")
35
36
37if __name__ == "__main__":
38data_path = sys.argv[1]
39if not os.path.exists(data_path):
40raise ValueError(f"Path {data_path} does not exist")
41launch_training(data_path)
42