mirror of
https://github.com/langchain-ai/docs.git
synced 2026-08-27 02:41:59 -04:00
422 lines
12 KiB
Plaintext
422 lines
12 KiB
Plaintext
<CodeGroup>
|
|
```python Google
|
|
from dataclasses import dataclass
|
|
|
|
from langchain.agents import create_agent
|
|
from langchain.tools import tool, ToolRuntime
|
|
from langchain_core.utils.uuid import uuid7
|
|
from langchain_openai import ChatOpenAI
|
|
|
|
|
|
USER_DATABASE = {
|
|
"user123": {
|
|
"name": "Alice Johnson",
|
|
"account_type": "Premium",
|
|
"balance": 5000,
|
|
"email": "alice@example.com",
|
|
},
|
|
"user456": {
|
|
"name": "Bob Smith",
|
|
"account_type": "Standard",
|
|
"balance": 1200,
|
|
"email": "bob@example.com",
|
|
},
|
|
}
|
|
|
|
|
|
@dataclass
|
|
class UserContext:
|
|
user_id: str
|
|
|
|
|
|
@tool
|
|
def get_account_info(runtime: ToolRuntime[UserContext]) -> str:
|
|
"""Get the current user's account information."""
|
|
user_id = runtime.context.user_id
|
|
|
|
if user_id in USER_DATABASE:
|
|
user = USER_DATABASE[user_id]
|
|
return (
|
|
f"Account holder: {user['name']}\n"
|
|
f"Type: {user['account_type']}\n"
|
|
f"Balance: ${user['balance']}"
|
|
)
|
|
return "User not found"
|
|
|
|
|
|
model = ChatOpenAI(model="google_genai:gemini-3.6-flash")
|
|
agent = create_agent(
|
|
model,
|
|
tools=[get_account_info],
|
|
context_schema=UserContext,
|
|
system_prompt="You are a financial assistant.",
|
|
)
|
|
|
|
result = agent.invoke(
|
|
{"messages": [{"role": "user", "content": "What's my current balance?"}]},
|
|
config={"configurable": {"thread_id": str(uuid7())}},
|
|
context=UserContext(user_id="user123"),
|
|
)
|
|
```
|
|
|
|
```python OpenAI
|
|
from dataclasses import dataclass
|
|
|
|
from langchain.agents import create_agent
|
|
from langchain.tools import tool, ToolRuntime
|
|
from langchain_core.utils.uuid import uuid7
|
|
from langchain_openai import ChatOpenAI
|
|
|
|
|
|
USER_DATABASE = {
|
|
"user123": {
|
|
"name": "Alice Johnson",
|
|
"account_type": "Premium",
|
|
"balance": 5000,
|
|
"email": "alice@example.com",
|
|
},
|
|
"user456": {
|
|
"name": "Bob Smith",
|
|
"account_type": "Standard",
|
|
"balance": 1200,
|
|
"email": "bob@example.com",
|
|
},
|
|
}
|
|
|
|
|
|
@dataclass
|
|
class UserContext:
|
|
user_id: str
|
|
|
|
|
|
@tool
|
|
def get_account_info(runtime: ToolRuntime[UserContext]) -> str:
|
|
"""Get the current user's account information."""
|
|
user_id = runtime.context.user_id
|
|
|
|
if user_id in USER_DATABASE:
|
|
user = USER_DATABASE[user_id]
|
|
return (
|
|
f"Account holder: {user['name']}\n"
|
|
f"Type: {user['account_type']}\n"
|
|
f"Balance: ${user['balance']}"
|
|
)
|
|
return "User not found"
|
|
|
|
|
|
model = ChatOpenAI(model="openai:gpt-5.5")
|
|
agent = create_agent(
|
|
model,
|
|
tools=[get_account_info],
|
|
context_schema=UserContext,
|
|
system_prompt="You are a financial assistant.",
|
|
)
|
|
|
|
result = agent.invoke(
|
|
{"messages": [{"role": "user", "content": "What's my current balance?"}]},
|
|
config={"configurable": {"thread_id": str(uuid7())}},
|
|
context=UserContext(user_id="user123"),
|
|
)
|
|
```
|
|
|
|
```python Anthropic
|
|
from dataclasses import dataclass
|
|
|
|
from langchain.agents import create_agent
|
|
from langchain.tools import tool, ToolRuntime
|
|
from langchain_core.utils.uuid import uuid7
|
|
from langchain_openai import ChatOpenAI
|
|
|
|
|
|
USER_DATABASE = {
|
|
"user123": {
|
|
"name": "Alice Johnson",
|
|
"account_type": "Premium",
|
|
"balance": 5000,
|
|
"email": "alice@example.com",
|
|
},
|
|
"user456": {
|
|
"name": "Bob Smith",
|
|
"account_type": "Standard",
|
|
"balance": 1200,
|
|
"email": "bob@example.com",
|
|
},
|
|
}
|
|
|
|
|
|
@dataclass
|
|
class UserContext:
|
|
user_id: str
|
|
|
|
|
|
@tool
|
|
def get_account_info(runtime: ToolRuntime[UserContext]) -> str:
|
|
"""Get the current user's account information."""
|
|
user_id = runtime.context.user_id
|
|
|
|
if user_id in USER_DATABASE:
|
|
user = USER_DATABASE[user_id]
|
|
return (
|
|
f"Account holder: {user['name']}\n"
|
|
f"Type: {user['account_type']}\n"
|
|
f"Balance: ${user['balance']}"
|
|
)
|
|
return "User not found"
|
|
|
|
|
|
model = ChatOpenAI(model="anthropic:claude-sonnet-4-6")
|
|
agent = create_agent(
|
|
model,
|
|
tools=[get_account_info],
|
|
context_schema=UserContext,
|
|
system_prompt="You are a financial assistant.",
|
|
)
|
|
|
|
result = agent.invoke(
|
|
{"messages": [{"role": "user", "content": "What's my current balance?"}]},
|
|
config={"configurable": {"thread_id": str(uuid7())}},
|
|
context=UserContext(user_id="user123"),
|
|
)
|
|
```
|
|
|
|
```python OpenRouter
|
|
from dataclasses import dataclass
|
|
|
|
from langchain.agents import create_agent
|
|
from langchain.tools import tool, ToolRuntime
|
|
from langchain_core.utils.uuid import uuid7
|
|
from langchain_openai import ChatOpenAI
|
|
|
|
|
|
USER_DATABASE = {
|
|
"user123": {
|
|
"name": "Alice Johnson",
|
|
"account_type": "Premium",
|
|
"balance": 5000,
|
|
"email": "alice@example.com",
|
|
},
|
|
"user456": {
|
|
"name": "Bob Smith",
|
|
"account_type": "Standard",
|
|
"balance": 1200,
|
|
"email": "bob@example.com",
|
|
},
|
|
}
|
|
|
|
|
|
@dataclass
|
|
class UserContext:
|
|
user_id: str
|
|
|
|
|
|
@tool
|
|
def get_account_info(runtime: ToolRuntime[UserContext]) -> str:
|
|
"""Get the current user's account information."""
|
|
user_id = runtime.context.user_id
|
|
|
|
if user_id in USER_DATABASE:
|
|
user = USER_DATABASE[user_id]
|
|
return (
|
|
f"Account holder: {user['name']}\n"
|
|
f"Type: {user['account_type']}\n"
|
|
f"Balance: ${user['balance']}"
|
|
)
|
|
return "User not found"
|
|
|
|
|
|
model = ChatOpenAI(model="openrouter:z-ai/glm-5.2")
|
|
agent = create_agent(
|
|
model,
|
|
tools=[get_account_info],
|
|
context_schema=UserContext,
|
|
system_prompt="You are a financial assistant.",
|
|
)
|
|
|
|
result = agent.invoke(
|
|
{"messages": [{"role": "user", "content": "What's my current balance?"}]},
|
|
config={"configurable": {"thread_id": str(uuid7())}},
|
|
context=UserContext(user_id="user123"),
|
|
)
|
|
```
|
|
|
|
```python Fireworks
|
|
from dataclasses import dataclass
|
|
|
|
from langchain.agents import create_agent
|
|
from langchain.tools import tool, ToolRuntime
|
|
from langchain_core.utils.uuid import uuid7
|
|
from langchain_openai import ChatOpenAI
|
|
|
|
|
|
USER_DATABASE = {
|
|
"user123": {
|
|
"name": "Alice Johnson",
|
|
"account_type": "Premium",
|
|
"balance": 5000,
|
|
"email": "alice@example.com",
|
|
},
|
|
"user456": {
|
|
"name": "Bob Smith",
|
|
"account_type": "Standard",
|
|
"balance": 1200,
|
|
"email": "bob@example.com",
|
|
},
|
|
}
|
|
|
|
|
|
@dataclass
|
|
class UserContext:
|
|
user_id: str
|
|
|
|
|
|
@tool
|
|
def get_account_info(runtime: ToolRuntime[UserContext]) -> str:
|
|
"""Get the current user's account information."""
|
|
user_id = runtime.context.user_id
|
|
|
|
if user_id in USER_DATABASE:
|
|
user = USER_DATABASE[user_id]
|
|
return (
|
|
f"Account holder: {user['name']}\n"
|
|
f"Type: {user['account_type']}\n"
|
|
f"Balance: ${user['balance']}"
|
|
)
|
|
return "User not found"
|
|
|
|
|
|
model = ChatOpenAI(model="fireworks:accounts/fireworks/models/glm-5p2")
|
|
agent = create_agent(
|
|
model,
|
|
tools=[get_account_info],
|
|
context_schema=UserContext,
|
|
system_prompt="You are a financial assistant.",
|
|
)
|
|
|
|
result = agent.invoke(
|
|
{"messages": [{"role": "user", "content": "What's my current balance?"}]},
|
|
config={"configurable": {"thread_id": str(uuid7())}},
|
|
context=UserContext(user_id="user123"),
|
|
)
|
|
```
|
|
|
|
```python Baseten
|
|
from dataclasses import dataclass
|
|
|
|
from langchain.agents import create_agent
|
|
from langchain.tools import tool, ToolRuntime
|
|
from langchain_core.utils.uuid import uuid7
|
|
from langchain_openai import ChatOpenAI
|
|
|
|
|
|
USER_DATABASE = {
|
|
"user123": {
|
|
"name": "Alice Johnson",
|
|
"account_type": "Premium",
|
|
"balance": 5000,
|
|
"email": "alice@example.com",
|
|
},
|
|
"user456": {
|
|
"name": "Bob Smith",
|
|
"account_type": "Standard",
|
|
"balance": 1200,
|
|
"email": "bob@example.com",
|
|
},
|
|
}
|
|
|
|
|
|
@dataclass
|
|
class UserContext:
|
|
user_id: str
|
|
|
|
|
|
@tool
|
|
def get_account_info(runtime: ToolRuntime[UserContext]) -> str:
|
|
"""Get the current user's account information."""
|
|
user_id = runtime.context.user_id
|
|
|
|
if user_id in USER_DATABASE:
|
|
user = USER_DATABASE[user_id]
|
|
return (
|
|
f"Account holder: {user['name']}\n"
|
|
f"Type: {user['account_type']}\n"
|
|
f"Balance: ${user['balance']}"
|
|
)
|
|
return "User not found"
|
|
|
|
|
|
model = ChatOpenAI(model="baseten:zai-org/GLM-5.2")
|
|
agent = create_agent(
|
|
model,
|
|
tools=[get_account_info],
|
|
context_schema=UserContext,
|
|
system_prompt="You are a financial assistant.",
|
|
)
|
|
|
|
result = agent.invoke(
|
|
{"messages": [{"role": "user", "content": "What's my current balance?"}]},
|
|
config={"configurable": {"thread_id": str(uuid7())}},
|
|
context=UserContext(user_id="user123"),
|
|
)
|
|
```
|
|
|
|
```python Ollama
|
|
from dataclasses import dataclass
|
|
|
|
from langchain.agents import create_agent
|
|
from langchain.tools import tool, ToolRuntime
|
|
from langchain_core.utils.uuid import uuid7
|
|
from langchain_openai import ChatOpenAI
|
|
|
|
|
|
USER_DATABASE = {
|
|
"user123": {
|
|
"name": "Alice Johnson",
|
|
"account_type": "Premium",
|
|
"balance": 5000,
|
|
"email": "alice@example.com",
|
|
},
|
|
"user456": {
|
|
"name": "Bob Smith",
|
|
"account_type": "Standard",
|
|
"balance": 1200,
|
|
"email": "bob@example.com",
|
|
},
|
|
}
|
|
|
|
|
|
@dataclass
|
|
class UserContext:
|
|
user_id: str
|
|
|
|
|
|
@tool
|
|
def get_account_info(runtime: ToolRuntime[UserContext]) -> str:
|
|
"""Get the current user's account information."""
|
|
user_id = runtime.context.user_id
|
|
|
|
if user_id in USER_DATABASE:
|
|
user = USER_DATABASE[user_id]
|
|
return (
|
|
f"Account holder: {user['name']}\n"
|
|
f"Type: {user['account_type']}\n"
|
|
f"Balance: ${user['balance']}"
|
|
)
|
|
return "User not found"
|
|
|
|
|
|
model = ChatOpenAI(model="ollama:north-mini-code-1.0")
|
|
agent = create_agent(
|
|
model,
|
|
tools=[get_account_info],
|
|
context_schema=UserContext,
|
|
system_prompt="You are a financial assistant.",
|
|
)
|
|
|
|
result = agent.invoke(
|
|
{"messages": [{"role": "user", "content": "What's my current balance?"}]},
|
|
config={"configurable": {"thread_id": str(uuid7())}},
|
|
context=UserContext(user_id="user123"),
|
|
)
|
|
```
|
|
</CodeGroup>
|