38 lines
975 B
Python
38 lines
975 B
Python
"""
|
||
Utility module that defines the tool(s) used by the streaming agent.
|
||
|
||
The project currently contains a single mock ``get_price`` function. The
|
||
implementation is intentionally tiny – it simply looks up a hard‑coded price
|
||
in a dictionary. In real projects this would be replaced with an API call or
|
||
database query.
|
||
"""
|
||
|
||
from langchain.tools import tool
|
||
|
||
@tool
|
||
def get_price(product: str, city: str) -> str:
|
||
"""Return a fake price for *product* in *city*.
|
||
|
||
Parameters
|
||
----------
|
||
product : str
|
||
Name of the product (e.g. ``milk``).
|
||
city : str
|
||
City where the price is requested.
|
||
|
||
Returns
|
||
-------
|
||
str
|
||
A string describing the price, e.g. ``"89 rubles"``.
|
||
"""
|
||
prices = {
|
||
("milk", "kazan"): "89",
|
||
("bread", "kazan"): "45",
|
||
("coffee", "moscow"): "120",
|
||
}
|
||
key = (product.lower(), city.lower())
|
||
price = prices.get(key, "unknown")
|
||
return f"{price} rubles"
|
||
|
||
# End of tools.py
|