Get10KInsights / app.py
prathameshdalal's picture
Update app.py
e1d5008 verified
raw
history blame
1.93 kB
import gradio as gr
def companyChat(company_name, chat_history):
from langchain.chains import ConversationalRetrievalChain
from langchain_community.retrievers import KayAiRetriever
from langchain_anthropic import ChatAnthropic
model = ChatAnthropic(
model_name="claude-3-sonnet-20240229"
)
retriever = KayAiRetriever.create(
dataset_id="company", data_types=["10-K"], num_contexts=10
)
qa = ConversationalRetrievalChain.from_llm(model, retriever=retriever)
company = company_name
outputs = []
chat_history = []
questions = [
f"Summarize the {company}'s financial performance over the past years, including revenue growth, profitability (net income), and margins. In English",
f"Identify and analyze {company}'s earnings per share (EPS diluted and basic), Calculate Return on equity (ROE) and Debt-to-Equity ratio For past few years. In English",
f"Add bullet points for main risks identified by {company} in its 10-K filing. In English" ]
for question in questions:
result = qa({"question": question, "chat_history": chat_history})
chat_history.append((question, result["answer"]))
outputs.append(result["answer"]) # Append both answers to a list
return outputs # Return the list of both answers
# Define the interface with inputs and outputs
interface = gr.Interface(
fn=companyChat,
inputs=gr.Textbox(label="Company Name or Ticker"),
outputs=[gr.Textbox(label="Company's financial performance over the past years"), gr.Textbox(label="Company's earnings per share (EPS), return on equity (ROE), and debt-to-equity ratio For past few years"), gr.Textbox(label="Main risks identified in 10-K filing")],
title="Insights on 10K Filings",
description="Get Insights right from the 10K Filings submitted by the company",
theme="soft",
examples=["APPL", "NVDA", "MSFT"],
cache_examples=True,
clear_btn="Clear",
)
interface.launch()