SYMBOL INDEX (322 symbols across 55 files) FILE: community_usecase/Airbnb-MCP/Airbnb_MCP.py function construct_society (line 22) | async def construct_society( function main (line 65) | async def main(): FILE: community_usecase/Mcp_use_case/Content_curator.py function construct_society (line 24) | async def construct_society( function main (line 67) | async def main(): FILE: community_usecase/Notion-MCP/notion_manager.py function construct_society (line 23) | async def construct_society( function execute_notion_task (line 64) | async def execute_notion_task(society: OwlRolePlaying): function main (line 80) | async def main(): FILE: community_usecase/OWL Interview Preparation Assistant/app.py class StreamlitLogHandler (line 21) | class StreamlitLogHandler(logging.Handler): method __init__ (line 22) | def __init__(self, log_queue): method emit (line 26) | def emit(self, record): function display_conversation (line 148) | def display_conversation(chat_history): function display_metrics (line 181) | def display_metrics(duration, token_count, num_rounds): function get_logs (line 215) | def get_logs(): function main (line 225) | def main(): FILE: community_usecase/OWL Interview Preparation Assistant/config/prompts.py function get_system_prompt (line 1) | def get_system_prompt() -> str: function get_company_research_prompt (line 33) | def get_company_research_prompt(company_name: str) -> str: function get_question_generator_prompt (line 42) | def get_question_generator_prompt(job_role: str, company_name: str) -> str: function get_preparation_plan_prompt (line 51) | def get_preparation_plan_prompt(job_role: str, company_name: str) -> str: FILE: community_usecase/OWL Interview Preparation Assistant/logging_utils.py class LogQueueSingleton (line 11) | class LogQueueSingleton: method get_instance (line 15) | def get_instance(cls): function log_tool_usage (line 21) | def log_tool_usage(func): function log_tool_usage_sync (line 46) | def log_tool_usage_sync(func): function sanitize_args (line 70) | def sanitize_args(args): function sanitize_value (line 77) | def sanitize_value(value): class LoggingToolkitWrapper (line 90) | class LoggingToolkitWrapper: method __init__ (line 94) | def __init__(self, toolkit): method __getattr__ (line 99) | def __getattr__(self, name): function wrap_toolkits (line 128) | def wrap_toolkits(toolkits_list): function enhanced_run_society (line 139) | def enhanced_run_society(society, verbose=True): function sanitize_log (line 211) | def sanitize_log(log_message): class EnhancedStreamlitLogHandler (line 230) | class EnhancedStreamlitLogHandler(logging.Handler): method __init__ (line 231) | def __init__(self, log_queue): method emit (line 236) | def emit(self, record): function patch_owl_logging (line 246) | def patch_owl_logging(): FILE: community_usecase/OWL Interview Preparation Assistant/main.py function run_society_with_strict_limit (line 43) | def run_society_with_strict_limit(society, round_limit=5, progress_callb... function construct_interview_assistant (line 94) | def construct_interview_assistant( function research_company (line 196) | def research_company( function generate_interview_questions (line 234) | def generate_interview_questions( function create_interview_prep_plan (line 282) | def create_interview_prep_plan( FILE: community_usecase/PHI_Sanitization_Summarization_and_Article_Writing/project.py function construct_society (line 26) | def construct_society(question: str) -> RolePlaying: function summarize_section (line 80) | def summarize_section(): function write_and_refine_article_section (line 96) | def write_and_refine_article_section(): function sanitize_data_section (line 116) | def sanitize_data_section(): function main (line 132) | def main(): FILE: community_usecase/Puppeteer MCP/demo.py function construct_society (line 26) | async def construct_society(task: str, tools: list[FunctionTool]) -> Owl... function run_task (line 59) | async def run_task(task: str) -> str: function main (line 87) | def main(): FILE: community_usecase/Whatsapp-MCP/app.py function construct_society (line 95) | async def construct_society( function main (line 139) | async def main(): FILE: community_usecase/a_share_investment_agent_camel/src/agents/base_agent.py class BaseAgent (line 25) | class BaseAgent(ABC): method __init__ (line 28) | def __init__(self, role_agent: ChatAgent, show_reasoning: bool = False... method log_message (line 41) | def log_message(self, message: BaseMessage) -> None: method format_data (line 57) | def format_data(self, data: Dict[str, Any]) -> str: method parse_json_response (line 68) | def parse_json_response(self, response: str) -> Dict[str, Any]: method process (line 112) | def process(self, data: Dict[str, Any]) -> Dict[str, Any]: method generate_human_message (line 123) | def generate_human_message(self, content: str) -> BaseMessage: method generate_ai_message (line 134) | def generate_ai_message(self, content: str) -> BaseMessage: FILE: community_usecase/a_share_investment_agent_camel/src/agents/debate_room.py class DebateRoomAgent (line 15) | class DebateRoomAgent(BaseAgent): method __init__ (line 18) | def __init__(self, show_reasoning: bool = False, model_name: str = "ge... method process (line 29) | def process(self, data: Dict[str, Any]) -> Dict[str, Any]: method _create_debate_signal (line 118) | def _create_debate_signal(self, analysis_result: Dict[str, Any], ticke... method _process_data_with_agent (line 156) | def _process_data_with_agent(self, prompt: str, data: Dict[str, Any]) ... FILE: community_usecase/a_share_investment_agent_camel/src/agents/fundamentals_analyst.py class FundamentalsAnalystAgent (line 15) | class FundamentalsAnalystAgent(BaseAgent): method __init__ (line 18) | def __init__(self, show_reasoning: bool = False, model_name: str = "ge... method process (line 29) | def process(self, data: Dict[str, Any]) -> Dict[str, Any]: method _create_fundamentals_signal (line 103) | def _create_fundamentals_signal(self, analysis_result: Dict[str, Any],... method _process_data_with_agent (line 131) | def _process_data_with_agent(self, prompt: str, data: Dict[str, Any]) ... FILE: community_usecase/a_share_investment_agent_camel/src/agents/investment_agent.py class InvestmentAgent (line 16) | class InvestmentAgent(BaseAgent): method __init__ (line 19) | def __init__(self, show_reasoning: bool = False, model_name: str = "ge... method process (line 30) | def process(self, data: Dict[str, Any]) -> Dict[str, Any]: method _process_data_with_agent (line 107) | def _process_data_with_agent(self, prompt: str, data: Dict[str, Any]) ... method generate_human_message (line 136) | def generate_human_message(self, content: str) -> BaseMessage: method parse_json_response (line 147) | def parse_json_response(self, response: str) -> Dict[str, Any]: method _extract_recommendation (line 175) | def _extract_recommendation(self, analysis: str) -> Dict[str, Any]: method _determine_rating (line 240) | def _determine_rating(self, analysis: str) -> str: method _analyze_financial_trends (line 260) | def _analyze_financial_trends(self, historical_data: List[Dict[str, An... FILE: community_usecase/a_share_investment_agent_camel/src/agents/market_data_agent.py class MarketDataAgent (line 18) | class MarketDataAgent(BaseAgent): method __init__ (line 21) | def __init__(self, show_reasoning: bool = False, model_name: str = "ge... method process (line 32) | def process(self, data: Dict[str, Any]) -> Dict[str, Any]: method _get_historical_data (line 106) | def _get_historical_data(self, ticker: str, start_date: str, end_date:... method _calculate_technical_indicators (line 193) | def _calculate_technical_indicators(self, historical_data: Dict[str, A... method _prepare_summary_prompt (line 270) | def _prepare_summary_prompt(self, ticker: str, stock_data: StockData) ... method _process_data_with_agent (line 304) | def _process_data_with_agent(self, prompt: str, data: Dict[str, Any]) ... method _get_financial_data (line 342) | def _get_financial_data(self, ticker: str) -> Dict[str, Any]: method _get_historical_financial_data (line 457) | def _get_historical_financial_data(self, ticker: str, num_quarters: in... method _calculate_financial_trends (line 573) | def _calculate_financial_trends(self, historical_data: List[Dict[str, ... method _get_news_data (line 629) | def _get_news_data(self, ticker: str, num_of_news: int = 5) -> Dict[st... FILE: community_usecase/a_share_investment_agent_camel/src/agents/portfolio_manager.py class PortfolioManagerAgent (line 16) | class PortfolioManagerAgent(BaseAgent): method __init__ (line 19) | def __init__(self, show_reasoning: bool = False, model_name: str = "ge... method process (line 30) | def process(self, data: Dict[str, Any]) -> Dict[str, Any]: method _get_latest_price (line 146) | def _get_latest_price(self, historical_data: Dict[str, Any]) -> float: method _create_trading_decision (line 168) | def _create_trading_decision(self, analysis_result: Dict[str, Any], ag... method _process_data_with_agent (line 201) | def _process_data_with_agent(self, prompt: str, data: Dict[str, Any]) ... FILE: community_usecase/a_share_investment_agent_camel/src/agents/researcher_bear.py class ResearcherBearAgent (line 15) | class ResearcherBearAgent(BaseAgent): method __init__ (line 18) | def __init__(self, show_reasoning: bool = False, model_name: str = "ge... method process (line 29) | def process(self, data: Dict[str, Any]) -> Dict[str, Any]: method _create_research_report (line 119) | def _create_research_report(self, analysis_result: Dict[str, Any], tic... method _process_data_with_agent (line 148) | def _process_data_with_agent(self, prompt: str, data: Dict[str, Any]) ... FILE: community_usecase/a_share_investment_agent_camel/src/agents/researcher_bull.py class ResearcherBullAgent (line 15) | class ResearcherBullAgent(BaseAgent): method __init__ (line 18) | def __init__(self, show_reasoning: bool = False, model_name: str = "ge... method process (line 29) | def process(self, data: Dict[str, Any]) -> Dict[str, Any]: method _create_research_report (line 119) | def _create_research_report(self, analysis_result: Dict[str, Any], tic... method _process_data_with_agent (line 148) | def _process_data_with_agent(self, prompt: str, data: Dict[str, Any]) ... FILE: community_usecase/a_share_investment_agent_camel/src/agents/risk_manager.py class RiskManagerAgent (line 15) | class RiskManagerAgent(BaseAgent): method __init__ (line 18) | def __init__(self, show_reasoning: bool = False, model_name: str = "ge... method process (line 29) | def process(self, data: Dict[str, Any]) -> Dict[str, Any]: method _create_risk_analysis (line 120) | def _create_risk_analysis(self, analysis_result: Dict[str, Any]) -> Ri... method _process_data_with_agent (line 145) | def _process_data_with_agent(self, prompt: str, data: Dict[str, Any]) ... FILE: community_usecase/a_share_investment_agent_camel/src/agents/sentiment_analyst.py class SentimentAnalystAgent (line 15) | class SentimentAnalystAgent(BaseAgent): method __init__ (line 18) | def __init__(self, show_reasoning: bool = False, model_name: str = "ge... method process (line 29) | def process(self, data: Dict[str, Any]) -> Dict[str, Any]: method _create_sentiment_signal (line 104) | def _create_sentiment_signal(self, analysis_result: Dict[str, Any], st... method _process_data_with_agent (line 132) | def _process_data_with_agent(self, prompt: str, data: Dict[str, Any]) ... FILE: community_usecase/a_share_investment_agent_camel/src/agents/technical_analyst.py class TechnicalAnalystAgent (line 18) | class TechnicalAnalystAgent(BaseAgent): method __init__ (line 21) | def __init__(self, show_reasoning: bool = False, model_name: str = "ge... method process (line 32) | def process(self, data: Dict[str, Any]) -> Dict[str, Any]: method _prepare_analysis_prompt (line 106) | def _prepare_analysis_prompt(self, stock_data: StockData) -> str: method _create_technical_signal (line 139) | def _create_technical_signal(self, result: Dict[str, Any], stock_data:... method _process_data_with_agent (line 164) | def _process_data_with_agent(self, prompt: str, data: Dict[str, Any]) ... FILE: community_usecase/a_share_investment_agent_camel/src/agents/valuation_analyst.py class ValuationAnalystAgent (line 15) | class ValuationAnalystAgent(BaseAgent): method __init__ (line 18) | def __init__(self, show_reasoning: bool = False, model_name: str = "ge... method process (line 29) | def process(self, data: Dict[str, Any]) -> Dict[str, Any]: method _create_valuation_signal (line 113) | def _create_valuation_signal(self, analysis_result: Dict[str, Any], st... method _process_data_with_agent (line 143) | def _process_data_with_agent(self, prompt: str, data: Dict[str, Any]) ... FILE: community_usecase/a_share_investment_agent_camel/src/main.py function run_investment_analysis (line 41) | def run_investment_analysis( function test (line 227) | def test(ticker: str = "000001", model_name: str = "gemini"): function main (line 278) | def main(): FILE: community_usecase/a_share_investment_agent_camel/src/models.py class StockData (line 10) | class StockData(BaseModel): class AnalysisSignal (line 19) | class AnalysisSignal(BaseModel): class DateTimeEncoder (line 28) | class DateTimeEncoder(json.JSONEncoder): method default (line 30) | def default(self, obj): class TradingDecision (line 36) | class TradingDecision(BaseModel): method __init__ (line 45) | def __init__(self, **data): method dict (line 50) | def dict(self): class Portfolio (line 58) | class Portfolio(BaseModel): method update_total_value (line 66) | def update_total_value(self): class RiskAnalysis (line 71) | class RiskAnalysis(BaseModel): class ResearchReport (line 81) | class ResearchReport(BaseModel): FILE: community_usecase/a_share_investment_agent_camel/src/roles.py function get_model_config (line 151) | def get_model_config(model_name: str = "gemini") -> tuple: function create_role_agent (line 194) | def create_role_agent(role: str, model_name: str = "gemini") -> ChatAgent: FILE: community_usecase/a_share_investment_agent_camel/src/tools/api.py function get_price_data (line 12) | def get_price_data(ticker: str, start_date: str, end_date: str) -> Optio... FILE: community_usecase/a_share_investment_agent_camel/src/tools/data_helper.py function get_stock_data (line 13) | def get_stock_data(ticker: str, start_date: str, end_date: str) -> pd.Da... function get_fundamental_data (line 49) | def get_fundamental_data(ticker: str) -> Dict[str, Any]: function get_stock_news (line 136) | def get_stock_news(ticker: str, num_of_news: int = 5) -> List[Dict[str, ... function calculate_technical_indicators (line 186) | def calculate_technical_indicators(df: pd.DataFrame) -> Dict[str, Any]: FILE: community_usecase/a_share_investment_agent_camel/src/utils/logging_utils.py function setup_logger (line 10) | def setup_logger(name: str, log_level: int = logging.INFO, log_dir: str ... class OutputLogger (line 57) | class OutputLogger: method __init__ (line 61) | def __init__(self, filename: Optional[str] = None): method write (line 80) | def write(self, message): method flush (line 87) | def flush(self): method close (line 93) | def close(self): method __del__ (line 98) | def __del__(self): FILE: community_usecase/cooking-assistant/run_gpt4o.py function construct_cooking_society (line 49) | def construct_cooking_society(task: str) -> RolePlaying: function analyze_chat_history (line 115) | def analyze_chat_history(chat_history): function run_cooking_companion (line 165) | def run_cooking_companion(): FILE: community_usecase/excel_analyzer/data_analyzer_en.py class ExcelRolePalying (line 44) | class ExcelRolePalying(OwlRolePlaying): method _construct_gaia_sys_msgs (line 45) | def _construct_gaia_sys_msgs(self): function run_society (line 124) | def run_society( function construct_society (line 188) | def construct_society(question: str) -> ExcelRolePalying: function main (line 241) | def main(): FILE: community_usecase/excel_analyzer/data_analyzer_zh.py class ExcelRolePalying (line 44) | class ExcelRolePalying(OwlRolePlaying): method _construct_gaia_sys_msgs (line 45) | def _construct_gaia_sys_msgs(self): function run_society (line 160) | def run_society( function construct_society (line 224) | def construct_society(question: str) -> ExcelRolePalying: function main (line 283) | def main(): FILE: community_usecase/learning-assistant/run_gpt4o.py function construct_learning_society (line 47) | def construct_learning_society(task: str) -> RolePlaying: function analyze_chat_history (line 119) | def analyze_chat_history(chat_history): function run_learning_companion (line 169) | def run_learning_companion(task: str = None): FILE: community_usecase/qwen3_mcp/run_mcp_qwen3.py function construct_society (line 40) | async def construct_society( function create_md_file (line 87) | def create_md_file(task: str) -> str: function write_to_md (line 116) | def write_to_md(filename: str, content: Dict[str, Any]) -> None: function run_society_with_formatted_output (line 146) | async def run_society_with_formatted_output(society: OwlRolePlaying, md_... function main (line 264) | async def main(): FILE: community_usecase/resume-analysis-assistant/run_mcp.py function construct_society (line 72) | async def construct_society( function main (line 139) | async def main(): FILE: community_usecase/stock-analysis/agent/sec_agent.py function create_sec_agent (line 13) | def create_sec_agent() -> ChatAgent: function get_sec_summary_for_company (line 32) | def get_sec_summary_for_company(company_stock_name: str) -> str: FILE: community_usecase/stock-analysis/prompts.py function get_system_prompt (line 5) | def get_system_prompt() -> str: function get_sec_system_prompt (line 43) | def get_sec_system_prompt() -> str: FILE: community_usecase/stock-analysis/run.py function run_society_with_strict_limit (line 56) | def run_society_with_strict_limit(society, round_limit=5, progress_callb... function construct_stock_analysis_society (line 108) | def construct_stock_analysis_society( company_name: str) -> RolePlaying: function save_chat_history (line 187) | def save_chat_history(chat_history: List[dict[Any, Any]], company_name: ... function parse_arguments (line 197) | def parse_arguments() -> Namespace: function init_agentops (line 205) | def init_agentops(use_agentops) -> bool: function generate_stock_investment_report (line 220) | def generate_stock_investment_report( FILE: community_usecase/stock-analysis/tools/sec_tools.py class SECToolkit (line 10) | class SECToolkit(BaseToolkit): method fetch_10k_filing (line 29) | def fetch_10k_filing(self, stock_name: str) -> Optional[str]: method fetch_10q_filing (line 104) | def fetch_10q_filing(self, stock_name: str) -> Optional[str]: method get_tools (line 174) | def get_tools(self) -> List[FunctionTool]: FILE: community_usecase/virtual_fitting_room/run_gpt4o.py function construct_society (line 56) | def construct_society(question: str) -> RolePlaying: function main (line 144) | def main(): FILE: examples/run.py function construct_agent_list (line 45) | def construct_agent_list() -> List[Dict[str, Any]]: function construct_workforce (line 173) | def construct_workforce() -> Workforce: function main (line 217) | def main(): FILE: examples/run_claude.py function construct_agent_list (line 54) | def construct_agent_list() -> List[Dict[str, Any]]: function construct_workforce (line 182) | def construct_workforce() -> Workforce: function main (line 228) | def main(): FILE: examples/run_deepseek.py function construct_agent_list (line 52) | def construct_agent_list() -> List[Dict[str, Any]]: function construct_workforce (line 150) | def construct_workforce() -> Workforce: function main (line 196) | def main(): FILE: examples/run_gemini.py function construct_agent_list (line 54) | def construct_agent_list() -> List[Dict[str, Any]]: function construct_workforce (line 182) | def construct_workforce() -> Workforce: function main (line 228) | def main(): FILE: examples/run_groq.py function construct_agent_list (line 59) | def construct_agent_list() -> List[Dict[str, Any]]: function construct_workforce (line 180) | def construct_workforce() -> Workforce: function main (line 227) | def main(): FILE: examples/run_qwen.py function construct_agent_list (line 54) | def construct_agent_list() -> List[Dict[str, Any]]: function construct_workforce (line 183) | def construct_workforce() -> Workforce: function main (line 229) | def main(): FILE: examples/run_vllm.py function construct_agent_list (line 73) | def construct_agent_list() -> List[Dict[str, Any]]: function construct_workforce (line 208) | def construct_workforce() -> Workforce: function main (line 263) | def main(): FILE: licenses/update_license.py function fine_license_start_line (line 22) | def fine_license_start_line(lines: List[str], start_with: str) -> int: function find_license_end_line (line 29) | def find_license_end_line(lines: List[str], start_with: str) -> int: function update_license_in_file (line 36) | def update_license_in_file( function update_license_in_directory (line 76) | def update_license_in_directory( FILE: owl/utils/common.py function extract_pattern (line 25) | def extract_pattern(content: str, pattern: str) -> Optional[str]: FILE: owl/utils/document_toolkit.py class DocumentProcessingToolkit (line 41) | class DocumentProcessingToolkit(BaseToolkit): method __init__ (line 47) | def __init__( method extract_document_content (line 61) | def extract_document_content(self, document_path: str) -> Tuple[bool, ... method _is_webpage (line 153) | def _is_webpage(self, url: str) -> bool: method _extract_content_with_chunkr (line 183) | async def _extract_content_with_chunkr( method _extract_webpage_content (line 221) | def _extract_webpage_content(self, url: str) -> str: method _extract_webpage_content_with_crawl4ai (line 246) | def _extract_webpage_content_with_crawl4ai(self, url: str) -> str: method _async_extract_webpage_content_with_crawl4ai (line 255) | async def _async_extract_webpage_content_with_crawl4ai(self, url: str)... method _download_file (line 271) | def _download_file(self, url: str): method _get_formatted_time (line 289) | def _get_formatted_time(self) -> str: method _unzip_file (line 294) | def _unzip_file(self, zip_path: str) -> List[str]: method get_tools (line 314) | def get_tools(self) -> List[FunctionTool]: FILE: owl/utils/enhanced_role_playing.py class OwlRolePlaying (line 31) | class OwlRolePlaying(RolePlaying): method __init__ (line 32) | def __init__(self, **kwargs): method _init_agents (line 68) | def _init_agents( method _construct_gaia_sys_msgs (line 182) | def _construct_gaia_sys_msgs(self): method step (line 255) | def step( method astep (line 325) | async def astep( class OwlGAIARolePlaying (line 394) | class OwlGAIARolePlaying(OwlRolePlaying): method __init__ (line 395) | def __init__(self, **kwargs): method step (line 398) | def step( function run_society (line 481) | def run_society( function arun_society (line 546) | async def arun_society( FILE: owl/utils/gaia.py class GAIABenchmark (line 37) | class GAIABenchmark(BaseBenchmark): method __init__ (line 49) | def __init__( method download (line 65) | def download(self): method _check_task_completed (line 76) | def _check_task_completed(self, task_id: str) -> bool: method dump_tasks (line 82) | def dump_tasks(self, save_path: str, datas): method load (line 101) | def load(self, force_download=False): method train (line 154) | def train(self): method run (line 158) | def run( method _prepare_task (line 285) | def _prepare_task(self, task: Dict[str, Any]) -> Tuple[bool, str]: method _create_task (line 316) | def _create_task(self, task: Dict[str, Any]) -> Task: method _generate_summary (line 327) | def _generate_summary(self) -> Dict[str, Any]: method question_scorer (line 337) | def question_scorer(self, model_answer: str, ground_truth: str) -> bool: method normalize_number_str (line 390) | def normalize_number_str(self, number_str: str) -> float: method split_string (line 399) | def split_string(self, s: str, char_list: Optional[List[str]] = None) ... method normalize_str (line 413) | def normalize_str(self, input_str, remove_punct=True) -> str: FILE: owl/webapp.py function setup_logging (line 33) | def setup_logging(): function log_reader_thread (line 84) | def log_reader_thread(log_file): function get_latest_logs (line 102) | def get_latest_logs(max_lines=100, queue_source=None): function validate_input (line 303) | def validate_input(question: str) -> bool: function run_owl (line 318) | def run_owl(question: str, example_module: str) -> Tuple[str, str, str]: function update_module_description (line 439) | def update_module_description(module_name: str) -> str: function init_env_file (line 448) | def init_env_file(): function load_env_vars (line 458) | def load_env_vars(): function save_env_vars (line 504) | def save_env_vars(env_vars): function add_env_var (line 532) | def add_env_var(key, value, from_frontend=True): function delete_env_var (line 563) | def delete_env_var(key): function is_api_related (line 588) | def is_api_related(key: str) -> bool: function get_api_guide (line 619) | def get_api_guide(key: str) -> str: function update_env_table (line 651) | def update_env_table(): function save_env_table_changes (line 671) | def save_env_table_changes(data): function get_env_var_value (line 768) | def get_env_var_value(key): function create_ui (line 781) | def create_ui(): function main (line 1287) | def main(): FILE: owl/webapp_backup.py function format_chat_history (line 307) | def format_chat_history(chat_history: List[Dict[str, str]]) -> List[List... function validate_input (line 331) | def validate_input(question: str) -> bool: function run_owl (line 346) | def run_owl( function update_module_description (line 445) | def update_module_description(module_name: str) -> str: function init_env_file (line 451) | def init_env_file(): function load_env_vars (line 461) | def load_env_vars(): function save_env_vars (line 478) | def save_env_vars(env_vars): function add_env_var (line 496) | def add_env_var(key, value): function delete_env_var (line 511) | def delete_env_var(key): function mask_sensitive_value (line 529) | def mask_sensitive_value(key: str, value: str) -> str: function update_env_table (line 551) | def update_env_table(): function create_ui (line 559) | def create_ui(): function main (line 789) | def main(): FILE: owl/webapp_jp.py function setup_logging (line 33) | def setup_logging(): function log_reader_thread (line 84) | def log_reader_thread(log_file): function get_latest_logs (line 102) | def get_latest_logs(max_lines=100, queue_source=None): function validate_input (line 299) | def validate_input(question: str) -> bool: function run_owl (line 314) | def run_owl(question: str, example_module: str) -> Tuple[str, str, str]: function update_module_description (line 437) | def update_module_description(module_name: str) -> str: function init_env_file (line 446) | def init_env_file(): function load_env_vars (line 456) | def load_env_vars(): function save_env_vars (line 502) | def save_env_vars(env_vars): function add_env_var (line 530) | def add_env_var(key, value, from_frontend=True): function delete_env_var (line 561) | def delete_env_var(key): function is_api_related (line 586) | def is_api_related(key: str) -> bool: function get_api_guide (line 617) | def get_api_guide(key: str) -> str: function update_env_table (line 645) | def update_env_table(): function save_env_table_changes (line 665) | def save_env_table_changes(data): function get_env_var_value (line 760) | def get_env_var_value(key): function create_ui (line 773) | def create_ui(): function main (line 1279) | def main(): FILE: owl/webapp_zh.py function setup_logging (line 33) | def setup_logging(): function log_reader_thread (line 84) | def log_reader_thread(log_file): function get_latest_logs (line 102) | def get_latest_logs(max_lines=100, queue_source=None): function validate_input (line 302) | def validate_input(question: str) -> bool: function run_owl (line 317) | def run_owl(question: str, example_module: str) -> Tuple[str, str, str]: function update_module_description (line 422) | def update_module_description(module_name: str) -> str: function init_env_file (line 431) | def init_env_file(): function load_env_vars (line 441) | def load_env_vars(): function save_env_vars (line 487) | def save_env_vars(env_vars): function add_env_var (line 515) | def add_env_var(key, value, from_frontend=True): function delete_env_var (line 546) | def delete_env_var(key): function is_api_related (line 571) | def is_api_related(key: str) -> bool: function get_api_guide (line 602) | def get_api_guide(key: str) -> str: function update_env_table (line 634) | def update_env_table(): function save_env_table_changes (line 654) | def save_env_table_changes(data): function get_env_var_value (line 745) | def get_env_var_value(key): function create_ui (line 758) | def create_ui(): function main (line 1256) | def main():