mmaterials / app.py
fabianbeigang
New tabs for other APIS
6556f92
import gradio as gr
import requests
import json
# Function to call the first API and process the response
def get_investment_insights(company_name, work_phone, headquarters, asset_class, primary_location,
investment_vehicle_country, vehicle_currency, holding_period, esg_membership,
investment_structure, capital_target, target_irr, target_equity_multiple,
min_investment_size, investment_strategy, fund_status):
url = "https://01bpjt0euk.execute-api.us-east-1.amazonaws.com/default/investment_thesis_and_rationale"
payload = {'company_details': {
"company_name": company_name,
"work_phone": work_phone,
"headquarters": headquarters,
"asset_class": asset_class,
"primary_location": primary_location,
"investment_vehicle_country": investment_vehicle_country,
"vehicle_currency": vehicle_currency,
"holding_period": holding_period,
"esg_membership": esg_membership,
"investment_structure": investment_structure,
"capital_target": capital_target,
"target_irr": target_irr,
"target_equity_multiple": target_equity_multiple,
"min_investment_size": min_investment_size,
"investment_strategy": investment_strategy,
"fund_status": fund_status
}}
response = requests.post(url, json=payload)
print(response.json())
if response.status_code == 200:
response_data = response.json()
return response_data.get('investment_rationale', ''), response_data.get('subsectors_of_focus', ''), response_data.get('investment_criteria_and_selection_process', '')
else:
return "API request failed", "", ""
# Function to call the second API and process the response
def call_second_api(name_of_project, amount_invested, irr, moic):
url = "https://l0rna45756.execute-api.us-east-1.amazonaws.com/default/case_study_description"
payload = {
"name_of_project": name_of_project,
"amount_invested": amount_invested,
"irr": irr,
"moic": moic
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.json())
if response.status_code == 200:
response_data = response.json()
return response_data.get('case_study_description', '')
else:
return "API request failed"
# Function to call the third API and process the response
def call_third_api(name, title, company, company_hq, investor_type, investor_country, asset_class, investment_location):
url = "https://2r9ffx5cnf.execute-api.us-east-1.amazonaws.com/default/team_member_responsibilities"
payload = {
"name": name,
"title": title,
"company": company,
"company_hq": company_hq,
"investor_type": investor_type,
"investor_country": investor_country,
"asset_class": asset_class,
"investment_location": investment_location
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
if response.status_code == 200:
response_data = response.json()
return response_data.get('bio', '')
else:
return "API request failed"
# Gradio interface
with gr.Blocks() as app:
gr.Markdown("# Marketing Materials API Tester")
with gr.Tabs():
with gr.TabItem("Investments API"):
with gr.Row():
with gr.Column():
company_name = gr.Textbox(label="Your Company's Name", value="Example Company")
work_phone = gr.Textbox(label="Your Work Phone Number", value="+1234567890")
headquarters = gr.Textbox(label="Where are your company's headquarters?", value="New York, USA")
asset_class = gr.Textbox(label="In which Asset Class are you investing?", value="Private Equity")
primary_location = gr.Textbox(label="Where are you investing primarily?", value="North America")
investment_vehicle_country = gr.Textbox(label="In what Country is your investment vehicle domiciled?", value="USA")
vehicle_currency = gr.Textbox(label="What is the investment vehicle's currency?", value="USD")
holding_period = gr.Textbox(label="What is the expected holding period (in years)?", value="5")
esg_membership = gr.Dropdown(choices=["Yes", "No"], label="Are you a member of any ESG associations?", value="Yes")
investment_structure = gr.Textbox(label="What is your Investment Structure?", value="Fund")
capital_target = gr.Textbox(label="What is the total capital raising target for your offering (In USD Millions)?", value="100")
target_irr = gr.Textbox(label="What is your target gross return (IRR %)?", value="15")
target_equity_multiple = gr.Textbox(label="What is your target gross Equity Multiple / MOIC (x)?", value="2")
min_investment_size = gr.Textbox(label="What is the minimum investment ticket size acceptable (In USD Millions)?", value="1")
investment_strategy = gr.Textbox(label="Describe your investment strategy", value="Focus on growth-stage technology companies", lines=5)
fund_status = gr.Textbox(label="What is your fund status?", value="Open")
with gr.Column():
investment_rationale = gr.Textbox(label="Investment Rationale", interactive=False)
subsectors_of_focus = gr.Textbox(label="Subsectors of Focus", interactive=False)
investment_criteria_and_selection_process = gr.Textbox(label="Investment Criteria and Selection Process", interactive=False)
submit_btn = gr.Button("Get Insights")
submit_btn.click(get_investment_insights,
[company_name, work_phone, headquarters, asset_class, primary_location, investment_vehicle_country,
vehicle_currency, holding_period, esg_membership, investment_structure, capital_target,
target_irr, target_equity_multiple, min_investment_size, investment_strategy, fund_status],
[investment_rationale, subsectors_of_focus, investment_criteria_and_selection_process])
with gr.TabItem("Case Studies API"):
with gr.Row():
with gr.Column():
name_of_project = gr.Textbox(label="Name of Project", value="EnEx - Energy Expansion Project")
amount_invested = gr.Number(label="Amount Invested (in millions)", value=5.533)
irr = gr.Number(label="Internal Rate of Return (IRR %)", value=21.67)
moic = gr.Number(label="Multiple on Invested Capital (MOIC)", value=3.44)
with gr.Column():
case_study_description = gr.Textbox(label="Case Study Description", interactive=False)
submit_btn2 = gr.Button("Generate Case Study")
submit_btn2.click(call_second_api,
[name_of_project, amount_invested, irr, moic],
[case_study_description])
with gr.TabItem("Team Members API"):
with gr.Row():
with gr.Column():
name = gr.Textbox(label="Name", value="Jane Doe")
title = gr.Textbox(label="Title", value="Data Scientist")
company = gr.Textbox(label="Company", value="DataCorp")
company_hq = gr.Textbox(label="Company Headquarters", value="New York, USA")
investor_type = gr.Textbox(label="Investor Type", value="Institutional Investor")
investor_country = gr.Textbox(label="Investor Country", value="USA")
asset_class = gr.Textbox(label="Asset Class", value="Technology")
investment_location = gr.Textbox(label="Investment Location", value="Global")
with gr.Column():
responsibilities = gr.Textbox(label="Responsibilities", interactive=False)
submit_btn3 = gr.Button("Get Responsibilities")
submit_btn3.click(call_third_api,
[name, title, company, company_hq, investor_type, investor_country, asset_class, investment_location],
[responsibilities])
app.launch()