Spaces:
Sleeping
Sleeping
| """ | |
| Synthetic Trajectory Generation Module for Agent Tuning Optimization Framework | |
| This module provides functionality for generating synthetic agent interaction trajectories | |
| based on task specifications to enhance the training data for agent tuning. | |
| """ | |
| import random | |
| import numpy as np | |
| from typing import List, Dict, Any, Union, Optional, Tuple | |
| from tqdm import tqdm | |
| from data.trajectory_data import Trajectory, TrajectoryDataset | |
| from models.llm_interface import LLMInterface | |
| class SyntheticTrajectoryGenerator: | |
| """Base class for synthetic trajectory generation strategies.""" | |
| def __init__(self, name: str): | |
| """ | |
| Initialize the synthetic trajectory generator. | |
| Args: | |
| name: Name of the generator strategy | |
| """ | |
| self.name = name | |
| def generate( | |
| self, | |
| task_description: str, | |
| num_interactions: int = 3, | |
| **kwargs | |
| ) -> Trajectory: | |
| """ | |
| Generate a synthetic trajectory for a given task. | |
| Args: | |
| task_description: Description of the task | |
| num_interactions: Number of interaction turns to generate | |
| **kwargs: Additional generation parameters | |
| Returns: | |
| Synthetic trajectory | |
| """ | |
| raise NotImplementedError("Subclasses must implement this method") | |
| def batch_generate( | |
| self, | |
| task_descriptions: List[str], | |
| num_interactions: int = 3, | |
| **kwargs | |
| ) -> List[Trajectory]: | |
| """ | |
| Generate synthetic trajectories for a batch of tasks. | |
| Args: | |
| task_descriptions: List of task descriptions | |
| num_interactions: Number of interaction turns to generate | |
| **kwargs: Additional generation parameters | |
| Returns: | |
| List of synthetic trajectories | |
| """ | |
| synthetic_trajectories = [] | |
| for task in tqdm(task_descriptions, desc=f"Generating synthetic trajectories with {self.name}"): | |
| synthetic_trajectories.append(self.generate(task, num_interactions, **kwargs)) | |
| return synthetic_trajectories | |
| class TemplateBasedGenerator(SyntheticTrajectoryGenerator): | |
| """Generate synthetic trajectories using predefined templates.""" | |
| def __init__(self): | |
| """Initialize the template-based generator.""" | |
| super().__init__("template_based") | |
| # User message templates | |
| self.initial_user_templates = [ | |
| "I need help with {task}.", | |
| "Can you assist me with {task}?", | |
| "I'm trying to {task}. Can you help?", | |
| "I'd like your help with {task}.", | |
| "I'm working on {task} and need assistance." | |
| ] | |
| self.followup_user_templates = [ | |
| "That sounds good. Can you provide more details?", | |
| "I like your approach. What's the next step?", | |
| "Thanks for the information. Can you elaborate on {aspect}?", | |
| "I appreciate your help. How should I proceed with {aspect}?", | |
| "That's helpful. Can you tell me more about {aspect}?" | |
| ] | |
| self.final_user_templates = [ | |
| "This is exactly what I needed. Thank you!", | |
| "Perfect, that solves my problem. Thanks for your help!", | |
| "Great, I'll follow your advice. Thanks!", | |
| "That's very helpful. I appreciate your assistance!", | |
| "Thanks for walking me through this. I understand now." | |
| ] | |
| # Agent message templates | |
| self.initial_agent_templates = [ | |
| "I'd be happy to help you with {task}. Could you provide more details about your specific requirements?", | |
| "I can definitely assist with {task}. Let me ask a few questions to better understand your needs.", | |
| "I'll help you with {task}. To get started, I'll need to gather some information.", | |
| "I can guide you through {task}. First, let's clarify what you're looking to accomplish.", | |
| "I'm here to help with {task}. Let's break this down into manageable steps." | |
| ] | |
| self.middle_agent_templates = [ | |
| "Based on what you've shared, I recommend {recommendation}. This approach has several advantages: {advantages}.", | |
| "Given your requirements, the best option would be {recommendation}. Here's why: {advantages}.", | |
| "After analyzing your needs, I suggest {recommendation}. The benefits include {advantages}.", | |
| "Taking into account what you've mentioned, I'd recommend {recommendation}. This will help because {advantages}.", | |
| "From what I understand, {recommendation} would be the most suitable approach. The key benefits are {advantages}." | |
| ] | |
| self.final_agent_templates = [ | |
| "To summarize, we've discussed {summary}. The next steps are {next_steps}. Is there anything else you'd like me to clarify?", | |
| "In conclusion, we've covered {summary}. You should now {next_steps}. Feel free to reach out if you have any questions.", | |
| "To wrap up, we've gone through {summary}. Moving forward, you can {next_steps}. Let me know if you need further assistance.", | |
| "In summary, we've addressed {summary}. Your action items are {next_steps}. Don't hesitate to ask if anything is unclear.", | |
| "To recap our discussion, we've explored {summary}. The recommended actions are {next_steps}. Is there anything else you'd like to know?" | |
| ] | |
| # Task aspects for template filling | |
| self.task_aspects = { | |
| "travel": ["destination", "budget", "duration", "accommodation", "transportation"], | |
| "shopping": ["product type", "price range", "features", "brands", "delivery options"], | |
| "technology": ["device specifications", "software requirements", "compatibility", "performance", "user interface"], | |
| "education": ["learning objectives", "resources", "schedule", "assessment methods", "prerequisites"], | |
| "finance": ["investment options", "risk tolerance", "time horizon", "financial goals", "tax implications"], | |
| "health": ["symptoms", "treatment options", "preventive measures", "specialists", "recovery timeline"], | |
| "career": ["job requirements", "application process", "interview preparation", "skill development", "networking"], | |
| "home": ["design elements", "materials", "budget constraints", "timeline", "contractor selection"] | |
| } | |
| # Recommendations for template filling | |
| self.recommendations = { | |
| "travel": [ | |
| "creating a detailed itinerary that balances sightseeing with relaxation", | |
| "booking accommodations in central locations to minimize travel time", | |
| "using a mix of public transportation and walking to explore the destination", | |
| "allocating buffer days in your schedule for unexpected discoveries", | |
| "researching local customs and phrases before your trip" | |
| ], | |
| "shopping": [ | |
| "comparing features across multiple brands before making a decision", | |
| "reading user reviews focusing on long-term reliability", | |
| "considering last year's model for better value", | |
| "checking return policies and warranty terms", | |
| "waiting for seasonal sales for significant discounts" | |
| ], | |
| "technology": [ | |
| "prioritizing future-proof specifications over current needs", | |
| "ensuring compatibility with your existing devices and software", | |
| "allocating more budget to critical components that affect performance", | |
| "considering open-source alternatives to proprietary solutions", | |
| "implementing a phased approach to system upgrades" | |
| ], | |
| "education": [ | |
| "creating a structured study plan with specific milestones", | |
| "using varied learning resources to reinforce concepts", | |
| "implementing spaced repetition techniques for better retention", | |
| "joining study groups or forums for collaborative learning", | |
| "scheduling regular self-assessments to identify knowledge gaps" | |
| ], | |
| "finance": [ | |
| "diversifying your portfolio across different asset classes", | |
| "automating regular contributions to your investment accounts", | |
| "rebalancing your portfolio annually to maintain your target allocation", | |
| "maximizing tax-advantaged accounts before investing in taxable accounts", | |
| "maintaining an emergency fund before making higher-risk investments" | |
| ], | |
| "health": [ | |
| "combining lifestyle modifications with medical treatments", | |
| "tracking relevant health metrics to monitor progress", | |
| "consulting specialists for comprehensive evaluation", | |
| "implementing gradual changes for sustainable results", | |
| "addressing root causes rather than just symptoms" | |
| ], | |
| "career": [ | |
| "tailoring your resume and cover letter for each application", | |
| "developing a personal brand that highlights your unique value proposition", | |
| "networking strategically within your target industry", | |
| "pursuing relevant certifications to validate your skills", | |
| "preparing specific examples that demonstrate your capabilities" | |
| ], | |
| "home": [ | |
| "focusing on high-impact improvements that add the most value", | |
| "getting multiple quotes from contractors for comparison", | |
| "creating a detailed project timeline with contingencies", | |
| "prioritizing structural integrity over aesthetic enhancements", | |
| "investing in quality materials for high-use areas" | |
| ] | |
| } | |
| # Advantages for template filling | |
| self.advantages = { | |
| "travel": [ | |
| "maximizing your experience while minimizing stress", | |
| "ensuring you see the most important sights while still having time to relax", | |
| "immersing yourself in the local culture more effectively", | |
| "saving money on unnecessary expenses", | |
| "avoiding common tourist pitfalls" | |
| ], | |
| "shopping": [ | |
| "ensuring you get the best value for your money", | |
| "avoiding buyer's remorse from hasty decisions", | |
| "finding the optimal balance between price and quality", | |
| "identifying products with the best longevity", | |
| "protecting yourself from potential issues down the line" | |
| ], | |
| "technology": [ | |
| "reducing the need for frequent upgrades", | |
| "ensuring smooth integration with your workflow", | |
| "optimizing performance for your specific use cases", | |
| "minimizing compatibility issues", | |
| "creating a scalable solution that grows with your needs" | |
| ], | |
| "education": [ | |
| "maintaining consistent progress toward your learning goals", | |
| "developing deeper understanding through multiple perspectives", | |
| "improving long-term retention of key concepts", | |
| "benefiting from collective knowledge and insights", | |
| "addressing weaknesses before they become problematic" | |
| ], | |
| "finance": [ | |
| "reducing risk while maintaining growth potential", | |
| "building wealth consistently through dollar-cost averaging", | |
| "maintaining your target risk profile as markets change", | |
| "minimizing tax burden on your investments", | |
| "ensuring financial stability during unexpected events" | |
| ], | |
| "health": [ | |
| "creating sustainable improvements rather than quick fixes", | |
| "objectively measuring your progress", | |
| "benefiting from specialized expertise", | |
| "building habits that last", | |
| "preventing recurrence of issues" | |
| ], | |
| "career": [ | |
| "increasing your chances of getting interview invitations", | |
| "standing out in a competitive job market", | |
| "accessing opportunities through personal connections", | |
| "demonstrating your commitment to professional growth", | |
| "providing concrete evidence of your capabilities" | |
| ], | |
| "home": [ | |
| "maximizing return on investment for your renovation budget", | |
| "ensuring fair pricing and quality workmanship", | |
| "managing expectations and reducing delays", | |
| "preventing costly repairs in the future", | |
| "ensuring durability in areas with high usage" | |
| ] | |
| } | |
| # Next steps for template filling | |
| self.next_steps = { | |
| "travel": [ | |
| "finalize your itinerary, book accommodations, and arrange transportation", | |
| "research local attractions, create a packing list, and notify your bank of travel plans", | |
| "download offline maps, make copies of important documents, and learn basic local phrases", | |
| "check visa requirements, get necessary vaccinations, and purchase travel insurance", | |
| "book priority attractions in advance and create a flexible daily schedule" | |
| ], | |
| "shopping": [ | |
| "create a comparison spreadsheet, read expert reviews, and check for upcoming sales", | |
| "visit stores to test products in person and ask about return policies", | |
| "check compatibility with your existing items and calculate total cost including accessories", | |
| "look for coupon codes, cashback opportunities, and loyalty program benefits", | |
| "verify warranty terms and availability of customer support" | |
| ], | |
| "technology": [ | |
| "create a detailed requirements document and research compatible solutions", | |
| "test demo versions, read technical documentation, and consult user forums", | |
| "develop an implementation plan with clear phases and milestones", | |
| "allocate budget for training and support, not just acquisition", | |
| "create backup procedures and contingency plans before making changes" | |
| ], | |
| "education": [ | |
| "create a structured study schedule and gather necessary learning materials", | |
| "set up a dedicated learning environment and eliminate potential distractions", | |
| "join relevant study groups and identify accountability partners", | |
| "schedule regular review sessions and practice assessments", | |
| "establish clear milestones and reward yourself for achieving them" | |
| ], | |
| "finance": [ | |
| "open necessary accounts and set up automatic contributions", | |
| "review and adjust your budget to accommodate your financial goals", | |
| "create a system for tracking expenses and monitoring investments", | |
| "schedule annual portfolio reviews and tax planning sessions", | |
| "develop a comprehensive financial plan with short and long-term objectives" | |
| ], | |
| "health": [ | |
| "schedule necessary appointments and create a tracking system for your health metrics", | |
| "modify your environment to support your health goals and reduce temptations", | |
| (Content truncated due to size limit. Use line ranges to read in chunks) |