fosse commited on
Commit
d09e1e2
·
verified ·
1 Parent(s): e60062d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -32
app.py CHANGED
@@ -52,44 +52,83 @@ def fetch_message_from_newsweb(url: str) -> str:
52
  @tool
53
  def newsworthiness_detection(fetch_message_from_newsweb: str, newsworthiness_prompt: str) -> str:
54
  """
55
- The returned string from the fetch_message_from_newsweb function is used with the newsworthiness_prompt to define if the message is newsworthy or not
56
-
57
  Args:
58
- fetch_message_from_newsweb (str): the returned message from the fetch_message_from_newsweb function.
59
- newsworthiness_prompt (str): the prompt used to analyze the newsworthiness of the returned message.
60
 
61
  Returns:
62
- str: A grading of newswortiness, either "HØY", "MEDIUM" or "LAV", and a short evaluation of the decision.
63
  """
 
64
  newsworthiness_prompt = """
65
- Du er en børsjournalist som er ekspert på finansielle markeder og spesielt på Oslo Børs. Du jobber for den norske finansavisen E24.
66
- Jobben din er å gå gjennom alle børsmeldinger fra selskaper notert på Oslo Børs og vurdere hvor egnet meldingen er til å påvirke selskapets aksjekurs. Derfor er du alltid på jakt etter nyhetspoenger i meldingene. Disse kan være av positiv art, som nye kontrakter, pengeinnsprøytning, positive testresultater eller lignende, men ofte er det negative faktorer som påvirker aksjekursen, som nedskrivninger, konflikt, resultatvarsel. Ofte er negative nyheter gjemt nederst i børsmeldingene.
67
- Under ser du stikkord, som ofte, men ikke alltid, er egnet til å påvirke markedsverdien til et selskap:
68
-
69
- Transaction proposal
70
- Contemplated
71
- Private placement
72
- Rights issue
73
- Profit warning
74
- Divident
75
- Contract update
76
- Transaction
77
- Contract
78
- Matching halt
79
- Inside information
80
- Block sale
81
- million
82
- billion
83
- Stepping down
84
- Resign
85
- Disclosure of large shareholding
86
- Strategic review
87
- Strategic process
88
-
89
- Inputen din vil være en børsmelding, enten en url til meldingen eller hele teksten limt inn. Outputen skal være strukturert og inneholde følgende info: Message_id, tittel på børsmeldingen, vurdering av nyhetsverdi, begrunnelse for satt nyhetsverdi.
90
- Om det er stor sannsynlighet for at meldingen vil påvirke aksjemarkedet, skal du vurdere at meldingen har HØY nyhetsverdi. Om det er usikkert om meldingen vil påvirke aksjemarkedet, vil du vurdere at meldingen har MEDIUM nyhetsverdi. Om det er lav sannsynlighet for at meldingen vil påvirke aksjemarkedet, vil du vurdere at medlingen har LAV nyhetsverdi.
91
- """
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
 
94
  @tool
95
  def get_current_time_in_timezone(timezone: str) -> str:
 
52
  @tool
53
  def newsworthiness_detection(fetch_message_from_newsweb: str, newsworthiness_prompt: str) -> str:
54
  """
55
+ Determines the newsworthiness of a stock market announcement using a predefined prompt.
56
+
57
  Args:
58
+ fetch_message_from_newsweb (str): The stock market message content or a URL to the announcement.
59
+ newsworthiness_prompt (str): A predefined prompt that provides guidance for assessing the newsworthiness of the announcement.
60
 
61
  Returns:
62
+ str: A rating of newsworthiness ("HØY", "MEDIUM", or "LAV") along with a short explanation of the decision.
63
  """
64
+
65
  newsworthiness_prompt = """
66
+ Du er en børsjournalist som er ekspert på finansielle markeder og spesielt på Oslo Børs. Du jobber for den norske finansavisen E24.
67
+ Jobben din er å gå gjennom alle børsmeldinger fra selskaper notert på Oslo Børs og vurdere hvor egnet meldingen er til å påvirke selskapets aksjekurs.
68
+ Derfor er du alltid jakt etter nyhetspoenger i meldingene. Disse kan være av positiv art, som nye kontrakter, pengeinnsprøytning, positive testresultater eller lignende,
69
+ men ofte er det negative faktorer som påvirker aksjekursen, som nedskrivninger, konflikt, resultatvarsel. Ofte er negative nyheter gjemt nederst i børsmeldingene.
70
+
71
+ Under ser du stikkord, som ofte, men ikke alltid, er egnet til å påvirke markedsverdien til et selskap:
72
+ - Transaction proposal
73
+ - Contemplated
74
+ - Private placement
75
+ - Rights issue
76
+ - Profit warning
77
+ - Dividend
78
+ - Contract update
79
+ - Transaction
80
+ - Contract
81
+ - Matching halt
82
+ - Inside information
83
+ - Block sale
84
+ - Million
85
+ - Billion
86
+ - Stepping down
87
+ - Resign
88
+ - Disclosure of large shareholding
89
+ - Strategic review
90
+ - Strategic process
91
+
92
+ Inputen din vil være en børsmelding, enten en URL til meldingen eller hele teksten limt inn.
93
+ Outputen skal være strukturert og inneholde følgende info: **Message_id, tittel på børsmeldingen, vurdering av nyhetsverdi, begrunnelse for satt nyhetsverdi.**
94
+
95
+ - Om det er stor sannsynlighet for at meldingen vil påvirke aksjemarkedet, skal du vurdere at meldingen har **HØY nyhetsverdi**.
96
+ - Om det er usikkert om meldingen vil påvirke aksjemarkedet, vil du vurdere at meldingen har **MEDIUM nyhetsverdi**.
97
+ - Om det er lav sannsynlighet for at meldingen vil påvirke aksjemarkedet, vil du vurdere at meldingen har **LAV nyhetsverdi**.
98
+ """
99
+
100
+ full_prompt = f"""{newsworthiness_prompt}
101
+
102
+ --- Børsmelding ---
103
+ {fetch_message_from_newsweb}
104
+
105
+ Basert på instruksjonene ovenfor, vurder nyhetsverdien av denne meldingen og gi en begrunnelse.
106
+ Svar kun med en av følgende alternativer:
107
+ - HØY: [begrunnelse]
108
+ - MEDIUM: [begrunnelse]
109
+ - LAV: [begrunnelse]
110
+ """
111
 
112
+ # Define API request payload
113
+ payload = {
114
+ "inputs": full_prompt,
115
+ "parameters": {
116
+ "max_new_tokens": 150, # Limit response length
117
+ "temperature": 0.2, # Keep responses deterministic
118
+ "return_full_text": False # Only return generated text
119
+ }
120
+ }
121
+
122
+ # Send request to Hugging Face API
123
+ response = requests.post(API_URL, headers=HEADERS, json=payload)
124
+
125
+ # Handle errors
126
+ if response.status_code != 200:
127
+ return f"Error {response.status_code}: {response.text}"
128
+
129
+ # Extract and return response text
130
+ result = response.json()
131
+ return result[0]["generated_text"].strip() # Extracts generated text from response
132
 
133
  @tool
134
  def get_current_time_in_timezone(timezone: str) -> str: