""" Data Scientist.: Dr.Eddy Giusepe Chirinos Isidro Neste script é um pouco mais complexo, usamos a Function Calling para receber um Resumo, logo extrai os Pontos Importantes e logo extraí as Palavras-Chaves """ import openai import json from termcolor import colored import logging logging.basicConfig(level=logging.INFO) #Substitua sua chave de API OpenAI: import openai import os from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) # read local .env file openai.api_key = os.environ['OPENAI_API_KEY'] model = "gpt-3.5-turbo-16k-0613" # model = "gpt-4-0613" def summarize_text(text, model): response = openai.ChatCompletion.create( model = model, messages = [ {"role": "user", "content": f"Resumir: {text}"}, ], stream = True, functions = [ { "name": "resumir_documento", "description": "Resume um documento retornando um resumo, uma lista python de pontos importantes e uma lista python de palavras-chave", "parameters": { "type": "object", "properties": { "summary": { "type": "string", "description": "um breve resumo do documento e que tenha como máximo 30 palavras." }, "important_points": { "type": "array", "items": { "type": "string", "description": "uma lista em python de pontos importantes do documento." } }, "keywords": { "type": "array", "items": { "type": "string", "description": "uma lista python de palavras-chave no documento." } } }, "required": ["summary", "important_points", "keywords"] } } ], function_call = {"name": "resumir_documento"} # Pode ser "auto" or "none" ) responses = '' for chunk in response: # print(chunk) if chunk["choices"][0]["delta"].get("function_call"): chunk = chunk["choices"][0]["delta"] # print(chunk) token = chunk["function_call"]["arguments"] responses += token # Anexamos cada Token ao 'responses' print(colored(token, "green"), end='', flush=True) # Atribuímos todos os argumentos às variáveis: summary, important_points, keywords = json.loads(responses).values() return summary, important_points, keywords # Lendo o conteúdo de sample.txt: with open('sample.txt', 'r', encoding="utf-8", errors="ignore") as file: sample = file.read().replace('\n', '') summary, important_points, keywords = summarize_text(sample, model) print("\n") logging.info(" 🤗 Printamos o Resumo:") print(colored(f"Summary: {summary}", "blue")) print("\n") logging.info(" 🤗🤗 Printamos os Pontos Importantes:") print(colored(f"Important Points: {important_points}", "yellow")) print("\n") logging.info("🤗🤗🤗 Printamos as Palavras Chave:") print(colored(f"Keywords: {keywords}", "magenta"))