WilliamGazeley
commited on
Commit
·
7aab4a8
1
Parent(s):
7c1188c
Enable price and ratios
Browse files- src/app.py +3 -1
- src/config.py +3 -0
- src/functioncall.py +2 -0
- src/functions.py +4 -2
src/app.py
CHANGED
|
@@ -46,9 +46,11 @@ def main():
|
|
| 46 |
|
| 47 |
if st.button("Generate"):
|
| 48 |
if input_text:
|
| 49 |
-
with st.
|
|
|
|
| 50 |
agent_resp = get_response(input_text)
|
| 51 |
st.write(get_output(agent_resp, input_text))
|
|
|
|
| 52 |
else:
|
| 53 |
st.warning("Please enter some text to generate a response.")
|
| 54 |
|
|
|
|
| 46 |
|
| 47 |
if st.button("Generate"):
|
| 48 |
if input_text:
|
| 49 |
+
with st.status('Generating response...') as status:
|
| 50 |
+
config.status = status
|
| 51 |
agent_resp = get_response(input_text)
|
| 52 |
st.write(get_output(agent_resp, input_text))
|
| 53 |
+
config.status.update(label="Finished!", state="complete", expanded=True)
|
| 54 |
else:
|
| 55 |
st.warning("Please enter some text to generate a response.")
|
| 56 |
|
src/config.py
CHANGED
|
@@ -1,11 +1,14 @@
|
|
| 1 |
from pydantic import Field
|
| 2 |
from pydantic_settings import BaseSettings
|
|
|
|
| 3 |
|
| 4 |
class Config(BaseSettings):
|
| 5 |
hf_token: str = Field(...)
|
| 6 |
hf_model: str = Field("InvestmentResearchAI/LLM-ADE-dev")
|
| 7 |
headless: bool = Field(False, description="Run in headless mode.")
|
| 8 |
|
|
|
|
|
|
|
| 9 |
az_search_endpoint: str = Field("https://analysis-bank.search.windows.net")
|
| 10 |
az_search_api_key: str = Field(...)
|
| 11 |
az_search_idx_name: str = Field("analysis-index")
|
|
|
|
| 1 |
from pydantic import Field
|
| 2 |
from pydantic_settings import BaseSettings
|
| 3 |
+
from typing import Dict, Any
|
| 4 |
|
| 5 |
class Config(BaseSettings):
|
| 6 |
hf_token: str = Field(...)
|
| 7 |
hf_model: str = Field("InvestmentResearchAI/LLM-ADE-dev")
|
| 8 |
headless: bool = Field(False, description="Run in headless mode.")
|
| 9 |
|
| 10 |
+
status: Any = None # Hold the status
|
| 11 |
+
|
| 12 |
az_search_endpoint: str = Field("https://analysis-bank.search.windows.net")
|
| 13 |
az_search_api_key: str = Field(...)
|
| 14 |
az_search_idx_name: str = Field("analysis-index")
|
src/functioncall.py
CHANGED
|
@@ -72,6 +72,7 @@ class ModelInference:
|
|
| 72 |
raise ValueError("Assistant message is None")
|
| 73 |
|
| 74 |
def execute_function_call(self, tool_call):
|
|
|
|
| 75 |
function_name = tool_call.get("name")
|
| 76 |
function_to_call = getattr(functions, function_name, None)
|
| 77 |
function_args = tool_call.get("arguments", {})
|
|
@@ -82,6 +83,7 @@ class ModelInference:
|
|
| 82 |
return results_dict
|
| 83 |
|
| 84 |
def run_inference(self, prompt: List[Dict[str, str]]):
|
|
|
|
| 85 |
inputs = self.tokenizer.apply_chat_template(
|
| 86 |
prompt,
|
| 87 |
add_generation_prompt=True,
|
|
|
|
| 72 |
raise ValueError("Assistant message is None")
|
| 73 |
|
| 74 |
def execute_function_call(self, tool_call):
|
| 75 |
+
config.status.update(label=":mag: Gathering information..")
|
| 76 |
function_name = tool_call.get("name")
|
| 77 |
function_to_call = getattr(functions, function_name, None)
|
| 78 |
function_args = tool_call.get("arguments", {})
|
|
|
|
| 83 |
return results_dict
|
| 84 |
|
| 85 |
def run_inference(self, prompt: List[Dict[str, str]]):
|
| 86 |
+
config.status.update(label=":brain: Thinking..")
|
| 87 |
inputs = self.tokenizer.apply_chat_template(
|
| 88 |
prompt,
|
| 89 |
add_generation_prompt=True,
|
src/functions.py
CHANGED
|
@@ -102,6 +102,7 @@ def get_current_stock_price(symbol: str) -> float:
|
|
| 102 |
float: The current stock price, or None if an error occurs.
|
| 103 |
"""
|
| 104 |
try:
|
|
|
|
| 105 |
stock = yf.Ticker(symbol)
|
| 106 |
# Use "regularMarketPrice" for regular market hours, or "currentPrice" for pre/post market
|
| 107 |
current_price = stock.info.get("regularMarketPrice", stock.info.get("currentPrice"))
|
|
@@ -187,6 +188,7 @@ def get_key_financial_ratios(symbol: str) -> dict:
|
|
| 187 |
dict: Dictionary containing key financial ratios.
|
| 188 |
"""
|
| 189 |
try:
|
|
|
|
| 190 |
stock = yf.Ticker(symbol)
|
| 191 |
key_ratios = stock.info
|
| 192 |
return key_ratios
|
|
@@ -290,12 +292,12 @@ def get_openai_tools() -> List[dict]:
|
|
| 290 |
functions = [
|
| 291 |
get_analysis,
|
| 292 |
# google_search_and_scrape,
|
| 293 |
-
|
| 294 |
# get_company_news,
|
| 295 |
# get_company_profile,
|
| 296 |
# get_stock_fundamentals,
|
| 297 |
# get_financial_statements,
|
| 298 |
-
|
| 299 |
# get_analyst_recommendations,
|
| 300 |
# get_dividend_data,
|
| 301 |
# get_technical_indicators
|
|
|
|
| 102 |
float: The current stock price, or None if an error occurs.
|
| 103 |
"""
|
| 104 |
try:
|
| 105 |
+
config.status.update(label=":chart_with_upwards_trend: Getting price")
|
| 106 |
stock = yf.Ticker(symbol)
|
| 107 |
# Use "regularMarketPrice" for regular market hours, or "currentPrice" for pre/post market
|
| 108 |
current_price = stock.info.get("regularMarketPrice", stock.info.get("currentPrice"))
|
|
|
|
| 188 |
dict: Dictionary containing key financial ratios.
|
| 189 |
"""
|
| 190 |
try:
|
| 191 |
+
config.status.update(label=":chart_with_upwards_trend: Gathering financial data")
|
| 192 |
stock = yf.Ticker(symbol)
|
| 193 |
key_ratios = stock.info
|
| 194 |
return key_ratios
|
|
|
|
| 292 |
functions = [
|
| 293 |
get_analysis,
|
| 294 |
# google_search_and_scrape,
|
| 295 |
+
get_current_stock_price,
|
| 296 |
# get_company_news,
|
| 297 |
# get_company_profile,
|
| 298 |
# get_stock_fundamentals,
|
| 299 |
# get_financial_statements,
|
| 300 |
+
get_key_financial_ratios,
|
| 301 |
# get_analyst_recommendations,
|
| 302 |
# get_dividend_data,
|
| 303 |
# get_technical_indicators
|