2023-04-06 14:31:03 +00:00
|
|
|
import sys
|
|
|
|
import csv
|
|
|
|
import openai
|
|
|
|
|
2023-04-06 15:02:31 +00:00
|
|
|
# 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")
|
|
|
|
sys.exit(1)
|
|
|
|
# set the api key from the command line argument
|
|
|
|
openai.api_key = sys.argv[3]
|
|
|
|
with open(sys.argv[1], "r") as file:
|
|
|
|
outfile = open(sys.argv[2], "w")
|
|
|
|
writer = csv.writer(outfile)
|
2023-04-06 14:31:03 +00:00
|
|
|
reader = csv.reader(file)
|
|
|
|
for row in reader:
|
|
|
|
print(row[4])
|
|
|
|
# summarize the text in the 5th column using OpenAi's GPT-3
|
2023-04-06 15:02:31 +00:00
|
|
|
# create a variable called prompt and set it as the concatenatenation of the string "Summarize this
|
2023-04-06 14:31:03 +00:00
|
|
|
# in one sentence:" and the text in the 5th column
|
2023-04-06 17:35:52 +00:00
|
|
|
prompt = "Summarize the following description of a museum item in one English phrase of strictly less than 5 words:" + row[4]
|
2023-04-06 14:31:03 +00:00
|
|
|
|
2023-04-06 15:31:20 +00:00
|
|
|
completion = openai.ChatCompletion.create( # 1. Change the function Completion to ChatCompletion
|
|
|
|
model = 'gpt-3.5-turbo',
|
|
|
|
messages = [
|
|
|
|
{'role': 'user', 'content': prompt}
|
|
|
|
],
|
|
|
|
temperature = 0
|
2023-04-06 14:31:03 +00:00
|
|
|
)
|
2023-04-06 15:31:20 +00:00
|
|
|
|
2023-04-06 14:31:03 +00:00
|
|
|
# write the response as the last column in each row of the same csv file
|
2023-04-06 15:31:20 +00:00
|
|
|
row.append(completion['choices'][0]['message']['content'])
|
2023-04-06 14:31:03 +00:00
|
|
|
print(row)
|
2023-04-06 15:02:31 +00:00
|
|
|
# write the row to the csv file
|
2023-04-06 14:31:03 +00:00
|
|
|
|
2023-04-06 15:02:31 +00:00
|
|
|
writer.writerow(row)
|
2023-04-06 15:31:20 +00:00
|
|
|
outfile.close()
|
|
|
|
file.close()
|