File size: 2,657 Bytes
377f826
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
"""

Data Scientist.: Dr.Eddy Giusepe Chirinos Isidro



Neste script vamos aprender a obter Dados de saída de forma estruturada usando

Function Calling. Basicamente fazemos os resumo de um texto.

"""
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",
                    "parameters": {"type": "object",
                                "properties": {"summary": {"type": "string",
                                                            "description": "um breve resumo do documento."
                                                            }
                                                },
                                "required": ["summary"]
                                }
                    }
                    ],
        function_call = {"name": "resumir_documento"} # Pode ser "auto" or "none"
    )
    logging.info("*** 🤗 Imprimindo a resposta raw 🤗 ***")
    print(colored(response, "green"))

    response_message = response["choices"][0]["message"]

    if response_message.get("function_call"):
        function_name = response_message["function_call"]["name"]
        function_args = json.loads(response_message["function_call"]["arguments"])

    print(colored(response_message, "yellow"))
    print(colored(function_args["summary"], "blue"))

    print("")
    logging.info("*** 🤗 Imprimindo o RESUMO 🤗 ***")
    return function_args['summary']
    


if __name__ == "__main__":
    # Leia o conteúdo do .txt:
    with open('/home/eddygiusepe/1_Eddy_Giusepe/6_REPO_HuggingFace/17_StreamingResponses_FunctionCalling_Summary_KeyWord/sample.txt', 'r') as file:
        sample = file.read()   
    print("")
    print(colored(summarize_text(sample, model), "red"))
    print("")
    logging.info("🦜 O texto ORIGINAL antes de ser resumido 🦜")
    print(colored(sample, "green"))