ai5labs-relay

v0.3.0 suspicious
4.0
Medium Risk

Relay — production-grade multi-provider LLM client. One YAML, one interface, every model.

🤖 AI Analysis

Final verdict: SUSPICIOUS

The package exhibits moderate obfuscation risk and has a newly established repository with limited activity, raising concerns about its legitimacy and purpose.

  • Moderate obfuscation risk due to base64 decoding
  • Repository is new with low activity
Per-check LLM notes
  • Network: The observed network call patterns are typical for a package that likely performs HTTP requests, possibly for API interactions or similar legitimate purposes.
  • Shell: No shell execution patterns were detected, indicating no immediate risk from shell command execution.
  • Obfuscation: The presence of base64 decoding suggests potential obfuscation, but without context it's hard to determine if it's malicious.
  • Credentials: No clear patterns of credential harvesting detected.
  • Metadata: The repository is new with no activity, and the maintainer has only one package on PyPI.

📦 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://github.com/ai5labs/relay-llm#readme
  • Detailed PyPI description (10870 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 7.0

Partial type annotation coverage

  • Classifier: Typing :: Typed
  • Type checker (mypy / pyright / pytype) referenced in project
  • 308 type-annotated function signatures detected in source
✦ High Multiple Contributors 8.0

Active multi-contributor project

  • 4 unique contributor(s) across 52 commits in ai5labs/relay-llm
  • Small but multi-author team (3–4 contributors)

🔬 Heuristic Checks

Outbound Network Calls score 6.0

Found 4 network call pattern(s)

  • e: self._client = httpx.AsyncClient( timeout=httpx.Timeout(_POST_TIMEOUT_S),
  • nts[key] client = httpx.AsyncClient( base_url=base_url, http2=se
  • .provider) async with httpx.AsyncClient( base_url=base_url, timeout=60.0,
  • al else "" async with httpx.AsyncClient( base_url=entry.base_url or self._default_base_u
Code Obfuscation score 2.0

Found 1 obfuscation pattern(s)

  • "source": {"bytes": base64.b64decode(b64)}, } }
Shell / Subprocess Execution

No shell execution patterns detected

Credential Harvesting

No credential harvesting patterns detected

Typosquatting

No typosquatting candidates detected

Registered Email Domain

Email domain looks legitimate: ai5labs.com>

Suspicious Page Links

All external links appear legitimate

Git Repository History score 2.5

Git history flags: Repository has zero stars and zero forks

  • Repository has zero stars and zero forks
Maintainer History score 2.0

1 maintainer concern(s) found

  • Author "ai5labs Research OPC Pvt Ltd" 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 ai5labs-relay
Create a fully-functional mini-app called 'MultiModelQuery' that leverages the 'ai5labs-relay' Python package to provide a unified interface for querying various Large Language Models (LLMs). This app will serve as a simple yet powerful tool for developers and researchers to interact with different LLMs seamlessly. Here’s how you can structure your project:

1. **Project Setup**: Start by setting up a virtual environment and installing the 'ai5labs-relay' package. Ensure that you have the necessary dependencies installed.

2. **Configuration File**: Create a YAML configuration file that specifies the details of the LLM providers you want to connect to. This includes API keys, endpoints, and any other required settings. For example, you might include configurations for OpenAI, Anthropic, and Cohere models.

3. **Main Application Interface**: Develop a command-line interface (CLI) that allows users to select which model they want to query from a list of available providers. Users should be able to input their queries directly through the CLI.

4. **Query Processing**: Implement functionality within the application that processes user queries and sends them to the selected LLM provider via the 'ai5labs-relay' package. The package should handle the communication and return the response to the user.

5. **Response Handling**: Design a feature that formats and displays the responses from the LLMs in a readable format. Additionally, include options for saving these responses to a local file for later reference.

6. **Error Handling**: Add robust error handling mechanisms to manage potential issues such as invalid inputs, connection errors, or rate limits imposed by the LLM providers.

7. **Testing and Documentation**: Write tests to ensure that your application works correctly across different scenarios and document your code thoroughly so others can understand and use it easily.

Suggested Features:
- Support for multiple query types (text completion, classification, etc.).
- Option to switch between synchronous and asynchronous request modes.
- Detailed logging of all interactions with LLMs.
- User authentication and authorization for accessing sensitive APIs.
- Integration with popular cloud services for easy deployment.

By following these steps, you'll create a versatile tool that showcases the capabilities of the 'ai5labs-relay' package while providing real-world value to users.