Skip to content
Back to skills

Client Api

ASecurity

"Guides clip_client.Client connectivity, encoding, ranking,

  • 247 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
ai-agentspythonbashdockerapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill client-api --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Client Api?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Client Api
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-client-api/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-client-api)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: client-api
description: "Guides clip_client.Client connectivity, encoding, ranking,
  indexing, searching, async calls, callbacks, and client-side troubleshooting."
disable-model-invocation: true
metadata:
  disco-role: operating
license: NOASSERTION
---

# Client API

Use this sub-skill when the user wants to call CLIP-as-service from Python or diagnose client-side behavior against an already-running server.

## Trigger examples

- "Use `clip_client.Client` to encode these text and image inputs."
- "Why does `Client.profile()` fail with `AioRpcError`?"
- "Rank text prompts against an image using CLIP-as-service."
- "Use async `aencode` or callbacks for a large stream."
- "Call `index`/`search` from the client after my search Flow is running."

## Read first

- [references/api-reference.md](references/api-reference.md) for verified method signatures, parameters, return types, input rules, and endpoint mapping.
- [references/workflows.md](references/workflows.md) for copyable recipes: connectivity profile, encoding, DocArray inputs, ranking, async calls, and client calls for search.
- [references/troubleshooting.md](references/troubleshooting.md) for invalid scheme, direct string input, empty input, missing embeddings, connectivity, TLS/auth, non-unique IDs, and callback issues.
- [scripts/check_client_api.py](scripts/check_client_api.py) to verify client imports/signatures safely; it only contacts a server when `--server` is supplied.

## Boundary routing

- If the server is not started yet or the user needs Flow YAML, model/runtime choice, Docker, TLS certificates, replicas, or monitoring, route to [server-runtime](../server-runtime/SKILL.md).
- If the task is to build the AnnLite search Flow, validate `n_dim`, or reason about sharding/polling, route to [search-retrieval](../search-retrieval/SKILL.md).
- If the task is only package installation or optional dependency diagnosis, also read the root [install map](../../references/install-and-package-map.md).

## Minimal client pattern

```python
from clip_client import Client

client = Client("grpc://0.0.0.0:51000")
latency = client.profile()
embeddings = client.encode(["a red car", "a blue bicycle"])
print(latency, embeddings.shape)
```

Use TLS schemes (`grpcs`, `https`, `websockets`/`wss`) only when the server was started with matching TLS configuration. Use `credential={"Authorization": "<token>"}` or the `CLIP_AUTH_TOKEN` environment variable for authenticated gRPC/HTTP endpoints.

## Input and output rules to preserve

- Passing a single bare string to `encode`, `index`, or `search` is an error; wrap it in a list.
- `encode(list[str])` returns a NumPy array. `encode(DocumentArray)` or `encode(list[Document])` returns a `DocumentArray` containing the same objects with embeddings filled.
- Ranking expects each root `Document` to have cross-modal candidates in `.matches` unless `source` is overridden.
- Empty inputs return empty list/`DocumentArray` depending on input type and method.
- Order and complete result gathering rely on unique `Document.id` values.

## Common decision points

1. **Protocol:** match the URI scheme to the server (`grpc`, `http`, or `websocket`; add `s` for TLS variants).
2. **Input representation:** use strings for simple text/image URIs; use `Document`/`DocumentArray` when you need explicit text/uri/blob/tensor fields, nested matches, chunks, or metadata preservation.
3. **Batching:** adjust `batch_size` and `prefetch` for memory/network behavior; very large streams may warn when length is unknown or high.
4. **Callbacks:** if `on_done`/`on_always` owns result collection, methods can return `None` instead of assembled results.
5. **Search client calls:** `Client.index` and `Client.search` require a server Flow with an indexer. An encoder-only server can encode/rank but not search a corpus.

## Verification hints

Run the safe signature check before writing code in an unfamiliar environment:

```bash
python sub-skills/client-api/scripts/check_client_api.py
```

If a real server is available and the user approves a network call, profile it explicitly:

```bash
python sub-skills/client-api/scripts/check_client_api.py --server grpc://127.0.0.1:51000 --profile
```

Files in this skill

  • SKILL.md4.1 KB
  • references/api-reference.md4.2 KB
  • references/troubleshooting.md4.3 KB
  • references/workflows.md3.9 KB
  • scripts/check_client_api.py3.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.