qwen-sci 0.2.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qwen_sci-0.2.2.dist-info/METADATA +492 -0
- qwen_sci-0.2.2.dist-info/RECORD +549 -0
- qwen_sci-0.2.2.dist-info/WHEEL +4 -0
- qwen_sci-0.2.2.dist-info/entry_points.txt +6 -0
- qwen_sci-0.2.2.dist-info/licenses/LICENSE +21 -0
- src/1.txt +1 -0
- src/__init__.py +1 -0
- src/__main__.py +5 -0
- src/agents/__init__.py +1 -0
- src/agents/experiment_design_agent/__init__.py +268 -0
- src/agents/experiment_design_agent/artifacts.py +747 -0
- src/agents/experiment_design_agent/cache.py +319 -0
- src/agents/experiment_design_agent/completeness.py +130 -0
- src/agents/experiment_design_agent/contracts.py +771 -0
- src/agents/experiment_design_agent/counterexample_analyzer.py +187 -0
- src/agents/experiment_design_agent/design_evidence_paper_screener.py +470 -0
- src/agents/experiment_design_agent/discipline_catalog.py +178 -0
- src/agents/experiment_design_agent/evidence_cards.py +338 -0
- src/agents/experiment_design_agent/evidence_planner.py +452 -0
- src/agents/experiment_design_agent/formal_reasoning_planner.py +884 -0
- src/agents/experiment_design_agent/fulltext_acquisition.py +863 -0
- src/agents/experiment_design_agent/idea_adapter.py +100 -0
- src/agents/experiment_design_agent/idea_intake.py +87 -0
- src/agents/experiment_design_agent/llm_json.py +328 -0
- src/agents/experiment_design_agent/orchestrator.py +1220 -0
- src/agents/experiment_design_agent/reasoning_context.py +183 -0
- src/agents/experiment_design_agent/reasoning_validation.py +546 -0
- src/agents/experiment_design_agent/run.py +481 -0
- src/agents/experiment_design_agent/run_logging.py +292 -0
- src/agents/experiment_design_agent/scope_gate.py +198 -0
- src/agents/experiment_design_agent/study_type_composer.py +1360 -0
- src/agents/experiment_design_agent/survey_evidence.py +1381 -0
- src/agents/experiment_design_agent/template_router.py +195 -0
- src/agents/experiment_design_agent/variable_claim_extractor.py +93 -0
- src/agents/idea_agent/__init__.py +1 -0
- src/agents/idea_agent/agent/__init__.py +6 -0
- src/agents/idea_agent/agent/artifacts.py +308 -0
- src/agents/idea_agent/agent/base.py +122 -0
- src/agents/idea_agent/agent/ligagent.py +488 -0
- src/agents/idea_agent/agent/mcts.py +2060 -0
- src/agents/idea_agent/agent/prompts/__init__.py +48 -0
- src/agents/idea_agent/agent/prompts/advanced_analysis.py +235 -0
- src/agents/idea_agent/agent/prompts/algorithm_alignment.py +55 -0
- src/agents/idea_agent/agent/prompts/algorithm_structuring.py +48 -0
- src/agents/idea_agent/agent/prompts/component_extraction.py +62 -0
- src/agents/idea_agent/agent/prompts/component_novelty_evaluation.py +54 -0
- src/agents/idea_agent/agent/prompts/experiment_findings_extraction.py +39 -0
- src/agents/idea_agent/agent/prompts/idea_fusion.py +295 -0
- src/agents/idea_agent/agent/prompts/idea_introduction.py +30 -0
- src/agents/idea_agent/agent/prompts/idea_result_alignment.py +39 -0
- src/agents/idea_agent/agent/prompts/input_interpreter.py +52 -0
- src/agents/idea_agent/agent/prompts/keynote_ops.py +78 -0
- src/agents/idea_agent/agent/prompts/mcts_evaluation.py +235 -0
- src/agents/idea_agent/agent/prompts/mcts_generation.py +140 -0
- src/agents/idea_agent/agent/prompts/mechanism_commit_query.py +99 -0
- src/agents/idea_agent/agent/prompts/memory_selection.py +0 -0
- src/agents/idea_agent/agent/prompts/prompt_modes.py +16 -0
- src/agents/idea_agent/agent/prompts/rag_query.py +34 -0
- src/agents/idea_agent/agent/prompts/re_analysis_replan.py +48 -0
- src/agents/idea_agent/agent/prompts/reference_grounding.py +34 -0
- src/agents/idea_agent/agent/prompts/root_domain_classification.py +32 -0
- src/agents/idea_agent/agent/prompts/scientific_debate.py +88 -0
- src/agents/idea_agent/agent/prompts/scientific_materialization.py +45 -0
- src/agents/idea_agent/agent/prompts/skill_instantiation.py +193 -0
- src/agents/idea_agent/agent/prompts/theory_transfer_query.py +93 -0
- src/agents/idea_agent/agent/prompts/topic_background.py +15 -0
- src/agents/idea_agent/agent/skills/DEFAULT_SKILL_TEMPLATES.json +263 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/alternative-path-contrast/SKILL.md +40 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/alternative-path-contrast/references/contrast_patterns.md +22 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/feedback-closed-loop/SKILL.md +40 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/feedback-closed-loop/references/mechanism_cards.md +24 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/hierarchical-decomposition/SKILL.md +39 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/hierarchical-decomposition/references/hierarchy_patterns.md +22 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/mechanism-commit-innovation/SKILL.md +39 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/mechanism-commit-innovation/references/mechanism_commit_patterns.md +24 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/multi-scale-coordinator/SKILL.md +39 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/multi-scale-coordinator/references/coordination_patterns.md +22 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/speculative-execution-with-repair/SKILL.md +41 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/speculative-execution-with-repair/references/speculation_patterns.md +22 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/surgical-modularity/SKILL.md +39 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/surgical-modularity/references/modularity_patterns.md +22 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/theory-transfer-injection/SKILL.md +40 -0
- src/agents/idea_agent/agent/skills/edit_operator_skills/theory-transfer-injection/references/transfer_patterns.md +24 -0
- src/agents/idea_agent/example/idea_result.json +900 -0
- src/agents/idea_agent/run.py +276 -0
- src/agents/idea_agent/tests/test_advanced_analysis_contract.py +90 -0
- src/agents/idea_agent/tests/test_gap_hypothesis_bridge.py +166 -0
- src/agents/idea_agent/tests/test_idea_debate.py +480 -0
- src/agents/idea_agent/tests/test_idea_result_v5.py +99 -0
- src/agents/idea_agent/tests/test_idea_synthesis.py +92 -0
- src/agents/idea_agent/tests/test_mature_idea_sources.py +27 -0
- src/agents/idea_agent/tests/test_multimodal_idea_integration.py +386 -0
- src/agents/idea_agent/tests/test_profile_materialization_and_scoring.py +219 -0
- src/agents/idea_agent/tests/test_profile_native_skill_rendering.py +122 -0
- src/agents/idea_agent/tests/test_result_persistence.py +183 -0
- src/agents/idea_agent/tests/test_scientific_intervention_profiles.py +241 -0
- src/agents/idea_agent/tests/test_scientific_rubric_and_prompts.py +559 -0
- src/agents/idea_agent/tests/test_strict_json_object_responses.py +48 -0
- src/agents/idea_agent/utils/core/__init__.py +1 -0
- src/agents/idea_agent/utils/core/ablation_inputs.py +60 -0
- src/agents/idea_agent/utils/core/chat_errors.py +95 -0
- src/agents/idea_agent/utils/core/chat_router.py +130 -0
- src/agents/idea_agent/utils/core/chat_transport.py +188 -0
- src/agents/idea_agent/utils/core/config_loader.py +166 -0
- src/agents/idea_agent/utils/core/json_utils.py +28 -0
- src/agents/idea_agent/utils/core/logger.py +287 -0
- src/agents/idea_agent/utils/core/progress.py +58 -0
- src/agents/idea_agent/utils/core/response_parsing.py +57 -0
- src/agents/idea_agent/utils/core/run_inputs.py +198 -0
- src/agents/idea_agent/utils/mcts/__init__.py +1 -0
- src/agents/idea_agent/utils/mcts/component_novelty.py +342 -0
- src/agents/idea_agent/utils/mcts/defect_registry.py +302 -0
- src/agents/idea_agent/utils/mcts/idea_routes.py +61 -0
- src/agents/idea_agent/utils/mcts/idea_taste_presets.py +312 -0
- src/agents/idea_agent/utils/mcts/mcts_helpers.py +738 -0
- src/agents/idea_agent/utils/mcts/mcts_runtime.py +3000 -0
- src/agents/idea_agent/utils/mcts/scientific_intervention_ontology.py +1561 -0
- src/agents/idea_agent/utils/mcts/scientific_rubric.py +211 -0
- src/agents/idea_agent/utils/mcts/skill_parsing.py +92 -0
- src/agents/idea_agent/utils/papers/__init__.py +1 -0
- src/agents/idea_agent/utils/papers/paper_graph_vector_store.py +499 -0
- src/agents/idea_agent/utils/papers/paper_repository.py +372 -0
- src/agents/idea_agent/utils/prompting/__init__.py +1 -0
- src/agents/idea_agent/utils/prompting/prompt_views.py +637 -0
- src/agents/idea_agent/utils/workflow/__init__.py +1 -0
- src/agents/idea_agent/utils/workflow/advanced_analysis_contract.py +244 -0
- src/agents/idea_agent/utils/workflow/gap_hypothesis_bridge.py +461 -0
- src/agents/idea_agent/utils/workflow/idea_contract.py +426 -0
- src/agents/idea_agent/utils/workflow/idea_debate.py +1238 -0
- src/agents/idea_agent/utils/workflow/idea_diversity.py +163 -0
- src/agents/idea_agent/utils/workflow/idea_fusion.py +889 -0
- src/agents/idea_agent/utils/workflow/idea_helpers.py +478 -0
- src/agents/idea_agent/utils/workflow/idea_portfolio.py +422 -0
- src/agents/idea_agent/utils/workflow/idea_synthesis.py +482 -0
- src/agents/idea_agent/utils/workflow/ligagent_flow.py +581 -0
- src/agents/idea_agent/utils/workflow/ligagent_handlers.py +1836 -0
- src/agents/idea_agent/utils/workflow/ligagent_helpers.py +1331 -0
- src/agents/idea_agent/utils/workflow/ligagent_utils.py +322 -0
- src/agents/idea_agent/utils/workflow/mature_idea_sources.py +648 -0
- src/agents/idea_agent/utils/workflow/multimodal_data_anchoring.py +578 -0
- src/agents/idea_agent/utils/workflow/result_persistence.py +774 -0
- src/agents/idea_agent/utils/workflow/stage_contract.py +76 -0
- src/agents/idea_agent/utils/workflow/workflow_runtime.py +288 -0
- src/agents/research_plan_author/__init__.py +50 -0
- src/agents/research_plan_author/artifacts.py +270 -0
- src/agents/research_plan_author/authoring_blueprint.py +1246 -0
- src/agents/research_plan_author/bibtex_renderer.py +252 -0
- src/agents/research_plan_author/contract_repair.py +131 -0
- src/agents/research_plan_author/contracts.py +745 -0
- src/agents/research_plan_author/cross_section_editor.py +232 -0
- src/agents/research_plan_author/document_quality.py +987 -0
- src/agents/research_plan_author/idea_evolution.py +223 -0
- src/agents/research_plan_author/input_loader.py +76 -0
- src/agents/research_plan_author/latex_compiler.py +260 -0
- src/agents/research_plan_author/latex_safety.py +159 -0
- src/agents/research_plan_author/llm_json.py +74 -0
- src/agents/research_plan_author/markdown_renderer.py +275 -0
- src/agents/research_plan_author/pdf_validator.py +149 -0
- src/agents/research_plan_author/render.py +166 -0
- src/agents/research_plan_author/render_artifacts.py +187 -0
- src/agents/research_plan_author/run.py +765 -0
- src/agents/research_plan_author/run_logging.py +209 -0
- src/agents/research_plan_author/section_cache.py +184 -0
- src/agents/research_plan_author/section_composer.py +1764 -0
- src/agents/research_plan_author/section_router.py +209 -0
- src/agents/research_plan_author/semantic_validator.py +254 -0
- src/agents/research_plan_author/source_bundle.py +46 -0
- src/agents/research_plan_author/source_registry.py +208 -0
- src/agents/research_plan_author/survey_source_loader.py +137 -0
- src/agents/research_plan_author/template_adapter.py +173 -0
- src/agents/research_plan_author/template_profile.py +204 -0
- src/agents/research_plan_author/tex_renderer.py +496 -0
- src/agents/research_plan_author/theory_presentation.py +134 -0
- src/agents/research_plan_author/theory_spine.py +703 -0
- src/agents/survey_agent/Dockerfile +54 -0
- src/agents/survey_agent/README.md +350 -0
- src/agents/survey_agent/config/deep_survey.yaml +217 -0
- src/agents/survey_agent/config/deep_survey_batch.yaml +176 -0
- src/agents/survey_agent/config/deep_survey_fast.yaml +183 -0
- src/agents/survey_agent/config/evaluate_baseline.yaml +197 -0
- src/agents/survey_agent/config/outcomeRAG.yaml +159 -0
- src/agents/survey_agent/env_report.md +348 -0
- src/agents/survey_agent/modules/__init__.py +0 -0
- src/agents/survey_agent/modules/code_collector.py +2194 -0
- src/agents/survey_agent/modules/code_report_generator.py +1282 -0
- src/agents/survey_agent/modules/data_manager.py +1713 -0
- src/agents/survey_agent/modules/database.py +167 -0
- src/agents/survey_agent/modules/fulltext_download_cache.py +462 -0
- src/agents/survey_agent/modules/fulltext_http.py +134 -0
- src/agents/survey_agent/modules/fulltext_resolution.py +749 -0
- src/agents/survey_agent/modules/judge.py +434 -0
- src/agents/survey_agent/modules/outcome_RAG.py +236 -0
- src/agents/survey_agent/modules/paper_graph_retriever.py +1075 -0
- src/agents/survey_agent/modules/pe.py +1729 -0
- src/agents/survey_agent/modules/pseudo_creator.py +782 -0
- src/agents/survey_agent/modules/pseudo_reviser.py +537 -0
- src/agents/survey_agent/modules/refine_agent.py +1952 -0
- src/agents/survey_agent/modules/survey_generator.py +5691 -0
- src/agents/survey_agent/modules/survey_visualizer.py +1817 -0
- src/agents/survey_agent/modules/visual_prompts.py +327 -0
- src/agents/survey_agent/modules/work_analyzer.py +2750 -0
- src/agents/survey_agent/modules/work_collector.py +5649 -0
- src/agents/survey_agent/scripts/baseline_evaluation.py +411 -0
- src/agents/survey_agent/scripts/run_deep_survey.py +224 -0
- src/agents/survey_agent/scripts/run_deep_survey_adapter.py +407 -0
- src/agents/survey_agent/scripts/run_deep_survey_adapter_with_input.py +409 -0
- src/agents/survey_agent/scripts/run_deep_survey_batch.py +228 -0
- src/agents/survey_agent/scripts/run_deep_survey_batch_arg.py +243 -0
- src/agents/survey_agent/scripts/run_deep_survey_batch_settings.py +218 -0
- src/agents/survey_agent/scripts/run_keynotes_gen.py +128 -0
- src/agents/survey_agent/scripts/run_work_clusters.py +140 -0
- src/agents/survey_agent/utils/__init__.py +0 -0
- src/agents/survey_agent/utils/ablation_utils.py +317 -0
- src/agents/survey_agent/utils/api_call.py +2518 -0
- src/agents/survey_agent/utils/chat_utils.py +82 -0
- src/agents/survey_agent/utils/config_utils.py +70 -0
- src/agents/survey_agent/utils/convert_to_md.py +29 -0
- src/agents/survey_agent/utils/err_info.py +24 -0
- src/agents/survey_agent/utils/file_utils.py +176 -0
- src/agents/survey_agent/utils/gpu_utils.py +145 -0
- src/agents/survey_agent/utils/graph_visualizer.py +279 -0
- src/agents/survey_agent/utils/html_utils.py +181 -0
- src/agents/survey_agent/utils/latex_generator_intra_cluster.py +529 -0
- src/agents/survey_agent/utils/latex_generator_relation_table.py +193 -0
- src/agents/survey_agent/utils/mineru_section_packer.py +334 -0
- src/agents/survey_agent/utils/mineru_utils.py +396 -0
- src/agents/survey_agent/utils/paper.py +144 -0
- src/agents/survey_agent/utils/read_yaml.py +15 -0
- src/agents/survey_agent/utils/repo_utils.py +167 -0
- src/agents/survey_agent/utils/rich_logger.py +77 -0
- src/agents/survey_agent/utils/step2v2.py +874 -0
- src/agents/survey_agent/utils/step2v2_extractor.py +856 -0
- src/agents/survey_agent/utils/topic_survey_storage.py +309 -0
- src/agents/survey_agent/utils/utils.py +118 -0
- src/agents/survey_agent/utils/work.py +2 -0
- src/cli.py +1611 -0
- src/config/__init__.py +213 -0
- src/config/default.yaml +1122 -0
- src/harness/LICENSE +21 -0
- src/harness/VENDORED.md +14 -0
- src/harness/src/__init__.py +0 -0
- src/harness/src/openharness/__init__.py +0 -0
- src/harness/src/openharness/__main__.py +6 -0
- src/harness/src/openharness/api/__init__.py +21 -0
- src/harness/src/openharness/api/client.py +281 -0
- src/harness/src/openharness/api/codex_client.py +407 -0
- src/harness/src/openharness/api/copilot_auth.py +240 -0
- src/harness/src/openharness/api/copilot_client.py +134 -0
- src/harness/src/openharness/api/errors.py +19 -0
- src/harness/src/openharness/api/openai_client.py +577 -0
- src/harness/src/openharness/api/provider.py +186 -0
- src/harness/src/openharness/api/registry.py +437 -0
- src/harness/src/openharness/api/usage.py +17 -0
- src/harness/src/openharness/auth/__init__.py +29 -0
- src/harness/src/openharness/auth/external.py +610 -0
- src/harness/src/openharness/auth/flows.py +189 -0
- src/harness/src/openharness/auth/manager.py +482 -0
- src/harness/src/openharness/auth/storage.py +269 -0
- src/harness/src/openharness/autopilot/__init__.py +23 -0
- src/harness/src/openharness/autopilot/service.py +2239 -0
- src/harness/src/openharness/autopilot/types.py +91 -0
- src/harness/src/openharness/bridge/__init__.py +20 -0
- src/harness/src/openharness/bridge/manager.py +106 -0
- src/harness/src/openharness/bridge/session_runner.py +46 -0
- src/harness/src/openharness/bridge/types.py +37 -0
- src/harness/src/openharness/bridge/work_secret.py +41 -0
- src/harness/src/openharness/channels/UPSTREAM +6 -0
- src/harness/src/openharness/channels/__init__.py +22 -0
- src/harness/src/openharness/channels/adapter.py +131 -0
- src/harness/src/openharness/channels/bus/__init__.py +6 -0
- src/harness/src/openharness/channels/bus/events.py +38 -0
- src/harness/src/openharness/channels/bus/queue.py +44 -0
- src/harness/src/openharness/channels/impl/__init__.py +6 -0
- src/harness/src/openharness/channels/impl/base.py +141 -0
- src/harness/src/openharness/channels/impl/dingtalk.py +445 -0
- src/harness/src/openharness/channels/impl/discord.py +311 -0
- src/harness/src/openharness/channels/impl/email.py +410 -0
- src/harness/src/openharness/channels/impl/feishu.py +1342 -0
- src/harness/src/openharness/channels/impl/manager.py +257 -0
- src/harness/src/openharness/channels/impl/matrix.py +700 -0
- src/harness/src/openharness/channels/impl/mochat.py +897 -0
- src/harness/src/openharness/channels/impl/qq.py +141 -0
- src/harness/src/openharness/channels/impl/slack.py +284 -0
- src/harness/src/openharness/channels/impl/telegram.py +525 -0
- src/harness/src/openharness/channels/impl/whatsapp.py +159 -0
- src/harness/src/openharness/cli.py +2551 -0
- src/harness/src/openharness/commands/__init__.py +21 -0
- src/harness/src/openharness/commands/registry.py +2783 -0
- src/harness/src/openharness/config/__init__.py +34 -0
- src/harness/src/openharness/config/paths.py +160 -0
- src/harness/src/openharness/config/schema.py +119 -0
- src/harness/src/openharness/config/settings.py +1104 -0
- src/harness/src/openharness/coordinator/__init__.py +12 -0
- src/harness/src/openharness/coordinator/agent_definitions.py +975 -0
- src/harness/src/openharness/coordinator/coordinator_mode.py +520 -0
- src/harness/src/openharness/engine/__init__.py +80 -0
- src/harness/src/openharness/engine/cost_tracker.py +24 -0
- src/harness/src/openharness/engine/messages.py +222 -0
- src/harness/src/openharness/engine/query.py +1188 -0
- src/harness/src/openharness/engine/query_engine.py +313 -0
- src/harness/src/openharness/engine/stream_events.py +90 -0
- src/harness/src/openharness/hooks/__init__.py +50 -0
- src/harness/src/openharness/hooks/events.py +20 -0
- src/harness/src/openharness/hooks/executor.py +242 -0
- src/harness/src/openharness/hooks/hot_reload.py +31 -0
- src/harness/src/openharness/hooks/loader.py +68 -0
- src/harness/src/openharness/hooks/schemas.py +66 -0
- src/harness/src/openharness/hooks/types.py +38 -0
- src/harness/src/openharness/keybindings/__init__.py +14 -0
- src/harness/src/openharness/keybindings/default_bindings.py +11 -0
- src/harness/src/openharness/keybindings/loader.py +22 -0
- src/harness/src/openharness/keybindings/parser.py +18 -0
- src/harness/src/openharness/keybindings/resolver.py +13 -0
- src/harness/src/openharness/mcp/__init__.py +79 -0
- src/harness/src/openharness/mcp/client.py +298 -0
- src/harness/src/openharness/mcp/config.py +16 -0
- src/harness/src/openharness/mcp/types.py +76 -0
- src/harness/src/openharness/memory/__init__.py +25 -0
- src/harness/src/openharness/memory/agent.py +91 -0
- src/harness/src/openharness/memory/manager.py +183 -0
- src/harness/src/openharness/memory/memdir.py +52 -0
- src/harness/src/openharness/memory/migrate.py +137 -0
- src/harness/src/openharness/memory/paths.py +22 -0
- src/harness/src/openharness/memory/relevance.py +145 -0
- src/harness/src/openharness/memory/scan.py +116 -0
- src/harness/src/openharness/memory/schema.py +443 -0
- src/harness/src/openharness/memory/search.py +71 -0
- src/harness/src/openharness/memory/team.py +90 -0
- src/harness/src/openharness/memory/types.py +33 -0
- src/harness/src/openharness/memory/usage.py +153 -0
- src/harness/src/openharness/output_styles/__init__.py +5 -0
- src/harness/src/openharness/output_styles/loader.py +42 -0
- src/harness/src/openharness/permissions/__init__.py +26 -0
- src/harness/src/openharness/permissions/checker.py +200 -0
- src/harness/src/openharness/permissions/modes.py +13 -0
- src/harness/src/openharness/personalization/__init__.py +6 -0
- src/harness/src/openharness/personalization/extractor.py +138 -0
- src/harness/src/openharness/personalization/rules.py +64 -0
- src/harness/src/openharness/personalization/session_hook.py +65 -0
- src/harness/src/openharness/platforms.py +86 -0
- src/harness/src/openharness/plugins/__init__.py +53 -0
- src/harness/src/openharness/plugins/bundled/__init__.py +0 -0
- src/harness/src/openharness/plugins/installer.py +39 -0
- src/harness/src/openharness/plugins/loader.py +730 -0
- src/harness/src/openharness/plugins/schemas.py +24 -0
- src/harness/src/openharness/plugins/types.py +59 -0
- src/harness/src/openharness/prompts/__init__.py +14 -0
- src/harness/src/openharness/prompts/claudemd.py +48 -0
- src/harness/src/openharness/prompts/context.py +187 -0
- src/harness/src/openharness/prompts/environment.py +135 -0
- src/harness/src/openharness/prompts/system_prompt.py +109 -0
- src/harness/src/openharness/sandbox/Dockerfile +6 -0
- src/harness/src/openharness/sandbox/__init__.py +33 -0
- src/harness/src/openharness/sandbox/adapter.py +148 -0
- src/harness/src/openharness/sandbox/docker_backend.py +232 -0
- src/harness/src/openharness/sandbox/docker_image.py +103 -0
- src/harness/src/openharness/sandbox/path_validator.py +37 -0
- src/harness/src/openharness/sandbox/session.py +63 -0
- src/harness/src/openharness/services/__init__.py +30 -0
- src/harness/src/openharness/services/autodream/__init__.py +34 -0
- src/harness/src/openharness/services/autodream/backup.py +104 -0
- src/harness/src/openharness/services/autodream/lock.py +138 -0
- src/harness/src/openharness/services/autodream/prompt.py +128 -0
- src/harness/src/openharness/services/autodream/service.py +313 -0
- src/harness/src/openharness/services/compact/__init__.py +1725 -0
- src/harness/src/openharness/services/cron.py +137 -0
- src/harness/src/openharness/services/cron_scheduler.py +595 -0
- src/harness/src/openharness/services/lsp/__init__.py +216 -0
- src/harness/src/openharness/services/memory_extract/__init__.py +261 -0
- src/harness/src/openharness/services/oauth/__init__.py +0 -0
- src/harness/src/openharness/services/session_backend.py +97 -0
- src/harness/src/openharness/services/session_memory/__init__.py +139 -0
- src/harness/src/openharness/services/session_storage.py +230 -0
- src/harness/src/openharness/services/token_estimation.py +15 -0
- src/harness/src/openharness/services/tool_outputs.py +55 -0
- src/harness/src/openharness/skills/__init__.py +44 -0
- src/harness/src/openharness/skills/_frontmatter.py +97 -0
- src/harness/src/openharness/skills/bundled/__init__.py +75 -0
- src/harness/src/openharness/skills/bundled/content/commit.md +25 -0
- src/harness/src/openharness/skills/bundled/content/debug.md +25 -0
- src/harness/src/openharness/skills/bundled/content/diagnose.md +35 -0
- src/harness/src/openharness/skills/bundled/content/plan.md +39 -0
- src/harness/src/openharness/skills/bundled/content/review.md +33 -0
- src/harness/src/openharness/skills/bundled/content/simplify.md +26 -0
- src/harness/src/openharness/skills/bundled/content/skill-creator.md +175 -0
- src/harness/src/openharness/skills/bundled/content/test.md +38 -0
- src/harness/src/openharness/skills/loader.py +229 -0
- src/harness/src/openharness/skills/registry.py +29 -0
- src/harness/src/openharness/skills/types.py +24 -0
- src/harness/src/openharness/state/__init__.py +6 -0
- src/harness/src/openharness/state/app_state.py +30 -0
- src/harness/src/openharness/state/store.py +40 -0
- src/harness/src/openharness/swarm/__init__.py +70 -0
- src/harness/src/openharness/swarm/in_process.py +693 -0
- src/harness/src/openharness/swarm/lockfile.py +24 -0
- src/harness/src/openharness/swarm/mailbox.py +522 -0
- src/harness/src/openharness/swarm/permission_sync.py +1168 -0
- src/harness/src/openharness/swarm/registry.py +410 -0
- src/harness/src/openharness/swarm/spawn_utils.py +229 -0
- src/harness/src/openharness/swarm/subprocess_backend.py +171 -0
- src/harness/src/openharness/swarm/team_lifecycle.py +910 -0
- src/harness/src/openharness/swarm/types.py +398 -0
- src/harness/src/openharness/swarm/worktree.py +315 -0
- src/harness/src/openharness/tasks/__init__.py +18 -0
- src/harness/src/openharness/tasks/local_agent_task.py +28 -0
- src/harness/src/openharness/tasks/local_shell_task.py +17 -0
- src/harness/src/openharness/tasks/manager.py +475 -0
- src/harness/src/openharness/tasks/stop_task.py +11 -0
- src/harness/src/openharness/tasks/types.py +32 -0
- src/harness/src/openharness/themes/__init__.py +21 -0
- src/harness/src/openharness/themes/builtin.py +89 -0
- src/harness/src/openharness/themes/loader.py +55 -0
- src/harness/src/openharness/themes/schema.py +54 -0
- src/harness/src/openharness/tools/__init__.py +107 -0
- src/harness/src/openharness/tools/agent_tool.py +141 -0
- src/harness/src/openharness/tools/ask_user_question_tool.py +46 -0
- src/harness/src/openharness/tools/base.py +80 -0
- src/harness/src/openharness/tools/bash_tool.py +259 -0
- src/harness/src/openharness/tools/brief_tool.py +33 -0
- src/harness/src/openharness/tools/config_tool.py +54 -0
- src/harness/src/openharness/tools/cron_create_tool.py +105 -0
- src/harness/src/openharness/tools/cron_delete_tool.py +32 -0
- src/harness/src/openharness/tools/cron_list_tool.py +69 -0
- src/harness/src/openharness/tools/cron_toggle_tool.py +37 -0
- src/harness/src/openharness/tools/enter_plan_mode_tool.py +28 -0
- src/harness/src/openharness/tools/enter_worktree_tool.py +80 -0
- src/harness/src/openharness/tools/exit_plan_mode_tool.py +28 -0
- src/harness/src/openharness/tools/exit_worktree_tool.py +42 -0
- src/harness/src/openharness/tools/file_edit_tool.py +95 -0
- src/harness/src/openharness/tools/file_read_tool.py +72 -0
- src/harness/src/openharness/tools/file_write_tool.py +87 -0
- src/harness/src/openharness/tools/glob_tool.py +175 -0
- src/harness/src/openharness/tools/grep_tool.py +374 -0
- src/harness/src/openharness/tools/image_generation_tool.py +447 -0
- src/harness/src/openharness/tools/image_to_text_tool.py +237 -0
- src/harness/src/openharness/tools/list_mcp_resources_tool.py +36 -0
- src/harness/src/openharness/tools/lsp_tool.py +154 -0
- src/harness/src/openharness/tools/mcp_auth_tool.py +71 -0
- src/harness/src/openharness/tools/mcp_tool.py +72 -0
- src/harness/src/openharness/tools/notebook_edit_tool.py +97 -0
- src/harness/src/openharness/tools/read_mcp_resource_tool.py +38 -0
- src/harness/src/openharness/tools/remote_trigger_tool.py +74 -0
- src/harness/src/openharness/tools/send_message_tool.py +58 -0
- src/harness/src/openharness/tools/skill_tool.py +43 -0
- src/harness/src/openharness/tools/sleep_tool.py +32 -0
- src/harness/src/openharness/tools/task_create_tool.py +56 -0
- src/harness/src/openharness/tools/task_get_tool.py +33 -0
- src/harness/src/openharness/tools/task_list_tool.py +35 -0
- src/harness/src/openharness/tools/task_output_tool.py +35 -0
- src/harness/src/openharness/tools/task_stop_tool.py +30 -0
- src/harness/src/openharness/tools/task_update_tool.py +50 -0
- src/harness/src/openharness/tools/team_create_tool.py +31 -0
- src/harness/src/openharness/tools/team_delete_tool.py +30 -0
- src/harness/src/openharness/tools/todo_write_tool.py +46 -0
- src/harness/src/openharness/tools/tool_search_tool.py +38 -0
- src/harness/src/openharness/tools/web_fetch_tool.py +117 -0
- src/harness/src/openharness/tools/web_search_tool.py +119 -0
- src/harness/src/openharness/ui/__init__.py +5 -0
- src/harness/src/openharness/ui/app.py +320 -0
- src/harness/src/openharness/ui/backend_host.py +941 -0
- src/harness/src/openharness/ui/coordinator_drain.py +198 -0
- src/harness/src/openharness/ui/input.py +32 -0
- src/harness/src/openharness/ui/output.py +265 -0
- src/harness/src/openharness/ui/permission_dialog.py +14 -0
- src/harness/src/openharness/ui/protocol.py +247 -0
- src/harness/src/openharness/ui/react_launcher.py +179 -0
- src/harness/src/openharness/ui/runtime.py +799 -0
- src/harness/src/openharness/ui/textual_app.py +495 -0
- src/harness/src/openharness/utils/__init__.py +0 -0
- src/harness/src/openharness/utils/file_lock.py +86 -0
- src/harness/src/openharness/utils/fs.py +98 -0
- src/harness/src/openharness/utils/helpers.py +77 -0
- src/harness/src/openharness/utils/network_guard.py +340 -0
- src/harness/src/openharness/utils/shell.py +147 -0
- src/harness/src/openharness/vim/__init__.py +5 -0
- src/harness/src/openharness/vim/transitions.py +8 -0
- src/harness/src/openharness/voice/__init__.py +7 -0
- src/harness/src/openharness/voice/keyterms.py +10 -0
- src/harness/src/openharness/voice/stream_stt.py +8 -0
- src/harness/src/openharness/voice/voice_mode.py +44 -0
- src/llm/__init__.py +29 -0
- src/llm/image_generation.py +402 -0
- src/llm/provider_registry.py +419 -0
- src/llm/runtime_env.py +64 -0
- src/llm/structured_output.py +131 -0
- src/llm/vision.py +198 -0
- src/memory/__init__.py +2 -0
- src/memory/api/__init__.py +1 -0
- src/memory/api/base_memory_system_api.py +98 -0
- src/memory/api/base_symbolic_memory_system_api.py +190 -0
- src/memory/api/base_vector_memory_system_api.py +116 -0
- src/memory/api/faiss_memory_system_api.py +228 -0
- src/memory/api/slot_process_api.py +827 -0
- src/memory/api/symbolic_memory_system_api.py +572 -0
- src/memory/memory_system/__init__.py +48 -0
- src/memory/memory_system/component_taxonomy.py +430 -0
- src/memory/memory_system/llm.py +437 -0
- src/memory/memory_system/models.py +168 -0
- src/memory/memory_system/user_prompt.py +418 -0
- src/memory/memory_system/utils.py +282 -0
- src/memory/memory_system/vectorstore.py +311 -0
- src/memory/memory_system/working_slot.py +99 -0
- src/pipeline/__init__.py +129 -0
- src/pipeline/contracts.py +531 -0
- src/pipeline/discipline_taxonomy.py +916 -0
- src/pipeline/evidence_coverage_ledger.py +1150 -0
- src/pipeline/evidence_refinement.py +620 -0
- src/pipeline/experiment_to_symbolic.py +137 -0
- src/pipeline/multimodal_evidence/__init__.py +28 -0
- src/pipeline/multimodal_evidence/capabilities.py +107 -0
- src/pipeline/multimodal_evidence/claims.py +135 -0
- src/pipeline/multimodal_evidence/contract.py +291 -0
- src/pipeline/multimodal_evidence/data_sh_compiler.py +505 -0
- src/pipeline/multimodal_evidence/handoff_binding.py +135 -0
- src/pipeline/multimodal_evidence/manifest.py +254 -0
- src/pipeline/multimodal_evidence/native_analysis.py +479 -0
- src/pipeline/multimodal_evidence/perception.py +277 -0
- src/pipeline/multimodal_evidence/query_binding.py +65 -0
- src/pipeline/multimodal_evidence/rendering.py +120 -0
- src/pipeline/multimodal_evidence/safety.py +42 -0
- src/pipeline/multimodal_evidence/sampling.py +69 -0
- src/pipeline/multimodal_evidence/service.py +148 -0
- src/pipeline/multimodal_evidence/survey_integration.py +460 -0
- src/pipeline/paper_identity.py +52 -0
- src/pipeline/research_design_inventory.py +338 -0
- src/pipeline/research_domain_resolution.py +669 -0
- src/pipeline/research_identity.py +548 -0
- src/pipeline/research_question_contract.py +646 -0
- src/pipeline/retrieval_lanes.py +889 -0
- src/pipeline/run_loop.py +862 -0
- src/pipeline/science_events.py +30 -0
- src/pipeline/science_manifests.py +602 -0
- src/pipeline/science_run.py +918 -0
- src/pipeline/science_stages.py +709 -0
- src/pipeline/science_workflow.py +807 -0
- src/pipeline/sh_cluster_projection.py +306 -0
- src/pipeline/sh_graph_provenance.py +648 -0
- src/pipeline/subhypothesis_decomposition.py +392 -0
- src/pipeline/subhypothesis_evidence.py +856 -0
- src/pipeline/survey_evidence_plan.py +858 -0
- src/pipeline/survey_gap_adjudication.py +647 -0
- src/pipeline/survey_gap_candidates.py +840 -0
- src/pipeline/survey_gap_ledger.py +683 -0
- src/pipeline/survey_gap_triage.py +401 -0
- src/pipeline/survey_handoff_persistence.py +481 -0
- src/pipeline/survey_handoff_projection.py +457 -0
- src/pipeline/survey_idea_handoff.py +1112 -0
- src/pipeline/survey_idea_loader.py +289 -0
- src/research_run_ids.py +11 -0
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Use the official vllm image for gpu with Ampere architecture and above (Compute Capability>=8.0)
|
|
2
|
+
# Compute Capability version query (https://developer.nvidia.com/cuda-gpus)
|
|
3
|
+
FROM vllm/vllm-openai:v0.10.1.1
|
|
4
|
+
|
|
5
|
+
# Use the official vllm image for gpu with Turing architecture and below (Compute Capability<8.0)
|
|
6
|
+
# FROM vllm/vllm-openai:v0.10.2
|
|
7
|
+
|
|
8
|
+
# Install libgl for opencv support & Noto fonts for Chinese characters
|
|
9
|
+
RUN apt-get update && \
|
|
10
|
+
apt-get install -y \
|
|
11
|
+
fonts-noto-core \
|
|
12
|
+
fonts-noto-cjk \
|
|
13
|
+
fontconfig \
|
|
14
|
+
libgl1 && \
|
|
15
|
+
fc-cache -fv && \
|
|
16
|
+
apt-get clean && \
|
|
17
|
+
rm -rf /var/lib/apt/lists/*
|
|
18
|
+
|
|
19
|
+
# Install mineru latest
|
|
20
|
+
RUN python3 -m pip install -U 'mineru[core]' --break-system-packages && \
|
|
21
|
+
python3 -m pip cache purge
|
|
22
|
+
|
|
23
|
+
# Install some other packages
|
|
24
|
+
RUN python3 -m pip install -U \
|
|
25
|
+
hydra-core \
|
|
26
|
+
asciinet \
|
|
27
|
+
tenacity \
|
|
28
|
+
trafilatura \
|
|
29
|
+
readability-lxml \
|
|
30
|
+
html2text
|
|
31
|
+
|
|
32
|
+
# Install java
|
|
33
|
+
RUN wget https://mirrors.huaweicloud.com/openjdk/25/openjdk-25_linux-x64_bin.tar.gz -O /tmp/jdk-25.tar.gz && \
|
|
34
|
+
mkdir -p /opt/jdk-25 && \
|
|
35
|
+
tar -xzf /tmp/jdk-25.tar.gz -C /opt/jdk-25 --strip-components=1 && \
|
|
36
|
+
rm /tmp/jdk-25.tar.gz
|
|
37
|
+
|
|
38
|
+
ENV JAVA_HOME=/opt/jdk-25
|
|
39
|
+
ENV PATH=$JAVA_HOME/bin:$PATH
|
|
40
|
+
|
|
41
|
+
# for deepsurvey
|
|
42
|
+
RUN pip install hydra-core && \
|
|
43
|
+
pip install rich && \
|
|
44
|
+
pip install loguru && \
|
|
45
|
+
pip install tenacity && \
|
|
46
|
+
pip install -U sentence-transformers && \
|
|
47
|
+
pip install hdbscan && \
|
|
48
|
+
|
|
49
|
+
ENV HF_ENDPOINT=https://hf-mirror.com
|
|
50
|
+
# Download models and update the configuration file
|
|
51
|
+
RUN /bin/bash -c "mineru-models-download -s huggingface -m all"
|
|
52
|
+
|
|
53
|
+
# Set the entry point to activate the virtual environment and run the command line tool
|
|
54
|
+
ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"]
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
# Deep Survey
|
|
2
|
+
|
|
3
|
+
Deep Survey is an automated academic survey generation pipeline. Given a research topic, it collects related papers, expands the paper set through references and citations, reads and analyzes papers with LLMs, clusters related work, optionally builds relation/code analysis artifacts, generates a survey draft, revises it, refines citations, and optionally evaluates the final survey.
|
|
4
|
+
|
|
5
|
+
## Repository layout
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
.
|
|
9
|
+
├── Dockerfile # Container environment for Deep Survey and MinerU
|
|
10
|
+
├── config/ # Hydra/YAML runtime configurations
|
|
11
|
+
│ ├── evaluation/ # Evaluation experiment configs
|
|
12
|
+
│ └── *.yaml # Default and task-specific configs
|
|
13
|
+
├── scripts/ # Main runnable entry points
|
|
14
|
+
├── modules/ # Core pipeline modules
|
|
15
|
+
├── utils/ # API, logging, file, PDF, markdown and helper utilities
|
|
16
|
+
├── topics/ # Topic lists and benchmark topic definitions
|
|
17
|
+
├── baselines/ # Baseline systems and baseline outputs
|
|
18
|
+
├── tests/ # Development tests and scratch files
|
|
19
|
+
├── logs/ # Runtime logs, ignored by git
|
|
20
|
+
├── outputs/ # Generated surveys and artifacts, ignored by git
|
|
21
|
+
└── database/ # Local paper/cache/database artifacts, ignored by git
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
`logs/`, `outputs/`, and `database/` are generated/runtime directories and are ignored by git. The `logs/` directory can usually be ignored when reading the codebase.
|
|
25
|
+
|
|
26
|
+
## Pipeline overview
|
|
27
|
+
|
|
28
|
+
The main Deep Survey pipeline follows these stages:
|
|
29
|
+
|
|
30
|
+
1. Related work collection
|
|
31
|
+
- Searches seed papers for the target topic.
|
|
32
|
+
- Expands papers through references and citations.
|
|
33
|
+
- Can use local graph/cache data when configured.
|
|
34
|
+
2. Paper database construction
|
|
35
|
+
- Builds an embedding/database view over collected papers.
|
|
36
|
+
3. Paper comprehension
|
|
37
|
+
- Reads papers or abstracts.
|
|
38
|
+
- Writes reusable paper keynotes into cache.
|
|
39
|
+
4. Clustering and analysis
|
|
40
|
+
- Clusters related papers.
|
|
41
|
+
- Optionally performs intra-cluster and inter-cluster analysis.
|
|
42
|
+
- Optionally generates relation graphs and relation tables.
|
|
43
|
+
5. Optional code/environment report generation
|
|
44
|
+
- Collects and analyzes code repositories linked to papers.
|
|
45
|
+
- Generates code and environment reports when enabled.
|
|
46
|
+
6. Survey generation
|
|
47
|
+
- Generates an outline.
|
|
48
|
+
- Drafts sections/subsections.
|
|
49
|
+
- Reviews and revises the draft.
|
|
50
|
+
- Refines final paper text and references.
|
|
51
|
+
7. Optional evaluation
|
|
52
|
+
- Evaluates generated survey quality and citation quality when enabled.
|
|
53
|
+
|
|
54
|
+
## Core modules
|
|
55
|
+
|
|
56
|
+
- `modules/work_collector.py`: collects seed papers and expands them via references/citations.
|
|
57
|
+
- `modules/database.py`: builds retrieval databases over collected papers.
|
|
58
|
+
- `modules/work_analyzer.py`: reads papers, extracts keynotes, clusters papers, and performs relation/cluster analysis.
|
|
59
|
+
- `modules/survey_generator.py`: generates outlines, drafts survey sections, reviews/revises drafts, and saves final survey outputs.
|
|
60
|
+
- `modules/judge.py`: evaluates survey outputs when evaluation is enabled.
|
|
61
|
+
- `modules/code_collector.py`: collects code repository information.
|
|
62
|
+
- `modules/code_report_generator.py`: generates code/environment reports from collected repositories.
|
|
63
|
+
- `modules/paper_graph_retriever.py`: retrieves papers from local graph/database resources.
|
|
64
|
+
|
|
65
|
+
## Important scripts
|
|
66
|
+
|
|
67
|
+
### Single-topic Hydra entry point
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
python3 scripts/run_deep_survey.py
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
This uses Hydra with the default config declared in the script:
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
config/deep_survey_fast.yaml
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
You can override Hydra config values from the command line, for example:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
python3 scripts/run_deep_survey.py BasicInfo.topic="Graph Neural Networks"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Batch entry point with explicit YAML config
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
python3 scripts/run_deep_survey_batch_arg.py --config ./config/personal/deep_survey_batch_0514.yaml
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
This is the most explicit batch runner. It reads a YAML file, loads topics according to `BasicInfo`, and runs the pipeline for each topic. For example, `config/personal/deep_survey_batch_0514.yaml` uses:
|
|
92
|
+
|
|
93
|
+
- `BasicInfo.user_defiend_benchmarks: True`
|
|
94
|
+
- `BasicInfo.topic_path: ./topics/human_compare_topics.txt`
|
|
95
|
+
- `BasicInfo.output_base_dir: ./outputs/0514_mimo_pro_human_test`
|
|
96
|
+
- `BasicInfo.skip_exist: True`
|
|
97
|
+
|
|
98
|
+
### Adapter entry point
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
python3 scripts/run_deep_survey_adapter.py --workspace /workspace --config /workspace/config/runtime.yaml
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
The adapter is designed for external orchestration. It writes standardized artifacts such as:
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
/workspace/survey/output/survey.md
|
|
108
|
+
/workspace/survey/output/survey.json
|
|
109
|
+
/workspace/survey/output/evaluation.txt
|
|
110
|
+
/workspace/logs/relation_graph.json
|
|
111
|
+
/workspace/logs/relation_table.json
|
|
112
|
+
/workspace/logs/clustering_result.json
|
|
113
|
+
/workspace/logs/draft.json
|
|
114
|
+
/workspace/logs/deep_survey.log
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Baseline evaluation
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
python3 scripts/baseline_evaluation.py
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
This script evaluates outputs from Deep Survey and baseline systems such as AutoSurvey, SurveyForge, LiRA, and human-written surveys according to the configured benchmark/evaluation settings.
|
|
124
|
+
|
|
125
|
+
### Other utility scripts
|
|
126
|
+
|
|
127
|
+
- `scripts/run_keynotes_gen.py`: pre-generate paper keynotes.
|
|
128
|
+
- `scripts/run_work_clusters.py`: run work clustering utilities.
|
|
129
|
+
- `scripts/memory_monitor.sh`: monitor memory usage during long-running jobs.
|
|
130
|
+
- `scripts/run_model_ablation.sh`: run model ablation experiments.
|
|
131
|
+
|
|
132
|
+
## Configuration
|
|
133
|
+
|
|
134
|
+
Configurations live under `config/`. The common top-level sections are:
|
|
135
|
+
|
|
136
|
+
```yaml
|
|
137
|
+
BasicInfo:
|
|
138
|
+
topic: ""
|
|
139
|
+
topic_path: ./topics/human_compare_topics.txt
|
|
140
|
+
output_base_dir: ./outputs/example
|
|
141
|
+
cache_path: ./database
|
|
142
|
+
topic_max_retry: 5
|
|
143
|
+
skip_exist: True
|
|
144
|
+
|
|
145
|
+
APIInfo:
|
|
146
|
+
llm_api_key: "..."
|
|
147
|
+
llm_api_base_url: "..."
|
|
148
|
+
llm_model_name: "..."
|
|
149
|
+
# Required for OpenAlex literature retrieval; do not commit the literal key.
|
|
150
|
+
openalex_api_key: "${oc.env:OPENALEX_API_KEY,''}"
|
|
151
|
+
batch_chat_agent_worker: 2
|
|
152
|
+
chat_timeout: 3600
|
|
153
|
+
batch_chat_timeout: 1800
|
|
154
|
+
|
|
155
|
+
ModuleInfo:
|
|
156
|
+
WorkCollector:
|
|
157
|
+
max_seed_paper_num: 15
|
|
158
|
+
reference_graph_depth: 1
|
|
159
|
+
WorkAnalyzer:
|
|
160
|
+
abstract_only_mode: False
|
|
161
|
+
paper_reading_max_retry: 6
|
|
162
|
+
SurveyGenerator:
|
|
163
|
+
include_initial_analysis: True
|
|
164
|
+
include_relation_graph: False
|
|
165
|
+
include_relation_table: False
|
|
166
|
+
include_code_report: False
|
|
167
|
+
enable_review_and_revise: True
|
|
168
|
+
Judge:
|
|
169
|
+
skip_evaluation: True
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Before running experiments, check at least these fields:
|
|
173
|
+
|
|
174
|
+
- `BasicInfo.topic` or `BasicInfo.topic_path`
|
|
175
|
+
- `BasicInfo.output_base_dir`
|
|
176
|
+
- `BasicInfo.cache_path`
|
|
177
|
+
- `APIInfo.llm_api_key`
|
|
178
|
+
- `APIInfo.llm_api_base_url`
|
|
179
|
+
- `APIInfo.llm_model_name`
|
|
180
|
+
- `APIInfo.openalex_api_key` (or the `OPENALEX_API_KEY` environment variable)
|
|
181
|
+
- `APIInfo.batch_chat_agent_worker`
|
|
182
|
+
- `ModuleInfo.Judge.skip_evaluation`
|
|
183
|
+
|
|
184
|
+
Avoid committing real API keys. Prefer using environment variables or local-only config files for secrets.
|
|
185
|
+
|
|
186
|
+
## Topics
|
|
187
|
+
|
|
188
|
+
Topic lists are stored in `topics/`. Batch runs can use:
|
|
189
|
+
|
|
190
|
+
```yaml
|
|
191
|
+
BasicInfo:
|
|
192
|
+
user_defiend_benchmarks: True
|
|
193
|
+
topic_path: ./topics/human_compare_topics.txt
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Benchmark topic dictionaries are defined in:
|
|
197
|
+
|
|
198
|
+
```text
|
|
199
|
+
topics/Benchmark_topics.py
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Relevant switches include:
|
|
203
|
+
|
|
204
|
+
- `BasicInfo.AutoSurvey_benchmark`
|
|
205
|
+
- `BasicInfo.SurveyGen_benchmark`
|
|
206
|
+
- `BasicInfo.sub_benchmark_test`
|
|
207
|
+
- `BasicInfo.user_defiend_benchmarks`
|
|
208
|
+
|
|
209
|
+
## Outputs
|
|
210
|
+
|
|
211
|
+
Generated files are typically written under `BasicInfo.output_base_dir`. A batch run stores per-domain/per-topic results and may produce:
|
|
212
|
+
|
|
213
|
+
- Markdown survey files
|
|
214
|
+
- JSON survey files with paper text and references
|
|
215
|
+
- Evaluation result files
|
|
216
|
+
- Analysis artifacts such as clustering results, relation graphs, relation tables, draft files, code reports, and environment reports
|
|
217
|
+
|
|
218
|
+
The exact outputs depend on `ModuleInfo.SurveyGenerator` and `ModuleInfo.Judge` switches.
|
|
219
|
+
|
|
220
|
+
## Docker environment
|
|
221
|
+
|
|
222
|
+
The repository includes a Dockerfile at `Dockerfile`. It is the intended environment configuration for Deep Survey and PDF parsing utilities.
|
|
223
|
+
|
|
224
|
+
The image is based on:
|
|
225
|
+
|
|
226
|
+
```dockerfile
|
|
227
|
+
FROM vllm/vllm-openai:v0.10.1.1
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
It installs:
|
|
231
|
+
|
|
232
|
+
- Noto fonts and fontconfig for Chinese text rendering
|
|
233
|
+
- `libgl1` for OpenCV support
|
|
234
|
+
- `mineru[core]` for PDF parsing
|
|
235
|
+
- `hydra-core`, `asciinet`, `tenacity`, `trafilatura`, `readability-lxml`, `html2text`
|
|
236
|
+
- OpenJDK 25
|
|
237
|
+
- `rich`, `loguru`, `sentence-transformers`, `hdbscan`
|
|
238
|
+
|
|
239
|
+
It also sets:
|
|
240
|
+
|
|
241
|
+
```dockerfile
|
|
242
|
+
ENV HF_ENDPOINT=https://hf-mirror.com
|
|
243
|
+
ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"]
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
and downloads MinerU models during image build:
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
mineru-models-download -s huggingface -m all
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Build example:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
docker build -t deep-survey:latest .
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Run example:
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
docker run --gpus all --rm -it \
|
|
262
|
+
-v /path/to/deep-survey:/workspace/deep-survey \
|
|
263
|
+
-w /workspace/deep-survey \
|
|
264
|
+
deep-survey:latest \
|
|
265
|
+
python3 scripts/run_deep_survey_batch_arg.py --config ./config/personal/deep_survey_batch_0514.yaml
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
If building fails around the final Python package installation block, check the trailing shell continuation after `pip install hdbscan`. The last command in a chained `RUN` block should not leave a dangling `&& \` before the next Docker instruction.
|
|
269
|
+
|
|
270
|
+
## PDF and MinerU utilities
|
|
271
|
+
|
|
272
|
+
PDF/markdown related utilities are under `utils/`, especially:
|
|
273
|
+
|
|
274
|
+
```text
|
|
275
|
+
utils/mineru_utils.py
|
|
276
|
+
utils/convert_to_md.py
|
|
277
|
+
utils/html_utils.py
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
`utils/mineru_utils.py` contains MinerU-based parsing helpers for converting PDFs into markdown-like outputs. The Dockerfile installs MinerU and pre-downloads its models so PDF parsing can run with local MinerU model sources.
|
|
281
|
+
|
|
282
|
+
## Recommended run patterns
|
|
283
|
+
|
|
284
|
+
### Foreground run
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
CUDA_VISIBLE_DEVICES=0 python3 scripts/run_deep_survey_batch_arg.py \
|
|
288
|
+
--config ./config/personal/deep_survey_batch_0514.yaml
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Background run with log capture
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
mkdir -p logs
|
|
295
|
+
nohup bash -lc 'CUDA_VISIBLE_DEVICES=0 python3 scripts/run_deep_survey_batch_arg.py --config ./config/personal/deep_survey_batch_0514.yaml' \
|
|
296
|
+
> ./logs/deep_survey_batch.log 2>&1 &
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### Memory monitoring
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
bash scripts/memory_monitor.sh
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
For long experiments on remote/HPC machines, prefer using `tmux`, `screen`, or a job scheduler so the process is not interrupted by SSH session disconnection.
|
|
306
|
+
|
|
307
|
+
## Troubleshooting
|
|
308
|
+
|
|
309
|
+
### `Killed`
|
|
310
|
+
|
|
311
|
+
`Killed` can be caused by OOM, scheduler limits, or external signals. Check:
|
|
312
|
+
|
|
313
|
+
- system/job scheduler logs
|
|
314
|
+
- shell/session disconnection
|
|
315
|
+
- memory logs
|
|
316
|
+
- GPU/CPU memory usage
|
|
317
|
+
- custom signal traps if enabled
|
|
318
|
+
|
|
319
|
+
### `ProxyError` or API timeout
|
|
320
|
+
|
|
321
|
+
In this project, repeated `ProxyError` can also indicate upstream API timeout, connection reset, gateway failure, or too much concurrent traffic. Consider reducing:
|
|
322
|
+
|
|
323
|
+
```yaml
|
|
324
|
+
APIInfo:
|
|
325
|
+
batch_chat_agent_worker: 1
|
|
326
|
+
low_flow_mode: True
|
|
327
|
+
low_flow_latency: 2
|
|
328
|
+
exponential_backoff: True
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### Hugging Face network issues
|
|
332
|
+
|
|
333
|
+
The Dockerfile sets:
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
HF_ENDPOINT=https://hf-mirror.com
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
If the environment cannot access Hugging Face, use a mirror, pre-download models, or configure offline cache paths.
|
|
340
|
+
|
|
341
|
+
### Logs directory
|
|
342
|
+
|
|
343
|
+
`logs/` is runtime-only and ignored by git. It is useful for debugging local runs but should not be treated as source code.
|
|
344
|
+
|
|
345
|
+
## Development notes
|
|
346
|
+
|
|
347
|
+
- The codebase is Python-based and uses Hydra/OmegaConf-style YAML configs.
|
|
348
|
+
- Most modules are initialized from the selected config, so behavior is usually controlled by YAML rather than command-line flags.
|
|
349
|
+
- Long-running batch jobs depend heavily on API stability, retry settings, and concurrency settings.
|
|
350
|
+
- Generated caches under `database/` can speed up later runs but are not source files.
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
BasicInfo:
|
|
2
|
+
topic: Multimodal Large Language Models
|
|
3
|
+
base_dir: ./outputs
|
|
4
|
+
cache_path: ./database
|
|
5
|
+
save_path: ./outputs/test/survey.md
|
|
6
|
+
save_json_path: ./outputs/test/survey.json
|
|
7
|
+
evaluation_save_path: ./outputs/test/eval.txt
|
|
8
|
+
debug: True
|
|
9
|
+
error_conservatism_mode: False
|
|
10
|
+
skip_exist: True
|
|
11
|
+
adapter_mode: False
|
|
12
|
+
APIInfo:
|
|
13
|
+
llm_provider: qwen
|
|
14
|
+
llm_api_key: "${oc.env:DASHSCOPE_API_KEY,''}"
|
|
15
|
+
llm_api_base_url: "${oc.env:DASHSCOPE_BASE_URL,'https://dashscope.aliyuncs.com/compatible-mode/v1'}"
|
|
16
|
+
llm_model_name: qwen3.6-flash
|
|
17
|
+
llm_max_context_length: 880000
|
|
18
|
+
use_stream_mode: False
|
|
19
|
+
batch_chat_agent_worker: 4
|
|
20
|
+
chat_timeout: 600
|
|
21
|
+
batch_chat_timeout: 1800
|
|
22
|
+
openalex_api_key: "${oc.env:OPENALEX_API_KEY,''}"
|
|
23
|
+
semantic_scholar_api_key:
|
|
24
|
+
low_flow_mode: False
|
|
25
|
+
low_flow_latency: 0
|
|
26
|
+
exponential_backoff: True
|
|
27
|
+
exponential_backoff_time: 1
|
|
28
|
+
exponential_backoff_max_time: 60
|
|
29
|
+
arxiv_api_max_retry: 3
|
|
30
|
+
semantic_scholar_api_max_retry: 3
|
|
31
|
+
ModuleInfo:
|
|
32
|
+
WorkCollector:
|
|
33
|
+
download_safe_mode: False
|
|
34
|
+
download_timeout: 60
|
|
35
|
+
download_in_parallel: True
|
|
36
|
+
download_parallel_workers: 4
|
|
37
|
+
pdf_parse_batch_size: 1
|
|
38
|
+
fulltext_per_host_concurrency: 2
|
|
39
|
+
fulltext_access_context_generation: "anonymous-v1"
|
|
40
|
+
fulltext_provenance_enabled: true
|
|
41
|
+
cache_enabled: True
|
|
42
|
+
# OpenAlex is the literature-discovery provider; do not emit arXiv lanes.
|
|
43
|
+
enable_arxiv_discovery: false
|
|
44
|
+
max_seed_paper_num: 18
|
|
45
|
+
use_seed_filter_LLM: True
|
|
46
|
+
LLM_seed_threshold: 4
|
|
47
|
+
reference_graph_depth: 1
|
|
48
|
+
sentence_transformer_model: sentence-transformers/all-MiniLM-L6-v2
|
|
49
|
+
sentence_transformer_batch_size: 32
|
|
50
|
+
expand_in_local_paper_graph: True
|
|
51
|
+
use_ds_when_graph_fail: True
|
|
52
|
+
advanced_filter_in_local_paper_graph_expansion: True
|
|
53
|
+
related_work_top_k: 30 # for debug
|
|
54
|
+
log_related_work_num: -1 # set to -1 to log all
|
|
55
|
+
related_work_threshold: 0.5
|
|
56
|
+
related_work_threshold_for_llm: 4 # 1-5 scale
|
|
57
|
+
relatedness_temperature: 1.0
|
|
58
|
+
RAG_source_use_embedding_filter: True
|
|
59
|
+
RAG_source_use_LLM_filter: False
|
|
60
|
+
RAG_source_downloadable_only: False
|
|
61
|
+
enable_fulltext_expanded_promotion: true
|
|
62
|
+
expanded_fulltext_promotion_candidate_multiplier: 2
|
|
63
|
+
expanded_fulltext_promotion_max_candidates_per_sh: 40
|
|
64
|
+
Database:
|
|
65
|
+
default_top_k: 20
|
|
66
|
+
PaperGraphRetriever:
|
|
67
|
+
db_path: data/processed/graph.db
|
|
68
|
+
WorkAnalyzer:
|
|
69
|
+
abstract_only_mode: False
|
|
70
|
+
cache_enabled: True
|
|
71
|
+
# Citation-expanded papers can be promoted only after the complete-section
|
|
72
|
+
# reader succeeds; local graph keynotes cannot prove that condition.
|
|
73
|
+
use_local_paper_graph_keynotes: false
|
|
74
|
+
use_ds_keynotes_when_graph_fail: True
|
|
75
|
+
graph_keynote_extraction_batch_retry: 7
|
|
76
|
+
graph_graph_keynote_extraction_temperature: 0.1
|
|
77
|
+
paper_reading_temperature: 1.0
|
|
78
|
+
paper_reading_max_retry: 5
|
|
79
|
+
llm_max_context_overhead_length_in_paper_reading: 20000
|
|
80
|
+
clustering_batch_size: 16
|
|
81
|
+
clustering_temperature: 0.5
|
|
82
|
+
clustering_in_steps: True
|
|
83
|
+
clustering_batch_size_in_creation: 6
|
|
84
|
+
clustering_batch_size_in_assignment: 8
|
|
85
|
+
cluster_assign_fast_mode: True
|
|
86
|
+
paper_clustering_max_retry: 10
|
|
87
|
+
paper_clustering_creation_max_retry: 3
|
|
88
|
+
paper_clustering_assignment_max_retry: 10
|
|
89
|
+
propose_question_temperature: 1.0
|
|
90
|
+
anwer_question_temperature: 1.0
|
|
91
|
+
intra_cluster_analysis_max_retry: 10
|
|
92
|
+
intra_cluster_analysis_temperature: 1.0
|
|
93
|
+
intra_clustering_probelm_proposing_max_retry: 10
|
|
94
|
+
SurveyGenerator:
|
|
95
|
+
include_initial_analysis: False
|
|
96
|
+
include_relation_graph: True
|
|
97
|
+
include_relation_table: True
|
|
98
|
+
include_code_report: False
|
|
99
|
+
include_env_report: False
|
|
100
|
+
omit_error_preserve_retry_time: 2
|
|
101
|
+
outline_generation_in_steps: True
|
|
102
|
+
outline_generation_draft_max_retry: 3
|
|
103
|
+
outline_generation_draft_batch_size: 20
|
|
104
|
+
outline_generation_draft_max_iterations: 5
|
|
105
|
+
outline_generation_draft_empty_keynotes_iteration: 1
|
|
106
|
+
outline_draft_RAG_topk: 60
|
|
107
|
+
outline_generation_assign_max_retry: 10
|
|
108
|
+
outline_generation_assign_batch_size: 10
|
|
109
|
+
outline_assign_RAG_topk: 20
|
|
110
|
+
outline_assign_fast_mode: True
|
|
111
|
+
outline_generation_temperature: 0.5
|
|
112
|
+
# Outline prompts use a compact SH-plan projection and must fit before a
|
|
113
|
+
# request is sent; never rely on request-layer prefix truncation.
|
|
114
|
+
outline_prompt_max_input_tokens: 160000
|
|
115
|
+
outline_max_output_tokens: 16000
|
|
116
|
+
outline_evidence_plan_max_input_tokens: 100000
|
|
117
|
+
outline_current_outline_max_input_tokens: 20000
|
|
118
|
+
outline_keynotes_max_input_tokens: 70000
|
|
119
|
+
outline_analysis_max_input_tokens: 12000
|
|
120
|
+
outline_rag_max_input_tokens: 12000
|
|
121
|
+
outline_repair_previous_response_max_input_tokens: 8000
|
|
122
|
+
outline_repair_current_outline_max_input_tokens: 8000
|
|
123
|
+
# The outline sees a SH-covering representative set. Assignment still
|
|
124
|
+
# considers every admitted paper after the outline shape is fixed.
|
|
125
|
+
outline_representative_papers_per_sh: 4
|
|
126
|
+
outline_representative_max_papers: 30
|
|
127
|
+
outline_representative_include_context_papers: true
|
|
128
|
+
# Whole-survey contract. Per-section/subsection prompts are derived from
|
|
129
|
+
# the accepted outline; the 33.3k/40k total budget permits up to 2k words
|
|
130
|
+
# per subsection for the target outline.
|
|
131
|
+
survey_target_words: 32000
|
|
132
|
+
survey_max_words: 40000
|
|
133
|
+
writing_max_papers_per_sh: 20
|
|
134
|
+
outline_min_sections: 5
|
|
135
|
+
outline_target_sections: 6
|
|
136
|
+
outline_max_sections: 7
|
|
137
|
+
outline_min_subsections_per_section: 1
|
|
138
|
+
outline_target_subsections_per_section: 3
|
|
139
|
+
outline_max_subsections_per_section: 3
|
|
140
|
+
subsection_target_min_words: 875
|
|
141
|
+
subsection_target_max_words: 2000
|
|
142
|
+
subsection_target_citations: 3
|
|
143
|
+
subsection_max_citations: 5
|
|
144
|
+
section_preamble_target_words: 250
|
|
145
|
+
section_preamble_max_words: 400
|
|
146
|
+
section_preamble_target_citations: 1
|
|
147
|
+
section_preamble_max_citations: 2
|
|
148
|
+
outline_generation_batch_size: 16
|
|
149
|
+
outline_generation_max_retry: 3
|
|
150
|
+
outline_generation_max_retry_in_generation_loop: 6
|
|
151
|
+
subsection_draft_temperature: 1.0
|
|
152
|
+
subsection_draft_max_retry: 5
|
|
153
|
+
# Temporary operational bypass: keep visible citation checks, but do not
|
|
154
|
+
# block drafting on LLM-generated claim-trace metadata.
|
|
155
|
+
claim_trace_validation_enabled: false
|
|
156
|
+
claim_trace_repair_max_attempts: 2
|
|
157
|
+
claim_trace_repair_max_output_tokens: 2048
|
|
158
|
+
section_draft_max_retry: 5
|
|
159
|
+
always_omit_error_in_draft_validation: True
|
|
160
|
+
section_draft_temperature: 1.0
|
|
161
|
+
draft_refinement_temperature: 1.0
|
|
162
|
+
section_draft_max_error_info_length: 500
|
|
163
|
+
subsection_draft_max_error_info_length: 500
|
|
164
|
+
outline_max_error_info_length: 500
|
|
165
|
+
llm_max_context_overhead_length_generation: 20000
|
|
166
|
+
llm_max_context_overhead_length_outline_generation: 10000
|
|
167
|
+
# Legacy keys retained for external overrides; new drafting uses the
|
|
168
|
+
# whole-survey budget above rather than these per-unit hard minima.
|
|
169
|
+
subsection_least_words: 875
|
|
170
|
+
subsection_least_citations: 3
|
|
171
|
+
section_least_words: 4250
|
|
172
|
+
section_preamble_least_words: 250
|
|
173
|
+
section_preamble_least_citations: 3
|
|
174
|
+
draft_length_relax_ratio: 0.1
|
|
175
|
+
use_full_text_in_survey_generation: False
|
|
176
|
+
include_other_relevant_papers_RAG_in_outline: True
|
|
177
|
+
outline_RAG_topk: 200
|
|
178
|
+
include_other_relevant_papers_RAG: True
|
|
179
|
+
section_RAG_topk: 60
|
|
180
|
+
subsection_RAG_topk: 60
|
|
181
|
+
use_title_in_draft: True
|
|
182
|
+
enable_review_and_revise: True
|
|
183
|
+
agentic_refine_section: True
|
|
184
|
+
section_review_temperature: 1.0
|
|
185
|
+
section_review_retry: 3
|
|
186
|
+
reviewer_max_suggestions: 5
|
|
187
|
+
section_revision_RAG_topk: 30
|
|
188
|
+
section_revise_temperature: 0.5
|
|
189
|
+
section_revise_retry: 5
|
|
190
|
+
no_suggestion_run_each_iteration: 1
|
|
191
|
+
max_review_revise_iterations: 5
|
|
192
|
+
revise_section_in_parallel: 1
|
|
193
|
+
draft_refinement_in_parts: True
|
|
194
|
+
refine_in_parts_mode: 2
|
|
195
|
+
draft_refinement_max_retry: 7
|
|
196
|
+
review_and_revise_whole_survey_in_refinement: True
|
|
197
|
+
agentic_refine_survey: True
|
|
198
|
+
review_and_revise_whole_survey_max_iteration: 5
|
|
199
|
+
valid_title_min_similarity: 0.5
|
|
200
|
+
CodeAnalysis:
|
|
201
|
+
PseudoCreator:
|
|
202
|
+
planner_temperature: 0.5
|
|
203
|
+
planner_max_retry: 3
|
|
204
|
+
Judge:
|
|
205
|
+
skip_evaluation: False
|
|
206
|
+
use_different_api_for_judge: False
|
|
207
|
+
model: qwen3.7-plus
|
|
208
|
+
judge_llm_api_key:
|
|
209
|
+
judge_llm_api_base_url:
|
|
210
|
+
nli_temperature: 0.1
|
|
211
|
+
citation_quality_threshold: 0.5
|
|
212
|
+
remove_failed_citation_in_eval: True
|
|
213
|
+
rubrics_eval_10_dimensions: True
|
|
214
|
+
rubrics_eval_4_dimensions: False
|
|
215
|
+
rubrics_deep_survey_eval: False
|
|
216
|
+
explanation_in_rubric: True
|
|
217
|
+
citation_eval: False
|