Skip to content

Commit aeeeee3

Browse files
authored
Merge pull request #64 from WorkflowAI/guillaume/audio
Add pdf object
2 parents fb5e7e4 + 49ecabe commit aeeeee3

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

tests/integration/run_test.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import json
22
from collections.abc import AsyncIterator
33

4+
import pytest
45
from pydantic import BaseModel
56

67
import workflowai
@@ -150,6 +151,8 @@ async def city_to_capital(task_input: CityToCapitalTaskInput) -> CityToCapitalTa
150151

151152

152153
async def test_run_with_tool(test_client: IntTestClient):
154+
"""Test a round trip with a tool call request and a reply."""
155+
153156
class _SayHelloToolInput(BaseModel):
154157
name: str
155158

@@ -159,6 +162,10 @@ class _SayHelloToolOutput(BaseModel):
159162
def say_hello(tool_input: _SayHelloToolInput) -> _SayHelloToolOutput:
160163
return _SayHelloToolOutput(message=f"Hello {tool_input.name}")
161164

165+
# Sanity check to make sure that CityToCapitalTaskOutput.capital is a field required by pydantic
166+
with pytest.raises(AttributeError):
167+
_ = CityToCapitalTaskOutput.model_construct(None).capital
168+
162169
@workflowai.agent(id="city-to-capital", tools=[say_hello])
163170
async def city_to_capital(task_input: CityToCapitalTaskInput) -> CityToCapitalTaskOutput:
164171
"""Say hello to the user"""

workflowai/core/fields/pdf.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from workflowai.core.fields.file import File
2+
3+
4+
class PDF(File):
5+
"""A field representing a PDF file.
6+
7+
This field is used to handle PDF inputs.
8+
The PDF can be provided either as base64-encoded data or as a URL.
9+
"""
10+
11+
pass

workflowai/fields.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from workflowai.core.fields.http_url import HttpUrl as HttpUrl
77
from workflowai.core.fields.image import Image as Image
88
from workflowai.core.fields.local_date_time import DatetimeLocal as DatetimeLocal
9+
from workflowai.core.fields.pdf import PDF as PDF
910
from workflowai.core.fields.price import Price as Price
1011
from workflowai.core.fields.surface_area import SurfaceArea as SurfaceArea
1112
from workflowai.core.fields.zone_info import TimezoneInfo as TimezoneInfo

0 commit comments

Comments
 (0)