bioguider 0.2.31__tar.gz → 0.2.33__tar.gz

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.

Potentially problematic release.


This version of bioguider might be problematic. Click here for more details.

Files changed (81) hide show
  1. {bioguider-0.2.31 → bioguider-0.2.33}/PKG-INFO +1 -1
  2. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/agent_utils.py +41 -14
  3. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/evaluation_readme_task.py +4 -1
  4. bioguider-0.2.33/bioguider/generation/llm_content_generator.py +771 -0
  5. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/managers/evaluation_manager.py +0 -2
  6. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/managers/generation_manager.py +161 -39
  7. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/utils/code_structure_builder.py +7 -1
  8. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/utils/r_file_handler.py +6 -4
  9. {bioguider-0.2.31 → bioguider-0.2.33}/pyproject.toml +1 -1
  10. bioguider-0.2.31/bioguider/generation/llm_content_generator.py +0 -180
  11. {bioguider-0.2.31 → bioguider-0.2.33}/LICENSE +0 -0
  12. {bioguider-0.2.31 → bioguider-0.2.33}/README.md +0 -0
  13. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/__init__.py +0 -0
  14. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/__init__.py +0 -0
  15. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/agent_task.py +0 -0
  16. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/agent_tools.py +0 -0
  17. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/collection_execute_step.py +0 -0
  18. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/collection_observe_step.py +0 -0
  19. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/collection_plan_step.py +0 -0
  20. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/collection_task.py +0 -0
  21. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/collection_task_utils.py +0 -0
  22. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/common_agent.py +0 -0
  23. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/common_agent_2step.py +0 -0
  24. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/common_conversation.py +0 -0
  25. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/common_step.py +0 -0
  26. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/consistency_collection_step.py +0 -0
  27. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/consistency_evaluation_task.py +0 -0
  28. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/consistency_evaluation_task_utils.py +0 -0
  29. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/consistency_observe_step.py +0 -0
  30. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/consistency_query_step.py +0 -0
  31. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/dockergeneration_execute_step.py +0 -0
  32. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/dockergeneration_observe_step.py +0 -0
  33. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/dockergeneration_plan_step.py +0 -0
  34. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/dockergeneration_task.py +0 -0
  35. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/dockergeneration_task_utils.py +0 -0
  36. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/evaluation_installation_task.py +0 -0
  37. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/evaluation_submission_requirements_task.py +0 -0
  38. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/evaluation_task.py +0 -0
  39. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/evaluation_tutorial_task.py +0 -0
  40. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/evaluation_tutorial_task_prompts.py +0 -0
  41. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/evaluation_userguide_prompts.py +0 -0
  42. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/evaluation_userguide_task.py +0 -0
  43. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/identification_execute_step.py +0 -0
  44. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/identification_observe_step.py +0 -0
  45. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/identification_plan_step.py +0 -0
  46. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/identification_task.py +0 -0
  47. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/identification_task_utils.py +0 -0
  48. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/peo_common_step.py +0 -0
  49. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/prompt_utils.py +0 -0
  50. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/python_ast_repl_tool.py +0 -0
  51. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/agents/rag_collection_task.py +0 -0
  52. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/conversation.py +0 -0
  53. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/database/code_structure_db.py +0 -0
  54. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/database/summarized_file_db.py +0 -0
  55. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/generation/__init__.py +0 -0
  56. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/generation/change_planner.py +0 -0
  57. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/generation/document_renderer.py +0 -0
  58. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/generation/llm_cleaner.py +0 -0
  59. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/generation/llm_injector.py +0 -0
  60. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/generation/models.py +0 -0
  61. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/generation/output_manager.py +0 -0
  62. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/generation/repo_reader.py +0 -0
  63. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/generation/report_loader.py +0 -0
  64. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/generation/style_analyzer.py +0 -0
  65. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/generation/suggestion_extractor.py +0 -0
  66. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/generation/test_metrics.py +0 -0
  67. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/managers/generation_test_manager.py +0 -0
  68. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/rag/__init__.py +0 -0
  69. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/rag/config.py +0 -0
  70. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/rag/data_pipeline.py +0 -0
  71. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/rag/embedder.py +0 -0
  72. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/rag/rag.py +0 -0
  73. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/settings.py +0 -0
  74. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/utils/constants.py +0 -0
  75. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/utils/default.gitignore +0 -0
  76. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/utils/file_utils.py +0 -0
  77. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/utils/gitignore_checker.py +0 -0
  78. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/utils/notebook_utils.py +0 -0
  79. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/utils/pyphen_utils.py +0 -0
  80. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/utils/python_file_handler.py +0 -0
  81. {bioguider-0.2.31 → bioguider-0.2.33}/bioguider/utils/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bioguider
3
- Version: 0.2.31
3
+ Version: 0.2.33
4
4
  Summary: An AI-Powered package to help biomedical developers to generate clear documentation
5
5
  License: MIT
6
6
  Author: Cankun Wang
@@ -27,6 +27,7 @@ from bioguider.utils.utils import clean_action_input
27
27
  from ..utils.gitignore_checker import GitignoreChecker
28
28
  from ..database.summarized_file_db import SummarizedFilesDb
29
29
  from bioguider.agents.common_conversation import CommonConversation
30
+ from bioguider.rag.config import configs
30
31
 
31
32
  logger = logging.getLogger(__name__)
32
33
 
@@ -66,8 +67,17 @@ def get_llm(
66
67
  api_version: str=None,
67
68
  azure_deployment: str=None,
68
69
  temperature: float = 0.0,
69
- max_tokens: int = 4096,
70
+ max_tokens: int = 16384, # Set high by default - enough for any document type
70
71
  ):
72
+ """
73
+ Create an LLM instance with appropriate parameters based on model type and API version.
74
+
75
+ Handles parameter compatibility across different models and API versions:
76
+ - DeepSeek models: Use max_tokens parameter
77
+ - GPT models (newer): Use max_completion_tokens parameter
78
+ - GPT-5+: Don't support custom temperature (uses default)
79
+ """
80
+
71
81
  if model_name.startswith("deepseek"):
72
82
  chat = ChatDeepSeek(
73
83
  api_key=api_key,
@@ -76,23 +86,38 @@ def get_llm(
76
86
  max_tokens=max_tokens,
77
87
  )
78
88
  elif model_name.startswith("gpt"):
79
- chat = AzureChatOpenAI(
80
- api_key=api_key,
81
- azure_endpoint=azure_endpoint,
82
- api_version=api_version,
83
- azure_deployment=azure_deployment,
84
- model=model_name,
85
- temperature=temperature,
86
- max_tokens=max_tokens,
87
- )
89
+ # Base parameters common to all GPT models
90
+ llm_params = {
91
+ "api_key": api_key,
92
+ "azure_endpoint": azure_endpoint,
93
+ "api_version": api_version,
94
+ "azure_deployment": azure_deployment,
95
+ "model": model_name,
96
+ }
97
+
98
+ # Determine token limit parameter name based on API version
99
+ # Newer APIs (2024-08+) use max_completion_tokens instead of max_tokens
100
+ use_completion_tokens = api_version and api_version >= "2024-08-01-preview"
101
+ token_param = "max_completion_tokens" if use_completion_tokens else "max_tokens"
102
+ llm_params[token_param] = max_tokens
103
+
104
+ # Handle temperature parameter based on model capabilities
105
+ # GPT-5+ models don't support custom temperature values
106
+ supports_temperature = not any(restricted in model_name for restricted in ["gpt-5", "o1", "o3"])
107
+ if supports_temperature:
108
+ llm_params["temperature"] = temperature
109
+
110
+ chat = AzureChatOpenAI(**llm_params)
88
111
  else:
89
- raise ValueError("Invalid model name")
90
- # validate chat
112
+ raise ValueError(f"Unsupported model type: {model_name}")
113
+
114
+ # Validate the LLM instance with a simple test
91
115
  try:
92
116
  chat.invoke("Hi")
93
117
  except Exception as e:
94
- print(e)
118
+ logger.error(f"Failed to initialize LLM {model_name}: {e}")
95
119
  return None
120
+
96
121
  return chat
97
122
 
98
123
  def pretty_print(message, printout = True):
@@ -153,7 +178,9 @@ def read_directory(
153
178
  return None
154
179
  gitignore_checker = GitignoreChecker(
155
180
  directory=dir_path,
156
- gitignore_path=gitignore_path
181
+ gitignore_path=gitignore_path,
182
+ exclude_dir_patterns=configs["file_filters"]["excluded_dirs"],
183
+ exclude_file_patterns=configs["file_filters"]["excluded_files"],
157
184
  )
158
185
  files = gitignore_checker.check_files_and_folders(level=level)
159
186
  return files
@@ -28,6 +28,7 @@ from bioguider.utils.constants import (
28
28
  EvaluationREADMEResult,
29
29
  )
30
30
  from bioguider.utils.utils import increase_token_usage
31
+ from bioguider.rag.config import configs
31
32
 
32
33
  logger = logging.getLogger(__name__)
33
34
 
@@ -638,7 +639,9 @@ class EvaluationREADMETask(EvaluationTask):
638
639
  repo_path = self.repo_path
639
640
  gitignore_path = Path(repo_path, ".gitignore")
640
641
  gitignore_checker = GitignoreChecker(
641
- directory=repo_path, gitignore_path=gitignore_path
642
+ directory=repo_path, gitignore_path=gitignore_path,
643
+ exclude_dir_patterns=configs["file_filters"]["excluded_dirs"],
644
+ exclude_file_patterns=configs["file_filters"]["excluded_files"],
642
645
  )
643
646
  found_readme_files = gitignore_checker.check_files_and_folders(
644
647
  check_file_cb=lambda root_dir, relative_path: Path(relative_path).name.lower() in possible_readme_files,