Spaces:
Sleeping
Sleeping
| import os | |
| import json | |
| import openai | |
| import pandas as pd | |
| def summarize(filename, gpt_key, model_name): | |
| openai.api_key = gpt_key | |
| # Opening created all data json file | |
| f = open(filename) | |
| allDataFile = json.load(f) | |
| finaldf = pd.DataFrame() | |
| for source, articles in allDataFile.items(): | |
| for article in articles: | |
| title = article['title'] | |
| text = article['text'] | |
| combined_text = 'title: ' + title + '\n' + text | |
| try: | |
| # GPT-3.5 API for summarization | |
| response = openai.ChatCompletion.create( | |
| model=model_name, | |
| messages=[{ | |
| "role": "system", | |
| "content": "You are a helpful assistant." | |
| }, { | |
| "role": | |
| "user", | |
| "content": | |
| f"Please summarize this news article text or youtube video transcript in four sentences or less. If no article/transcript is present, or it is unclear what the transcript is talking about, output 'Unable to summarize.'. {combined_text} " | |
| }]) | |
| summarizedData = response['choices'][0]['message']['content'] | |
| print(f"SUMMARY: {summarizedData} \n\n") | |
| # GPT-3.5 API for talking points from summarization generated | |
| follow_up = openai.ChatCompletion.create( | |
| model=model_name, | |
| messages=[{ | |
| "role": "system", | |
| "content": "You are a helpful assistant." | |
| }, { | |
| "role": | |
| "user", | |
| "content": | |
| f"Using this article, give me five sequential talking points that I can use to make a shortform video. Do not use more than 100 words. If the summarized article says 'Unable to summarize,' output 'No talking points available'. {summarizedData}" | |
| }]) | |
| talking_pointsData = follow_up['choices'][0]['message']['content'] | |
| print(f"TALKING POINTS: {talking_pointsData} \n\n") | |
| articleinfo = pd.DataFrame.from_records([{ | |
| "title": | |
| article["title"], | |
| "source": | |
| source, | |
| "url": | |
| article["url"], | |
| "summarized_text": | |
| summarizedData, | |
| "talking_points": | |
| talking_pointsData | |
| }]) | |
| finaldf = pd.concat([finaldf, articleinfo], ignore_index=True) | |
| except openai.error.InvalidRequestError as e: | |
| print(f"An error occurred: {e}") | |
| continue | |
| csvname = 'data.csv' | |
| finaldf.to_csv(csvname, index=False) | |
| return csvname | |