Skip to content

Commit 08ba4a0

Browse files
committed
add page package to split apps
1 parent a307f43 commit 08ba4a0

File tree

3 files changed

+84
-65
lines changed

3 files changed

+84
-65
lines changed

frontend/entrypoint.py

Lines changed: 9 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,20 @@
1-
import asyncio
21
import logging
3-
from urllib.parse import urljoin
42

5-
import aiohttp
6-
import streamlit as st
7-
8-
from backend.schemas import azure_openai as azure_openai_schemas
3+
from frontend.pages import misc as misc_pages
94

105
logger = logging.getLogger(__name__)
116

127

13-
async def http_get(url: str) -> dict:
14-
async with aiohttp.ClientSession() as session:
15-
async with session.get(url) as response:
16-
response.raise_for_status()
17-
return await response.json()
18-
19-
20-
async def http_post(url: str, data: dict) -> dict:
21-
async with aiohttp.ClientSession() as session:
22-
async with session.post(
23-
url=url,
24-
json=data,
25-
) as response:
26-
response.raise_for_status()
27-
return await response.json()
28-
29-
308
def start(
319
solution_name: str,
3210
backend_url: str,
3311
log_level: int,
3412
):
35-
logger.setLevel(log_level)
36-
logger.debug(f"set log level to {log_level}")
37-
38-
st.write(f"Solution name: {solution_name}")
39-
40-
# GET
41-
if st.button("GET"):
42-
logger.info("Fetching data from backend...")
43-
try:
44-
with st.spinner("Calling API..."):
45-
response = asyncio.run(http_get(url=urljoin(base=backend_url, url="")))
46-
st.write(response)
47-
logger.info("Data fetched successfully.")
48-
except Exception as e:
49-
st.write(f"Error: {e}")
50-
logger.error(f"Error: {e}")
51-
52-
st.write("---")
53-
54-
# POST
55-
prompt = st.text_input(
56-
label="Prompt",
57-
value="Hello",
58-
)
59-
if st.button("POST"):
60-
logger.info("Posting data to backend...")
61-
try:
62-
with st.spinner("Calling API..."):
63-
response = asyncio.run(
64-
http_post(
65-
url=urljoin(base=backend_url, url="/azure_openai/chat_completions/"),
66-
data=azure_openai_schemas.ChatCompletionRequest(
67-
content=prompt,
68-
stream=False,
69-
).model_dump(),
70-
)
71-
)
72-
st.write(response)
73-
logger.info("Data posted successfully.")
74-
except Exception as e:
75-
st.write(f"Error: {e}")
76-
logger.error(f"Error: {e}")
13+
# add solution-specific logic here
14+
if solution_name == "hoge":
15+
pass
16+
else:
17+
misc_pages.start(
18+
backend_url=backend_url,
19+
log_level=log_level,
20+
)

frontend/pages/__init__.py

Whitespace-only changes.

frontend/pages/misc.py

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import asyncio
2+
import logging
3+
from urllib.parse import urljoin
4+
5+
import aiohttp
6+
import streamlit as st
7+
8+
from backend.schemas import azure_openai as azure_openai_schemas
9+
10+
logger = logging.getLogger(__name__)
11+
12+
13+
async def http_get(url: str) -> dict:
14+
async with aiohttp.ClientSession() as session:
15+
async with session.get(url) as response:
16+
response.raise_for_status()
17+
return await response.json()
18+
19+
20+
async def http_post(url: str, data: dict) -> dict:
21+
async with aiohttp.ClientSession() as session:
22+
async with session.post(
23+
url=url,
24+
json=data,
25+
) as response:
26+
response.raise_for_status()
27+
return await response.json()
28+
29+
30+
def start(
31+
backend_url: str,
32+
log_level: int,
33+
):
34+
logger.setLevel(log_level)
35+
logger.debug(f"set log level to {log_level}")
36+
37+
st.write("Misc solution")
38+
39+
# GET
40+
if st.button("GET"):
41+
logger.info("Fetching data from backend...")
42+
try:
43+
with st.spinner("Calling API..."):
44+
response = asyncio.run(http_get(url=urljoin(base=backend_url, url="")))
45+
st.write(response)
46+
logger.info("Data fetched successfully.")
47+
except Exception as e:
48+
st.write(f"Error: {e}")
49+
logger.error(f"Error: {e}")
50+
51+
st.write("---")
52+
53+
# POST
54+
prompt = st.text_input(
55+
label="Prompt",
56+
value="Hello",
57+
)
58+
if st.button("POST"):
59+
logger.info("Posting data to backend...")
60+
try:
61+
with st.spinner("Calling API..."):
62+
response = asyncio.run(
63+
http_post(
64+
url=urljoin(base=backend_url, url="/azure_openai/chat_completions/"),
65+
data=azure_openai_schemas.ChatCompletionRequest(
66+
content=prompt,
67+
stream=False,
68+
).model_dump(),
69+
)
70+
)
71+
st.write(response)
72+
logger.info("Data posted successfully.")
73+
except Exception as e:
74+
st.write(f"Error: {e}")
75+
logger.error(f"Error: {e}")

0 commit comments

Comments
 (0)