Spaces:
Paused
Paused
| 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 = """<system> 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</system> | |
| # 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 = '<system> ' + prediction_system_msg + ' </system>\n\n' + prediction_user_msg | |
| prediction_prompt = PromptTemplate.from_template( | |
| template=prediction_template | |
| ) | |
| template = """<system> 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. </system> | |
| 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': [] | |
| } |