assayer

v1.0.1 suspicious
5.0
Medium Risk

Run a prompt across multiple LLMs and compare outputs side by side in the terminal.

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package shows some red flags, particularly concerning metadata and maintainership, which could suggest potential risks. However, the network and shell risks are relatively low.

  • Missing maintainer information
  • No associated Git repository
Per-check LLM notes
  • Network: The network calls appear to be local and may be part of the package's functionality, but further investigation into the API endpoint is needed.
  • Shell: No shell execution patterns detected.
  • Metadata: The package has some red flags such as missing maintainer information and no associated Git repository, which could indicate potential issues.

📦 Package Quality Overall: Low (4.4/10)

✦ High Test Suite 9.0

Test suite present — 6 test file(s) found

  • Test runner config found: pyproject.toml
  • 6 test file(s) detected (e.g. test_cli.py)
◈ Medium Documentation 5.0

Some documentation present

  • Detailed PyPI description (4965 chars)
○ Low Contributing Guide 2.0

No contributing guide or governance files found

  • No CONTRIBUTING, CODE_OF_CONDUCT, or governance files found
◈ Medium Type Annotations 5.0

Partial type annotation coverage

  • 35 type-annotated function signatures detected in source
○ Low Multiple Contributors 1.0

Unable to verify contributor count: no GitHub repository found

  • No GitHub repository linked — contributor count unavailable

🔬 Heuristic Checks

Outbound Network Calls score 4.5

Found 3 network call pattern(s)

  • try: response = httpx.get("http://localhost:11434/api/tags", timeout=3.0) res
  • try: async with httpx.AsyncClient(timeout=3.0) as client: response = await client
  • try: async with httpx.AsyncClient(timeout=60.0) as client: response = await c
Code Obfuscation

No obfuscation patterns detected

Shell / Subprocess Execution

No shell execution patterns detected

Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

No author email provided

Suspicious Page Links

All external links appear legitimate

Git Repository History

No GitHub repository linked

  • No GitHub repository link found
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 assayer
Create a mini-application called 'LLMComparer' that leverages the 'assayer' Python package to facilitate comparison of responses from different large language models (LLMs). This application should allow users to input a query or prompt and then display the output from multiple LLMs side by side in the terminal for easy comparison. Here are the key steps and features to implement:

1. **Setup**: Ensure all necessary packages, including 'assayer', are installed and properly configured.
2. **User Interface**: Design a simple command-line interface where users can enter their prompts.
3. **Prompt Processing**: Allow users to input custom prompts or select from predefined ones.
4. **LLM Selection**: Provide options for users to choose which LLMs they want to use for their comparisons (e.g., GPT-3, Claude).
5. **Response Display**: Implement functionality to display the responses from selected LLMs side by side in the terminal for direct comparison.
6. **Output Formatting**: Enhance readability by formatting the output in a clear and organized manner.
7. **Additional Features**: Consider adding features like saving the comparison results to a file, allowing users to rate or comment on the responses, and providing statistics about response times.
8. **Testing and Documentation**: Thoroughly test the application and provide clear documentation for setup and usage.

💬 Discussion Feed

Leave a comment

No discussion yet. Be the first to share your thoughts!