null-lens


Namenull-lens JSON
Version 1.0.1 PyPI version JSON
download
home_pageNone
SummaryThe missing protocol between user requests and AI actions β€” standardized intent parsing for every AI system.
upload_time2025-10-12 23:25:00
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords ai intent parser standardization sdk
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ⟁ Null Lens

**The missing protocol between user requests and AI actions.**  
Standardized intent parsing for every AI system.  
Converts any input into a deterministic schema β€” **[Motive] [Scope] [Priority]**.

---

## 🧩 What it does

Null Lens turns unstructured natural-language input into a fixed three-line intent block:

```
[Motive] β€” what the user wants to achieve
[Scope] β€” where the request applies (context or domain)
[Priority] β€” what must be done first or resolved
````

One ambiguous paragraph in β†’ three structured fields out.

---
## 🐍 Python SDK

```bash
pip install null-lens
```

**Usage**

```python
from null_lens import NullLens

lens = NullLens(api_key="your_api_key_here")

result = lens.parse("Summarize Q4 strategy across LATAM markets.")
print(result)
```
**Response**

```
[Motive] Summarize strategic direction for Q4  
[Scope] LATAM markets  
[Priority] Identify key actions for planning cycle
```
---
## ⚑ JavaScript / TypeScript SDK
```bash
npm install null-lens
```
**Usage**

```js
import { NullLens } from "null-lens";

const lens = new NullLens(process.env.NULL_LENS_API_KEY);

const result = await lens.parse("Summarize Q4 strategy across LATAM markets.");
console.log(result);
```
**Response**

```
[Motive] Summarize strategic direction for Q4  
[Scope] LATAM markets  
[Priority] Identify key actions for planning cycle
```
---
### Get your API key
You’ll need an API key to use Lens.

β†’ [https://null-core.ai](https://null-core.ai) β†’ sign up β†’ get **100 free queries instantly.**  
No credit card. No approval delay.

```bash
export NULL_LENS_API_KEY="your_api_key_here"
# or on Windows PowerShell
setx NULL_LENS_API_KEY "your_api_key_here"
```

---

## 🧠 Why it matters

AI systems don’t fail at inference β€” they fail at **interpretation.**
Lens removes ambiguity before reasoning begins.

**Without Lens**

* Prompt retries
* Context drift
* RAG scaffolding debt

**With Lens**

* Stable input schema
* Consistent reasoning
* Deterministic orchestration

---

## πŸ”Œ API Access

**Endpoint**

```
POST https://null-core.ai/api/lens
```

**Headers**

```
Authorization: Bearer <API_KEY>  
Content-Type: application/json
```

**Body**

```json
{
  "messages": [
    {
      "role": "user",
      "content": "Summarize the latency impact of our RAG pipeline for 100k qps"
    }
  ]
}
```

**Response**

```json
{
  "object": "chat.completion",
  "org_id": "xxxx-xxxx-xxxx",
  "response": "[Motive] Identify latency impact of RAG pipeline\n[Scope] RAG pipeline, 100k QPS scenario\n[Priority] Optimize for performance stability"
}
```

---

## 🧩 Parsing Helpers

**JavaScript**

```js
function parseLensResponse(responseText) {
  const lines = responseText.split(/\r?\n/).map(l => l.trim()).filter(Boolean);
  const find = (prefix) => {
    const line = lines.find(l => l.toLowerCase().startsWith(prefix));
    return line ? line.split(']').slice(1).join(']').trim() : null;
  };
  return {
    motive: find('[motive]'),
    scope: find('[scope]'),
    priority: find('[priority]')
  };
}
```

**Python**

```python
def parse_lens_response(text):
    lines = [l.strip() for l in text.splitlines() if l.strip()]
    def find(prefix):
        for l in lines:
            if l.lower().startswith(prefix):
                return l.split(']', 1)[1].strip()
        return None
    return {
        "motive": find("[motive]"),
        "scope": find("[scope]"),
        "priority": find("[priority]")
    }
```

---

## 🧩 Example cURL

```bash
curl -X POST https://null-core.ai/api/lens \
  -H "Authorization: Bearer <API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{"messages":[{"role":"user","content":"We migrated API to v2 and uptime dropped β€” logs show auth timeouts. Root cause & mitigation before Friday?"}]}'
```

---

## 🧠 Best Practices

* **One call per semantic input** β€” send full text in `messages[0].content`.
* **Persist outputs** β€” store Motive / Scope / Priority as fields in your DB.
* **Cache identical inputs** β€” identical input β†’ identical output.
* **Use Lens before RAG / agents** β€” treat its output as your canonical intent layer.
* **Test with messy inputs** β€” long emails, transcripts, logs; the schema holds.

---

## πŸ” Security & Compliance

* Stateless β€” no inputs stored or retained.
* You manage your own API keys.
* Rotate keys if compromised.
* Don’t send confidential or PII data unless necessary.
* Provided *as-is*, without warranties; you own compliance and handling.

---

## ❓ FAQ

**Q:** Is Lens stateful?
**A:** No β€” each call is independent. Inputs are transient and not stored.

**Q:** Is the output deterministic?
**A:** Yes. Same input β†’ same 3-line output. Determinism by design.

**Q:** Will the format ever change?
**A:** Never. The `[Motive] / [Scope] / [Priority]` schema is permanent.

**Q:** Average latency?
**A:** ~1–5 s per call, depending on region and load.

**Q:** Enterprise pricing?
**A:** Contact **[support@null-core.ai](mailto:support@null-core.ai)** for volume or dedicated environments.

---

## 🩢 License

MIT License β€” see [LICENSE](LICENSE)

---

**API-first. Stateless. Deterministic.**
Every call, every time.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "null-lens",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "AI, intent, parser, standardization, sdk",
    "author": null,
    "author_email": "Null Technologies <support@null-core.ai>",
    "download_url": "https://files.pythonhosted.org/packages/be/ef/6147a8d9f539ceb933bed6becd96ada97bbf4b84ce4d9804a604054ff5d4/null_lens-1.0.1.tar.gz",
    "platform": null,
    "description": "# \u27c1 Null Lens\r\n\r\n**The missing protocol between user requests and AI actions.**  \r\nStandardized intent parsing for every AI system.  \r\nConverts any input into a deterministic schema \u2014 **[Motive] [Scope] [Priority]**.\r\n\r\n---\r\n\r\n## \ud83e\udde9 What it does\r\n\r\nNull Lens turns unstructured natural-language input into a fixed three-line intent block:\r\n\r\n```\r\n[Motive] \u2014 what the user wants to achieve\r\n[Scope] \u2014 where the request applies (context or domain)\r\n[Priority] \u2014 what must be done first or resolved\r\n````\r\n\r\nOne ambiguous paragraph in \u2192 three structured fields out.\r\n\r\n---\r\n## \ud83d\udc0d Python SDK\r\n\r\n```bash\r\npip install null-lens\r\n```\r\n\r\n**Usage**\r\n\r\n```python\r\nfrom null_lens import NullLens\r\n\r\nlens = NullLens(api_key=\"your_api_key_here\")\r\n\r\nresult = lens.parse(\"Summarize Q4 strategy across LATAM markets.\")\r\nprint(result)\r\n```\r\n**Response**\r\n\r\n```\r\n[Motive] Summarize strategic direction for Q4  \r\n[Scope] LATAM markets  \r\n[Priority] Identify key actions for planning cycle\r\n```\r\n---\r\n## \u26a1 JavaScript / TypeScript SDK\r\n```bash\r\nnpm install null-lens\r\n```\r\n**Usage**\r\n\r\n```js\r\nimport { NullLens } from \"null-lens\";\r\n\r\nconst lens = new NullLens(process.env.NULL_LENS_API_KEY);\r\n\r\nconst result = await lens.parse(\"Summarize Q4 strategy across LATAM markets.\");\r\nconsole.log(result);\r\n```\r\n**Response**\r\n\r\n```\r\n[Motive] Summarize strategic direction for Q4  \r\n[Scope] LATAM markets  \r\n[Priority] Identify key actions for planning cycle\r\n```\r\n---\r\n### Get your API key\r\nYou\u2019ll need an API key to use Lens.\r\n\r\n\u2192 [https://null-core.ai](https://null-core.ai) \u2192 sign up \u2192 get **100 free queries instantly.**  \r\nNo credit card. No approval delay.\r\n\r\n```bash\r\nexport NULL_LENS_API_KEY=\"your_api_key_here\"\r\n# or on Windows PowerShell\r\nsetx NULL_LENS_API_KEY \"your_api_key_here\"\r\n```\r\n\r\n---\r\n\r\n## \ud83e\udde0 Why it matters\r\n\r\nAI systems don\u2019t fail at inference \u2014 they fail at **interpretation.**\r\nLens removes ambiguity before reasoning begins.\r\n\r\n**Without Lens**\r\n\r\n* Prompt retries\r\n* Context drift\r\n* RAG scaffolding debt\r\n\r\n**With Lens**\r\n\r\n* Stable input schema\r\n* Consistent reasoning\r\n* Deterministic orchestration\r\n\r\n---\r\n\r\n## \ud83d\udd0c API Access\r\n\r\n**Endpoint**\r\n\r\n```\r\nPOST https://null-core.ai/api/lens\r\n```\r\n\r\n**Headers**\r\n\r\n```\r\nAuthorization: Bearer <API_KEY>  \r\nContent-Type: application/json\r\n```\r\n\r\n**Body**\r\n\r\n```json\r\n{\r\n  \"messages\": [\r\n    {\r\n      \"role\": \"user\",\r\n      \"content\": \"Summarize the latency impact of our RAG pipeline for 100k qps\"\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n**Response**\r\n\r\n```json\r\n{\r\n  \"object\": \"chat.completion\",\r\n  \"org_id\": \"xxxx-xxxx-xxxx\",\r\n  \"response\": \"[Motive] Identify latency impact of RAG pipeline\\n[Scope] RAG pipeline, 100k QPS scenario\\n[Priority] Optimize for performance stability\"\r\n}\r\n```\r\n\r\n---\r\n\r\n## \ud83e\udde9 Parsing Helpers\r\n\r\n**JavaScript**\r\n\r\n```js\r\nfunction parseLensResponse(responseText) {\r\n  const lines = responseText.split(/\\r?\\n/).map(l => l.trim()).filter(Boolean);\r\n  const find = (prefix) => {\r\n    const line = lines.find(l => l.toLowerCase().startsWith(prefix));\r\n    return line ? line.split(']').slice(1).join(']').trim() : null;\r\n  };\r\n  return {\r\n    motive: find('[motive]'),\r\n    scope: find('[scope]'),\r\n    priority: find('[priority]')\r\n  };\r\n}\r\n```\r\n\r\n**Python**\r\n\r\n```python\r\ndef parse_lens_response(text):\r\n    lines = [l.strip() for l in text.splitlines() if l.strip()]\r\n    def find(prefix):\r\n        for l in lines:\r\n            if l.lower().startswith(prefix):\r\n                return l.split(']', 1)[1].strip()\r\n        return None\r\n    return {\r\n        \"motive\": find(\"[motive]\"),\r\n        \"scope\": find(\"[scope]\"),\r\n        \"priority\": find(\"[priority]\")\r\n    }\r\n```\r\n\r\n---\r\n\r\n## \ud83e\udde9 Example cURL\r\n\r\n```bash\r\ncurl -X POST https://null-core.ai/api/lens \\\r\n  -H \"Authorization: Bearer <API_KEY>\" \\\r\n  -H \"Content-Type: application/json\" \\\r\n  -d '{\"messages\":[{\"role\":\"user\",\"content\":\"We migrated API to v2 and uptime dropped \u2014 logs show auth timeouts. Root cause & mitigation before Friday?\"}]}'\r\n```\r\n\r\n---\r\n\r\n## \ud83e\udde0 Best Practices\r\n\r\n* **One call per semantic input** \u2014 send full text in `messages[0].content`.\r\n* **Persist outputs** \u2014 store Motive / Scope / Priority as fields in your DB.\r\n* **Cache identical inputs** \u2014 identical input \u2192 identical output.\r\n* **Use Lens before RAG / agents** \u2014 treat its output as your canonical intent layer.\r\n* **Test with messy inputs** \u2014 long emails, transcripts, logs; the schema holds.\r\n\r\n---\r\n\r\n## \ud83d\udd10 Security & Compliance\r\n\r\n* Stateless \u2014 no inputs stored or retained.\r\n* You manage your own API keys.\r\n* Rotate keys if compromised.\r\n* Don\u2019t send confidential or PII data unless necessary.\r\n* Provided *as-is*, without warranties; you own compliance and handling.\r\n\r\n---\r\n\r\n## \u2753 FAQ\r\n\r\n**Q:** Is Lens stateful?\r\n**A:** No \u2014 each call is independent. Inputs are transient and not stored.\r\n\r\n**Q:** Is the output deterministic?\r\n**A:** Yes. Same input \u2192 same 3-line output. Determinism by design.\r\n\r\n**Q:** Will the format ever change?\r\n**A:** Never. The `[Motive] / [Scope] / [Priority]` schema is permanent.\r\n\r\n**Q:** Average latency?\r\n**A:** ~1\u20135 s per call, depending on region and load.\r\n\r\n**Q:** Enterprise pricing?\r\n**A:** Contact **[support@null-core.ai](mailto:support@null-core.ai)** for volume or dedicated environments.\r\n\r\n---\r\n\r\n## \ud83e\ude76 License\r\n\r\nMIT License \u2014 see [LICENSE](LICENSE)\r\n\r\n---\r\n\r\n**API-first. Stateless. Deterministic.**\r\nEvery call, every time.\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "The missing protocol between user requests and AI actions \u2014 standardized intent parsing for every AI system.",
    "version": "1.0.1",
    "project_urls": {
        "Documentation": "https://github.com/null-core-ai/null-lens#readme",
        "Homepage": "https://null-core.ai",
        "Issues": "https://github.com/null-core-ai/null-lens/issues",
        "Repository": "https://github.com/null-core-ai/null-lens"
    },
    "split_keywords": [
        "ai",
        " intent",
        " parser",
        " standardization",
        " sdk"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "011ab271a5c2ee6e9e35e764cf83d5dbcc6d07c401ddecbd491327550a360a6b",
                "md5": "981dabf9fd9e070d86e8fec2936dd853",
                "sha256": "c67dce6edb1d3a81056217f89a8ad2ed7afef23fe76a7326db5bf4d5ec2fc6f4"
            },
            "downloads": -1,
            "filename": "null_lens-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "981dabf9fd9e070d86e8fec2936dd853",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 4406,
            "upload_time": "2025-10-12T23:24:59",
            "upload_time_iso_8601": "2025-10-12T23:24:59.226972Z",
            "url": "https://files.pythonhosted.org/packages/01/1a/b271a5c2ee6e9e35e764cf83d5dbcc6d07c401ddecbd491327550a360a6b/null_lens-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "beef6147a8d9f539ceb933bed6becd96ada97bbf4b84ce4d9804a604054ff5d4",
                "md5": "28d467b9c631cbfb608438be340a230e",
                "sha256": "46b8dd50b9bef18b90e0d451643198be197810c6a25bde6dc53900e16b8df9cc"
            },
            "downloads": -1,
            "filename": "null_lens-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "28d467b9c631cbfb608438be340a230e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 4517,
            "upload_time": "2025-10-12T23:25:00",
            "upload_time_iso_8601": "2025-10-12T23:25:00.545411Z",
            "url": "https://files.pythonhosted.org/packages/be/ef/6147a8d9f539ceb933bed6becd96ada97bbf4b84ce4d9804a604054ff5d4/null_lens-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-12 23:25:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "null-core-ai",
    "github_project": "null-lens#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "null-lens"
}
        
Elapsed time: 1.76695s