mirror of
https://github.com/langchain-ai/docs.git
synced 2026-08-27 02:41:59 -04:00
60 lines
1.8 KiB
Plaintext
60 lines
1.8 KiB
Plaintext
```python
|
|
import os
|
|
from typing import Literal
|
|
|
|
from pydantic import BaseModel, Field
|
|
from tavily import TavilyClient
|
|
|
|
from deepagents import create_deep_agent
|
|
|
|
tavily_client = TavilyClient(api_key=os.environ["TAVILY_API_KEY"])
|
|
|
|
|
|
def internet_search(
|
|
query: str,
|
|
max_results: int = 5,
|
|
topic: Literal["general", "news", "finance"] = "general",
|
|
include_raw_content: bool = False,
|
|
):
|
|
"""Run a web search"""
|
|
return tavily_client.search(
|
|
query,
|
|
max_results=max_results,
|
|
include_raw_content=include_raw_content,
|
|
topic=topic,
|
|
)
|
|
|
|
|
|
class WeatherReport(BaseModel):
|
|
"""A structured weather report with current conditions and forecast."""
|
|
location: str = Field(description="The location for this weather report")
|
|
temperature: float = Field(description="Current temperature in Celsius")
|
|
condition: str = Field(
|
|
description="Current weather condition (e.g., sunny, cloudy, rainy)"
|
|
)
|
|
humidity: int = Field(description="Humidity percentage")
|
|
wind_speed: float = Field(description="Wind speed in km/h")
|
|
forecast: str = Field(description="Brief forecast for the next 24 hours")
|
|
|
|
|
|
agent = create_deep_agent(
|
|
model=model,
|
|
response_format=WeatherReport,
|
|
tools=[internet_search],
|
|
)
|
|
|
|
result = agent.invoke(
|
|
{
|
|
"messages": [
|
|
{
|
|
"role": "user",
|
|
"content": "What's the weather like in San Francisco?",
|
|
}
|
|
]
|
|
}
|
|
)
|
|
|
|
print(result["structured_response"])
|
|
# location='San Francisco, California' temperature=18.3 condition='Sunny' humidity=48 wind_speed=7.6 forecast='Pleasant sunny conditions expected to continue with temperatures around 64°F (18°C) during the day, dropping to around 52°F (11°C) at night. Clear skies with minimal precipitation expected.'
|
|
```
|