File size: 8,635 Bytes
c43e57f
 
6556f92
c43e57f
6556f92
c43e57f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6556f92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c43e57f
 
6556f92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c43e57f
6556f92
 
 
 
 
 
 
 
 
 
 
c43e57f
6556f92
 
c43e57f
6556f92
 
 
 
c43e57f
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
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()