mirror of
https://github.com/googleapis/genai-toolbox.git
synced 2026-02-10 23:25:17 -05:00
## Description Trigger has been tested corresponding to local changes. Latest successful run: https://pantheon.corp.google.com/cloud-build/builds;region=global/1c37031f-95f1-4c6c-9ef8-0452277599d5?e=13802955&mods=-autopush_coliseum&project=toolbox-testing-438616 Note: After merging, update python pre and post processing sample testing trigger. ## PR Checklist > Thank you for opening a Pull Request! Before submitting your PR, there are a > few things you can do to make sure it goes smoothly: - [x] Make sure you reviewed [CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md) - [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) - [ ] Make sure to add `!` if this involve a breaking change 🛠️ Fixes #<issue_number_goes_here> --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com> Co-authored-by: Averi Kitsch <akitsch@google.com>
41 lines
1.4 KiB
Markdown
41 lines
1.4 KiB
Markdown
---
|
|
title: "Python"
|
|
type: docs
|
|
weight: 1
|
|
description: >
|
|
How to add pre- and post- processing to your Agents using Python.
|
|
---
|
|
|
|
## Prerequisites
|
|
|
|
This tutorial assumes that you have set up Toolbox with a basic agent as described in the [local quickstart](../../getting-started/local_quickstart.md).
|
|
|
|
This guide demonstrates how to implement these patterns in your Toolbox applications.
|
|
|
|
## Implementation
|
|
|
|
{{< tabpane persist=header >}}
|
|
{{% tab header="ADK" text=true %}}
|
|
Coming soon.
|
|
{{% /tab %}}
|
|
{{% tab header="Langchain" text=true %}}
|
|
The following example demonstrates how to use `ToolboxClient` with LangChain's middleware to implement pre- and post- processing for tool calls.
|
|
|
|
```py
|
|
{{< include "python/langchain/agent.py" >}}
|
|
```
|
|
|
|
You can also add model-level (`wrap_model`) and agent-level (`before_agent`, `after_agent`) hooks to intercept messages at different stages of the execution loop. See the [LangChain Middleware documentation](https://docs.langchain.com/oss/python/langchain/middleware/custom#wrap-style-hooks) for details on these additional hook types.
|
|
{{% /tab %}}
|
|
{{< /tabpane >}}
|
|
|
|
## Results
|
|
|
|
The output should look similar to the following. Note that exact responses may vary due to the non-deterministic nature of LLMs and differences between orchestration frameworks.
|
|
|
|
```
|
|
AI: Booking Confirmed! You earned 500 Loyalty Points with this stay.
|
|
|
|
AI: Error: Maximum stay duration is 14 days.
|
|
```
|