Slackbot
02/05/2024, 7:24 PMChaoyu
02/05/2024, 8:15 PMChaoyu
02/05/2024, 8:15 PMChaoyu
02/05/2024, 8:15 PMAnton Loukianov
02/05/2024, 8:34 PMAnton Loukianov
02/05/2024, 8:36 PMAnnotated tagging or something. It seems very tricky to get it right.Anton Loukianov
02/05/2024, 8:45 PMfrom typing import Generator
import bentoml
from pydantic import BaseModel, Field
import pandas as pd
class Input(BaseModel):
df1: pd.DataFrame = Field(description="df1")
class Output(BaseModel):
df1: pd.DataFrame = Field(description="df1")
df2: pd.DataFrame = Field(description="df2")
df3: pd.DataFrame = Field(description="df3")
@bentoml.service
class Service:
@bentoml.api
def echo_df(self, df1: pd.DataFrame) -> Output:
return Output(df1=df1, df2=df1, df3=df1)
@bentoml.api
def stream_df(self, df1: pd.DataFrame) -> Generator[Output, None, None]:
for i in range(3):
yield Output(df1=df1, df2=df1, df3=df1)
if __name__ == "__main__":
from bentoml import SyncHTTPClient
data = pd.DataFrame({
"a": [1, 2, 3],
"b": ["1", "2", "3"],
})
with SyncHTTPClient("localhost:3000") as client:
value = client.echo_df(df1=data)
print(value)
for item in client.stream_df(df1=data):
print(item)Chaoyu
02/05/2024, 9:07 PMAnton Loukianov
02/05/2024, 9:11 PMAnton Loukianov
02/05/2024, 11:39 PMFrost Ming
02/06/2024, 1:25 AMAnton Loukianov
02/06/2024, 5:19 AMFrost Ming
02/06/2024, 6:46 AMAnton Loukianov
02/06/2024, 9:16 PM