weave.init("[YOUR-TEAM]/[YOUR-PROJECT]")
from weave.conversation import LLM, Message, Tool, Usage
llm_span = LLM(
model="gpt-4o",
provider_name="openai",
input_messages=[Message(role="user", content="What is the weather?")],
output_messages=[Message(role="assistant", content="Let me check.")],
usage=Usage(input_tokens=100, output_tokens=20),
)
tool_span = Tool(
name="get_weather",
arguments='{"city": "Tokyo"}',
result='"24°C, sunny"',
)
llm_span2 = LLM(
model="gpt-4o",
provider_name="openai",
input_messages=[Message(role="user", content="What is the weather?")],
output_messages=[Message(role="assistant", content="It is 24°C and sunny.")],
usage=Usage(input_tokens=150, output_tokens=30),
)
# Log a turn with all its spans.
weave.log_turn(
conversation_id="my-conversation-abc",
agent_name="weather-bot",
messages=[
Message(role="user", content="What is the weather in Tokyo?"),
Message(role="assistant", content="It is 24°C and sunny in Tokyo."),
],
spans=[llm_span, tool_span, llm_span2],
)