|
|
|
|
|
desc = """ |
|
### Gradio Tool |
|
|
|
Chain that ask for a command-line question and then runs the bash command. [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/srush/MiniChain/blob/master/examples/bash.ipynb) |
|
|
|
(Adapted from LangChain [BashChain](https://langchain.readthedocs.io/en/latest/modules/chains/examples/llm_bash.html)) |
|
""" |
|
|
|
|
|
|
|
|
|
from minichain import Id, prompt, OpenAIStream |
|
from gradio_tools.tools import StableDiffusionTool, ImageCaptioningTool |
|
|
|
|
|
|
|
@prompt(StableDiffusionTool()) |
|
def gen(model, query): |
|
return model(query) |
|
|
|
@prompt(ImageCaptioningTool()) |
|
def caption(model, img_src): |
|
return model(img_src) |
|
|
|
tools = [gen, caption] |
|
|
|
@prompt(Id(), |
|
|
|
template_file="agent.pmpt.tpl") |
|
def agent(model, query): |
|
print(model(dict(tools=[(str(tool.backend.__class__), tool.backend.description) |
|
for tool in tools], |
|
input=query |
|
))) |
|
return ("StableDiffusionTool", "Draw a flower") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@prompt(dynamic=tools) |
|
def selector(model, input): |
|
selector, input = input |
|
if selector == "StableDiffusionTool": |
|
return model.tool(input, tool_num=0) |
|
else: |
|
return model.tool(input, tool_num=1) |
|
|
|
|
|
def run(query): |
|
select_input = agent(query) |
|
return selector(select_input) |
|
|
|
run("make a pic").run() |
|
|
|
|
|
gradio = show(run, |
|
subprompts=[agent, selector], |
|
examples=['Draw me a flower'], |
|
out_type="markdown", |
|
description=desc |
|
) |
|
if __name__ == "__main__": |
|
gradio.launch() |
|
|
|
|