Files
more_dots/examples/basic_usage.py
T
2026-02-17 02:31:39 +08:00

94 lines
2.6 KiB
Python

#!/usr/bin/env python3
"""
Basic usage examples for the LangChain + LangGraph scaffolding
"""
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from workflows.workflow_manager import WorkflowManager, WorkflowType
def example_conversation():
"""Example of using the conversation workflow"""
print("=== Conversation Workflow Example ===")
manager = WorkflowManager()
# First message
result1 = manager.execute_workflow(
WorkflowType.CONVERSATION,
"Hello! Can you help me with some calculations?"
)
print(f"Session ID: {result1['session_id']}")
print(f"Response: {result1['result']['messages'][-1].content}")
# Second message in the same session
result2 = manager.execute_workflow(
WorkflowType.CONVERSATION,
"What can you help me with?",
session_id=result1['session_id']
)
print(f"Second response: {result2['result']['messages'][-1].content}")
print("\n")
def example_tool_usage():
"""Example of using the tool workflow"""
print("=== Tool Workflow Example ===")
manager = WorkflowManager()
# Use calculator tool
result = manager.execute_workflow(
WorkflowType.TOOL_USING,
"Calculate 25 * 4 + 10"
)
print(f"Session ID: {result['session_id']}")
# Extract tool messages and responses
for message in result['result']['messages']:
if hasattr(message, 'tool_calls') and message.tool_calls:
print(f"Tool call: {message.tool_calls}")
elif hasattr(message, 'content'):
print(f"Response: {message.content}")
print("\n")
def list_available_workflows():
"""List all available workflows"""
print("=== Available Workflows ===")
manager = WorkflowManager()
workflows = manager.get_available_workflows()
for workflow in workflows:
print(f"- {workflow}")
print("\n")
if __name__ == "__main__":
# Check if configuration is valid
try:
from config import Config
Config.validate_config()
print("✅ Configuration is valid")
print("\n")
# Run examples
list_available_workflows()
example_conversation()
example_tool_usage()
except Exception as e:
print(f"❌ Configuration error: {e}")
print("\nPlease make sure to:")
print("1. Copy .env.example to .env")
print("2. Set your OPENAI_API_KEY in the .env file")
print("3. Install dependencies: pip install -r requirements.txt")