From bc773f3fad33e5753cc4eb4b8fef1cd9569513ec Mon Sep 17 00:00:00 2001 From: Amanvir Parhar <46307450+amanvirparhar@users.noreply.github.com> Date: Wed, 17 Jan 2024 23:06:03 -0800 Subject: [PATCH 1/4] The parameter name for cast() is listed as "instruction" in the docs when it should be "instructions". --- docs/docs/text/extraction.md | 6 +++--- docs/docs/text/transformation.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/docs/text/extraction.md b/docs/docs/text/extraction.md index 5d0fbbd26..f9af36919 100644 --- a/docs/docs/text/extraction.md +++ b/docs/docs/text/extraction.md @@ -142,13 +142,13 @@ Sometimes the cast operation is obvious, as in the "big apple" example above. Ot In a simple case, instructions can be used independent of any type-casting. Here, we want to keep the output a string, but get the 2-letter abbreviation of the state. ```python -marvin.cast('California', to=str, instruction="The state's abbreviation") +marvin.cast('California', to=str, instructions="The state's abbreviation") # "CA" -marvin.cast('The sunshine state', to=str, instruction="The state's abbreviation") +marvin.cast('The sunshine state', to=str, instructions="The state's abbreviation") # "FL" -marvin.cast('Mass.', to=str, instruction="The state's abbreviation") +marvin.cast('Mass.', to=str, instructions="The state's abbreviation") # MA ``` diff --git a/docs/docs/text/transformation.md b/docs/docs/text/transformation.md index b40c57bd4..5e532bd2a 100644 --- a/docs/docs/text/transformation.md +++ b/docs/docs/text/transformation.md @@ -56,13 +56,13 @@ Sometimes the cast operation is obvious, as in the "big apple" example above. Ot In a simple case, instructions can be used independent of any type-casting. Here, we want to keep the output a string, but get the 2-letter abbreviation of the state. ```python -marvin.cast('California', target=str, instruction="The state's abbreviation") +marvin.cast('California', target=str, instructions="The state's abbreviation") # "CA" -marvin.cast('The sunshine state', target=str, instruction="The state's abbreviation") +marvin.cast('The sunshine state', target=str, instructions="The state's abbreviation") # "FL" -marvin.cast('Mass.', target=str, instruction="The state's abbreviation") +marvin.cast('Mass.', target=str, instructions="The state's abbreviation") # MA ``` From 56ed3a73d023f2f6785b5eb3f1a5ec01a63b577d Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Thu, 18 Jan 2024 14:41:56 -0500 Subject: [PATCH 2/4] Bird photo classifier --- docs/examples/xkcd_bird.md | 24 ++++++++++++++++++++++++ mkdocs.yml | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 docs/examples/xkcd_bird.md diff --git a/docs/examples/xkcd_bird.md b/docs/examples/xkcd_bird.md new file mode 100644 index 000000000..aaf72c81b --- /dev/null +++ b/docs/examples/xkcd_bird.md @@ -0,0 +1,24 @@ +# Bird photo classifier + +[![](https://imgs.xkcd.com/comics/tasks.png)](https://xkcd.com/1425/) + + +!!! example "Is this a bird?" + [![](https://images.unsplash.com/photo-1613891188927-14c2774fb8d7)](https://unsplash.com/photos/green-and-black-humming-bird-eLC1Bd3PLu4) + ```python + import marvin + + photo = marvin.beta.Image( + "https://images.unsplash.com/photo-1613891188927-14c2774fb8d7", + ) + + result = marvin.beta.classify( + photo, + labels=["bird", "not bird"] + ) + ``` + + !!! success "Yes!" + ```python + assert result == "bird" + ``` \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 95eeb2222..12f943eb3 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -79,6 +79,8 @@ nav: - Slackbot: examples/slackbot.md - Python augmented prompts: examples/python_augmented_prompts.md - Being specific about types: examples/being_specific_about_types.md + - examples/xkcd_bird.md + - Community: - community/index.md From b5ddc88a642dfe867d0c468b8cc77aa7daf30721 Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Fri, 19 Jan 2024 11:56:44 -0500 Subject: [PATCH 3/4] add michael scott's four kinds of businesses --- .../michael_scott_business/michael_scott.jpg | Bin 0 -> 64263 bytes .../michael_scott_business.md | 25 ++++++++++++++++++ docs/examples/xkcd_bird.md | 2 +- mkdocs.yml | 4 ++- 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 docs/examples/michael_scott_business/michael_scott.jpg create mode 100644 docs/examples/michael_scott_business/michael_scott_business.md diff --git a/docs/examples/michael_scott_business/michael_scott.jpg b/docs/examples/michael_scott_business/michael_scott.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4a1c93d341115e479043f9168cfbb7ab60ce87c0 GIT binary patch literal 64263 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

qg5{LaXp17c_H;R01 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 literal 0 HcmV?d00001 diff --git a/docs/examples/michael_scott_business/michael_scott_business.md b/docs/examples/michael_scott_business/michael_scott_business.md new file mode 100644 index 000000000..2028fd0e3 --- /dev/null +++ b/docs/examples/michael_scott_business/michael_scott_business.md @@ -0,0 +1,25 @@ +# Michael Scott's four kinds of businesses + +![](michael_scott.jpg) + + +!!! example "What kind of business are LLMs?" + ```python + import marvin + + businesses = [ + "tourism", + "food service", + "railroads", + "sales", + "hospitals/manufacturing", + "air travel", + ] + + result = marvin.classify("LLMs", labels=businesses) + ``` + + !!! success "Tourism" + ```python + assert result == "tourism" + ``` \ No newline at end of file diff --git a/docs/examples/xkcd_bird.md b/docs/examples/xkcd_bird.md index aaf72c81b..60258e8fc 100644 --- a/docs/examples/xkcd_bird.md +++ b/docs/examples/xkcd_bird.md @@ -1,4 +1,4 @@ -# Bird photo classifier +# xkcd's bird photo classifier [![](https://imgs.xkcd.com/comics/tasks.png)](https://xkcd.com/1425/) diff --git a/mkdocs.yml b/mkdocs.yml index 12f943eb3..a30c4664b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -79,7 +79,9 @@ nav: - Slackbot: examples/slackbot.md - Python augmented prompts: examples/python_augmented_prompts.md - Being specific about types: examples/being_specific_about_types.md - - examples/xkcd_bird.md + - Examples: + - examples/xkcd_bird.md + - examples/michael_scott_business/michael_scott_business.md - Community: From 67ec36eb2a932a6761267de7e41de88625151324 Mon Sep 17 00:00:00 2001 From: Bradley Axen Date: Fri, 19 Jan 2024 14:23:11 -0800 Subject: [PATCH 4/4] Fix application tool setup The previous logic had a bug that would set the last parameter to recieve the application even if the type annotation didn't match. That ultimately breaks the tool usage by ommitting required parameters from the spec --- src/marvin/beta/applications/applications.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/marvin/beta/applications/applications.py b/src/marvin/beta/applications/applications.py index c237c3065..aa251889d 100644 --- a/src/marvin/beta/applications/applications.py +++ b/src/marvin/beta/applications/applications.py @@ -69,13 +69,10 @@ def get_tools(self) -> list[AssistantTool]: if not isinstance(tool, Tool): kwargs = None signature = inspect.signature(tool) - parameter = None for parameter in signature.parameters.values(): if parameter.annotation == Application: + kwargs = {parameter.name: self} break - if parameter is not None: - kwargs = {parameter.name: self} - tool = tool_from_function(tool, kwargs=kwargs) tools.append(tool)