Add brochure code.
Browse files- app.py +12 -3
- runnable_with_tools.py +1 -5
app.py
CHANGED
|
@@ -39,6 +39,8 @@ TOOLS = {
|
|
| 39 |
}
|
| 40 |
|
| 41 |
def make_brochure(company_name: str, company_web_site: str) -> str:
|
|
|
|
|
|
|
| 42 |
system = """
|
| 43 |
You are an assistant that can crate company brochure from company's web site.
|
| 44 |
You can do this in a few steps:
|
|
@@ -57,11 +59,18 @@ def make_brochure(company_name: str, company_web_site: str) -> str:
|
|
| 57 |
('user', user)
|
| 58 |
])
|
| 59 |
prompt = prompt_template.invoke({'company_name': company_name, 'company_web_site': company_web_site})
|
| 60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
|
| 62 |
load_dotenv()
|
| 63 |
model = ChatAnthropic(model="claude-3-5-haiku-20241022", temperature=0)
|
| 64 |
model_with_tools = RunnableWithTools(bound=model.bind_tools([get_web_page]), tools=TOOLS)
|
| 65 |
|
| 66 |
-
|
| 67 |
-
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
}
|
| 40 |
|
| 41 |
def make_brochure(company_name: str, company_web_site: str) -> str:
|
| 42 |
+
print(f'processing request for {company_name} at {company_web_site}')
|
| 43 |
+
|
| 44 |
system = """
|
| 45 |
You are an assistant that can crate company brochure from company's web site.
|
| 46 |
You can do this in a few steps:
|
|
|
|
| 59 |
('user', user)
|
| 60 |
])
|
| 61 |
prompt = prompt_template.invoke({'company_name': company_name, 'company_web_site': company_web_site})
|
| 62 |
+
brochure = model_with_tools.invoke(prompt.to_messages(), max_depth=20).content
|
| 63 |
+
print(f'processed request for {company_name} at {company_web_site}')
|
| 64 |
+
print(f'brochure is: \n')
|
| 65 |
+
print(brochure)
|
| 66 |
+
return brochure
|
| 67 |
|
| 68 |
load_dotenv()
|
| 69 |
model = ChatAnthropic(model="claude-3-5-haiku-20241022", temperature=0)
|
| 70 |
model_with_tools = RunnableWithTools(bound=model.bind_tools([get_web_page]), tools=TOOLS)
|
| 71 |
|
| 72 |
+
app = gr.Interface(fn=make_brochure,
|
| 73 |
+
inputs=[gr.Textbox(label='Company name'), gr.Textbox(label='Company web site')],
|
| 74 |
+
outputs=gr.Markdown(label='Company brochure', value='# Company brochure', show_label=True, container=True),
|
| 75 |
+
flagging_mode="never")
|
| 76 |
+
app.launch()
|
runnable_with_tools.py
CHANGED
|
@@ -40,11 +40,7 @@ class RunnableWithTools(RunnableSerializable[Input, Output]):
|
|
| 40 |
selected_tool = self.tools[tool_call["name"].lower()]
|
| 41 |
if selected_tool:
|
| 42 |
tool_msg = selected_tool.invoke(tool_call)
|
| 43 |
-
|
| 44 |
-
tool_msg = tool_msg.model_dump()
|
| 45 |
-
else:
|
| 46 |
-
tool_msg = str(tool_msg)
|
| 47 |
-
text += '\n' + tool_msg
|
| 48 |
input.append(ToolMessage(tool_call_id=tool_call['id'], content=text))
|
| 49 |
depth += 1
|
| 50 |
else:
|
|
|
|
| 40 |
selected_tool = self.tools[tool_call["name"].lower()]
|
| 41 |
if selected_tool:
|
| 42 |
tool_msg = selected_tool.invoke(tool_call)
|
| 43 |
+
text += '\n' + str(tool_msg)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
input.append(ToolMessage(tool_call_id=tool_call['id'], content=text))
|
| 45 |
depth += 1
|
| 46 |
else:
|