import os from langchain.prompts import PromptTemplate labels = ['buy', 'sell', 'hold'] headers_inference_api = {"Authorization": f"Bearer {os.environ['HG_api_key']}"} # headers_inference_endpoint = { # "Authorization": f"Bearer {os.environ['HG_api_key_personal']}", # "Content-Type": "application/json" #} summarization_system_msg = """You are the best financial advisor and expert broker. You are \ reading Item 7 from Form 10-K of some company and you want to summarize it into 10 sentences the best as \ possible, so that then the human will analyze your summary and take on serious decisions, whether to \ buy, sell or hold the holdings of that company. There is no need to copy messages from the original text. \ Don't write general things, which aren't important to the investor. Include the most important parts, \ which describes the business growth, predictions for next years etc.""" summarization_user_msg = "Company's description: {company_description}" summarization_user_prompt = PromptTemplate.from_template( template=summarization_user_msg ) # summarization_template = """ You are the best financial advisor and expert broker. You are \ # reading Item 7 from Form 10-K of some company and you want to summarize it into 2-3 sentences the best as \ # possible, so that then the human will analyze your summary and take on serious decisions, whether to \ # buy, sell or hold the holdings of that company. There is no need to copy messages from the original text # Company's description: {company_description}""" # summarization_prompt_template = PromptTemplate.from_template( # template=summarization_template # ) prediction_system_msg = """You are the best financial advisor and expert broker. I am an investor, who seek \ for your help. Below is the description of one big company. You need to reply to me with a \ single word, either 'sell', 'buy' or 'hold'. This word should best describe your recommendation \ on what is the best action for me with the company's holdings.""" prediction_user_msg = """Company's description: {company_description} So what do you think? Sell, buy or hold?""" prediction_user_prompt = PromptTemplate.from_template( template=prediction_user_msg ) prediction_template = ' ' + prediction_system_msg + ' \n\n' + prediction_user_msg prediction_prompt = PromptTemplate.from_template( template=prediction_template ) template = """ You are the best financial advisor and expert broker. I am an investor, who seek \ for your help. Below is the description of one big company. You need to reply to me with a \ single word, either 'sell', 'buy' or 'hold'. This word should best describe your recommendation \ on what is the best action for me with the company's holdings. Company's description: {company_description} So what do you think? Sell, buy or hold?""" prompt_template = PromptTemplate.from_template( template=template ) chat_structure = """ ### Instruction: {instruction} ### Response: """ chat_prompt = PromptTemplate.from_template( template=chat_structure ) instruction = """You are the best financial advisor and expert broker. I am an investor, who seek \ for your help. Below is the description of one big company. You need to reply to me with a \ single word, either 'sell', 'buy' or 'hold'. This word should best describe your recommendation \ on what is the best action for me with the company's holdings. Company's description: {company_description} So what do you think? Sell, buy or hold?""" # text_gen_prompt = PromptTemplate.from_template( # template=chat_prompt.format(instruction=instruction_prompt.format(company_description=text.page_content)) # ) instruction_prompt = PromptTemplate.from_template( template=instruction ) # predictor_system_message = """You are the preeminent financial advisor and expert broker, # renowned for your unparalleled market acumen. As you meticulously analyze the summary of Item 7 from # Form 10-K of some company, your task is to distill your profound insights into a single decisive word, # choosing from the options: 'sell', 'buy', or 'hold'. This word reflects your beliefs about the company's # future. Your selection should be astutely founded on a # comprehensive understanding of all economic facets and nuanced considerations. Remember, your # recommendation carries significant weight, influencing critical decisions on whether to divest, invest, # or maintain positions in that company. If you predict "buy" it means that the company is a good investment # option and is likely to grow in the next year. If you predict "sell" it means that you think that the # company won't perform wellduring the upcoming year. Approach this task with the sagacity and expertise that # has earned you your esteemed reputation. Please, don't include any warnings that it is difficult to make # a definitive recommendation, based on the information provided. Please, don't include any additional text # before your answer, don't write 'based on the information provided, I recommend ...'.""" summarizers = { # 'financial-summarization-pegasus': { # 'model_name': 'human-centered-summarization/financial-summarization-pegasus', # 'api_url' : 'https://api-inference.huggingface.co/models/human-centered-summarization/financial-summarization-pegasus', # 'chunk_size': 1_400, # 'size': 'large' # }, 'bart-finance-pegasus': { 'model_name': 'amitesh11/bart-finance-pegasus', 'api_url': 'https://api-inference.huggingface.co/models/amitesh11/bart-finance-pegasus', 'chunk_size': 2_600, 'size': 'medium' }, # 'financial-summary': { # 'model_name': 'Spacetimetravel/autotrain-financial-conversation_financial-summary-90517144315', # 'api_url' : "https://api-inference.huggingface.co/models/Spacetimetravel/autotrain-financial-conversation_financial-summary-90517144315", # 'chunk_size': 1_800, # 'size': 'small' # }, 'gpt-3.5-turbo': { 'model_name': 'gpt-3.5-turbo', 'api_url' : "", 'chunk_size': 6_000, 'size': '' } } # There are 3 inference_types: chatGPT, Inference API and Inference Endpoint # Add captions to display inference_type predictors = { 'gpt-3.5-turbo': { 'model_name': 'OpenAI-gpt-3.5-turbo', 'inference_type': 'chatGPT', 'model_task': 'text-generation' }, 'blenderbot-3B': { 'model_name': 'facebook/blenderbot-3B', 'api_url' : 'https://api-inference.huggingface.co/models/facebook/blenderbot-3B', 'inference_type': 'Inference API', 'model_task': 'conversational' }, 'TinyLlama-1.1B': { 'model_name': 'tog/TinyLlama-1.1B-alpaca-chat-v1.0', 'api_url' : 'https://api-inference.huggingface.co/models/tog/TinyLlama-1.1B-alpaca-chat-v1.0', 'inference_type': 'Inference API', 'model_task': 'conversational' }, 'open-llama-7b-v2': { 'model_name': 'VMware/open-llama-7b-v2-open-instruct', 'api_url' : 'https://audqis4a3tk9s0li.us-east-1.aws.endpoints.huggingface.cloud', 'inference_type': 'Inference Endpoint', 'model_task': 'conversational' }, 'gpt2-xl': { 'model_name': 'gpt2-xl', 'api_url' : 'https://api-inference.huggingface.co/models/gpt2-xl', 'inference_type': 'Inference API', 'model_task': 'text-generation' }, 'distilgpt2-finance': { 'model_name': 'lxyuan/distilgpt2-finetuned-finance', 'api_url' : 'https://api-inference.huggingface.co/models/lxyuan/distilgpt2-finetuned-finance', 'inference_type': 'Inference API', 'model_task': 'text-generation' }, 'embedding_mlp_classifier': { 'dataset_name': 'CabraVC/vector_dataset_2023-12-02_00-32', 'embedding_model': 'all-distilroberta-v1', 'embedding_dim': 768, 'mlp_model': 'embedding_mlp.safetensors', }, 'embedding_mlp_classifier_gtr-t5-xxl': { 'dataset_name': 'CabraVC/vector_dataset_2023-12-02_00-32', 'embedding_model': 'gtr-t5-xxl', 'embedding_dim': 768, 'mlp_model': 'embedding_mlp.safetensors', } } summary_scores_template = { 'rouge-1': [], 'rouge-2': [], 'rouge-l': [] }