alchemist-nrel

v0.3.4 suspicious
6.0
Medium Risk

Active learning and optimization toolkit for chemical and materials research

πŸ€– AI Analysis

Final verdict: SUSPICIOUS

The package exhibits moderate risks due to network and shell execution vulnerabilities, although no direct evidence of malicious intent was found. The incomplete metadata adds to the suspicion.

  • network risk from external server calls
  • potential shell injection through subprocess calls
Per-check LLM notes
  • Network: The package makes network calls to an external server which could be used for legitimate purposes like API interactions but also raises concerns about potential unauthorized data transmission.
  • Shell: Subprocess calls to npm indicate that the package might be involved in building or managing frontend assets, however, it could potentially execute arbitrary commands if not properly sanitized or controlled.
  • Obfuscation: The obfuscated code appears to be related to model evaluation and prediction in a machine learning context, which is not inherently malicious but could indicate an attempt to obscure code logic.
  • Credentials: No clear patterns indicative of credential harvesting were detected.
  • Metadata: The author's details are incomplete and the account seems new or inactive, which could indicate potential risk.

πŸ“¦ Package Quality Overall: Medium (6.0/10)

β—ˆ Medium Test Suite 6.0

Partial test coverage signals detected

  • Test runner config found: pyproject.toml
β—ˆ Medium Documentation 7.0

Some documentation present

  • Documentation URL: "Documentation" -> https://natlabrockies.github.io/ALchemist/
  • Detailed PyPI description (6103 chars)
β—‹ Low Contributing Guide 4.0

No contributing guide or governance files found

  • Development Status classifier >= Beta
β—ˆ Medium Type Annotations 5.0

Partial type annotation coverage

  • 222 type-annotated function signatures detected in source
✦ High Multiple Contributors 8.0

Active multi-contributor project

  • 3 unique contributor(s) across 100 commits in NatLabRockies/ALchemist
  • Small but multi-author team (3–4 contributors)

πŸ”¬ Heuristic Checks

⚠ Outbound Network Calls score 9.0

Found 6 network call pattern(s)

  • n session...") response = requests.post(f"{BASE_URL}/sessions", json={}) response.raise_for_stat
  • ature variable response = requests.post( f"{BASE_URL}/sessions/{session_id}/variables",
  • ssure variable response = requests.post( f"{BASE_URL}/sessions/{session_id}/variables",
  • (categorical) response = requests.post( f"{BASE_URL}/sessions/{session_id}/variables",
  • 1}, ] response = requests.post( f"{BASE_URL}/sessions/{session_id}/experiments/batc
  • t data summary response = requests.get(f"{BASE_URL}/sessions/{session_id}/experiments/summary")
⚠ Code Obfuscation score 10.0

Found 6 obfuscation pattern(s)

  • ): sub_model.eval() sub_model.likelihood.eval() with t
  • sub_model.likelihood.eval() with torch.no_grad(): posterio
  • ation mode self.model.eval() self.model.likelihood.eval() # Ma
  • self.model.likelihood.eval() # Make predictions with torch.no_
  • ation mode self.model.eval() self.model.likelihood.eval() # Ge
  • self.model.likelihood.eval() # Get posterior with torch.no_gra
⚠ Shell / Subprocess Execution score 4.0

Found 2 shell execution pattern(s)

  • dependencies...") subprocess.check_call( ["npm", "ci" if (frontend_dir / "package-lo
  • application...") subprocess.check_call( ["npm", "run", "build"], cw
βœ“ Credential Harvesting

No credential harvesting patterns detected

βœ“ Typosquatting

No typosquatting candidates detected

βœ“ Registered Email Domain

Email domain looks legitimate: nrel.gov>

βœ“ Suspicious Page Links

All external links appear legitimate

βœ“ Git Repository History

Repository NatLabRockies/ALchemist appears legitimate

⚠ Maintainer History score 4.0

2 maintainer concern(s) found

  • Author name is missing or very short
  • Author "" appears to have only 1 package on PyPI (new or inactive account)
βœ“ Known CVE Vulnerabilities

No known vulnerabilities found in OSV database.

πŸ’‘ AI App Starter Prompt

Use this prompt to build a project with alchemist-nrel
Create a mini-application named 'MaterialOptimizer' that leverages the 'alchemist-nrel' package to optimize the synthesis process of new materials. This application will be designed for researchers in chemistry and materials science who need to find the optimal conditions for synthesizing new materials based on experimental data. Here’s a step-by-step guide on what the application should achieve:

1. **Data Input**: Users should be able to input their experimental data, which includes various parameters such as temperature, pressure, concentration of reactants, etc., along with the resulting properties of the synthesized material (e.g., strength, conductivity).
2. **Model Training**: Utilize 'alchemist-nrel' to train a machine learning model on the provided data. This model will predict the properties of the material given certain synthesis conditions.
3. **Optimization**: Implement an active learning loop using 'alchemist-nrel' where the model iteratively suggests new experiments to run based on what it has learned so far. These suggestions aim to maximize information gain about the optimal synthesis conditions.
4. **Visualization**: Provide visualizations of the predicted material properties against different synthesis conditions, helping users understand the relationship between conditions and outcomes.
5. **Report Generation**: Automatically generate a report summarizing the findings from the optimization process, including key insights and recommendations for further experimentation.

Suggested Features:
- Integration with common file formats for data import/export.
- Real-time updates to visualizations as more data is processed.
- A user-friendly interface for non-experts to interact with the application.
- Support for multiple models within 'alchemist-nrel' to compare performance.

Utilization of 'alchemist-nrel':
- Use 'alchemist-nrel' for its active learning capabilities to suggest the most informative experiments.
- Leverage the optimization algorithms provided by 'alchemist-nrel' to refine the search space for optimal conditions.
- Employ the predictive modeling tools within 'alchemist-nrel' to forecast material properties based on proposed synthesis conditions.