pilot-etf-tech / common_functionality.py
Artem Kalyta
added excel merging
66e4785
Raw History Blame Contribute Delete
1.89 kB
import json
import openai
import pandas as pd
import yfinance as yf
from config import Config
def convert_to_excel(dataframes: dict[pd.DataFrame], filename="updated_data", index=True) -> str:
"""
Accepts a dictionary of dataframes and converts it to an Excel file
"""
filename = f"{filename}.xlsx"
print(f"Writing to {filename}")
writer = pd.ExcelWriter(filename, engine='openpyxl')
for ticker, df in dataframes.items():
print(f"Sheet name: {ticker}")
df.reset_index(drop=True, inplace=True)
df.to_excel(writer, index=index, sheet_name=ticker)
writer.close()
return filename
def send_openai_request(prompt: str, max_tokens=6000, temperature=0.1, model="gpt-4") -> dict:
try:
response = openai.ChatCompletion.create(
model=model,
messages=[
{
"role": "user",
"content": f"{prompt}"
}
],
temperature=temperature,
max_tokens=max_tokens,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
except:
response = openai.ChatCompletion.create(
model=model,
messages=[
{
"role": "user",
"content": f"{prompt}"
}
],
temperature=temperature,
max_tokens=max_tokens,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
return json.loads(response.choices[0]["message"]["content"])
def get_financial_columns(data: pd.DataFrame) -> list:
test = yf.Ticker("AAPL")
financial_columns = [x for x in data.columns if x in (test.info.keys() or Config.FINANCE_HISTORICAL_RETURN in x)
and x != "Country"]
return financial_columns