From c714573520bf6f47dd4419027937c781c7a4217b Mon Sep 17 00:00:00 2001 From: Ashik K Date: Thu, 6 Apr 2023 20:56:18 +0200 Subject: [PATCH] add support for running title generator only for part of a file --- titlegen.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/titlegen.py b/titlegen.py index 7ea775f..10321f1 100644 --- a/titlegen.py +++ b/titlegen.py @@ -3,23 +3,31 @@ import csv import openai # check if the user supplied the correct number of command line arguments -if len(sys.argv) != 4: - print("Usage: python titlegen.py inputfilename.csv outputfilename.csv API_key") +if len(sys.argv) != 6: + print("Usage: python titlegen.py inputfilename.csv startlineno endlineno outputfilename.csv API_key") sys.exit(1) # set the api key from the command line argument -openai.api_key = sys.argv[3] +openai.api_key = sys.argv[5] +startlineno = int(sys.argv[2]) +endlineno = int(sys.argv[3]) +lineno = 0 with open(sys.argv[1], "r") as file: - outfile = open(sys.argv[2], "w") + outfile = open(sys.argv[4], "w") writer = csv.writer(outfile) reader = csv.reader(file) for row in reader: - print(row[4]) + lineno += 1 + if (lineno < startlineno or lineno > endlineno): + continue # summarize the text in the 5th column using OpenAi's GPT-3 # create a variable called prompt and set it as the concatenatenation of the string "Summarize this # in one sentence:" and the text in the 5th column - prompt = "Summarize the following description of a museum item in one English phrase of strictly less than 5 words:" + row[4] + desc = row[4] + # extract the first 12 words of the description + trimmed_desc = " ".join(desc.split()[:12]) + prompt = "Summarize the following description of a museum item in one English phrase of strictly less than 4 words: " + trimmed_desc - completion = openai.ChatCompletion.create( # 1. Change the function Completion to ChatCompletion + completion = openai.ChatCompletion.create( model = 'gpt-3.5-turbo', messages = [ {'role': 'user', 'content': prompt}