AI-powered patent workflow: search, analyze, draft, review, export
Project description
memoriant-patent-core
AI-powered patent workflow library: prior art search, novelty analysis, and application drafting for provisional, non-provisional, and PCT filings.
Installation
pip install memoriant-patent-core
With optional extras:
pip install "memoriant-patent-core[vector]" # Qdrant vector storage
pip install "memoriant-patent-core[postgres]" # PostgreSQL/Supabase storage
pip install "memoriant-patent-core[pdf]" # PDF export via WeasyPrint
pip install "memoriant-patent-core[all]" # All optional dependencies
Quick Start
import asyncio
from memoriant_patent_core import PatentPipeline, ClaudeProvider, UserConfig
from memoriant_patent_core.models.config import LLMProviderConfig, StorageConfig
async def main():
config = UserConfig(
llm=LLMProviderConfig(provider="claude", model="claude-opus-4-5"),
storage=StorageConfig(backend="sqlite", path="patents.db"),
)
provider = ClaudeProvider(api_key="YOUR_ANTHROPIC_KEY", model="claude-opus-4-5")
pipeline = PatentPipeline(config=config, llm=provider)
result = await pipeline.run(
invention_description="A method for lossless compression of neural network weights using structured sparsity masks.",
)
print(f"Stage reached: {result.stage}")
print(f"Draft title: {result.draft.title}")
print(f"Claims: {len(result.draft.claims)}")
asyncio.run(main())
Features
- Prior Art Search — USPTO ODP, PatentsView, Semantic Scholar, SerpAPI (Google Patents), semantic vector search
- AI Analysis — Novelty, obviousness, claim quality scoring, eligibility assessment, formalities review
- Application Drafting — Provisional, non-provisional (utility), PCT with structured claims and specifications
- Export — DOCX (python-docx) and PDF (WeasyPrint) with USPTO-compliant formatting
- LLM Agnostic — Claude (default), OpenAI-compatible endpoints (Ollama, vLLM, LM Studio)
- Encrypted Storage — SQLite (local), Qdrant (vector), PostgreSQL/Supabase, with AES-256 secret storage
- Pipeline Orchestration — Full end-to-end workflow with stage re-entry, metrics, and structured logging
Usage
Search
from memoriant_patent_core import SearchAggregator, SearchQuery
aggregator = SearchAggregator(providers=[...])
query = SearchQuery(text="neural network weight compression", max_results=20)
response = await aggregator.search(query)
for result in response.results:
print(result.patent_number, result.title, result.similarity_score)
Analyze
from memoriant_patent_core.analysis.novelty import NoveltyAnalyzer
from memoriant_patent_core.analysis.quality_score import QualityScorer
analyzer = NoveltyAnalyzer(llm=provider)
result = await analyzer.analyze(patent=my_patent, prior_art=search_results)
print(result.score, result.summary)
Draft
from memoriant_patent_core import ProvisionalDrafter, NonProvisionalDrafter, PCTDrafter
drafter = ProvisionalDrafter(llm=provider)
draft = await drafter.draft(patent=my_patent)
np_drafter = NonProvisionalDrafter(llm=provider)
np_draft = await np_drafter.draft(patent=my_patent, claims=draft.claims)
Export
from memoriant_patent_core import export_docx, export_pdf
docx_bytes = await export_docx(draft)
pdf_bytes = await export_pdf(draft)
with open("application.docx", "wb") as f:
f.write(docx_bytes)
Configuration
Claude (default)
from memoriant_patent_core import ClaudeProvider
provider = ClaudeProvider(api_key="sk-ant-...", model="claude-opus-4-5")
Ollama / vLLM / LM Studio (local)
from memoriant_patent_core import OpenAICompatProvider
# Ollama on DGX Spark
provider = OpenAICompatProvider(base_url="http://10.0.4.93:11434/v1", model="qwen2.5:72b")
# LM Studio
provider = OpenAICompatProvider(base_url="http://10.0.4.93:1234/v1", model="your-model")
# vLLM
provider = OpenAICompatProvider(base_url="http://localhost:8000/v1", model="meta-llama/Llama-3-70b")
Command Line
# Search for prior art
export PATENTSVIEW_API_KEY=your-key
memoriant-patent search "wireless power transfer for medical implants"
memoriant-patent search "adaptive frequency hopping" --format json --max-results 20
# Show version
memoriant-patent version
Related Projects
- memoriant-patent-platform — Full platform with FastAPI REST API, Docker Compose, authentication, and web UI
- Memoriant skills plugin — Claude Code skill for in-IDE patent workflows (coming soon)
Disclaimer
This library is a workflow automation tool. It does not constitute legal advice. Patent applications should be reviewed by a registered patent attorney or agent before filing with the USPTO or any patent office.
License
MIT License — Copyright (c) 2025 Nathan Maine
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file memoriant_patent_core-0.1.0.tar.gz.
File metadata
- Download URL: memoriant_patent_core-0.1.0.tar.gz
- Upload date:
- Size: 100.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f03f87c705e50cab02d6f75b2e9846d247beea6bcdeb5c80f2f73744e941cb0
|
|
| MD5 |
daa1ccf78f51dd60782077afad8acd6f
|
|
| BLAKE2b-256 |
831174d9b559f8dc6eee63b24af58e79dab9482493bedeed2852107d87958fdf
|
Provenance
The following attestation bundles were made for memoriant_patent_core-0.1.0.tar.gz:
Publisher:
publish.yml on NathanMaine/memoriant-patent-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
memoriant_patent_core-0.1.0.tar.gz -
Subject digest:
8f03f87c705e50cab02d6f75b2e9846d247beea6bcdeb5c80f2f73744e941cb0 - Sigstore transparency entry: 1183878449
- Sigstore integration time:
-
Permalink:
NathanMaine/memoriant-patent-core@4fc929cdcc93a4a8544eba39e89282d241268fbe -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/NathanMaine
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4fc929cdcc93a4a8544eba39e89282d241268fbe -
Trigger Event:
release
-
Statement type:
File details
Details for the file memoriant_patent_core-0.1.0-py3-none-any.whl.
File metadata
- Download URL: memoriant_patent_core-0.1.0-py3-none-any.whl
- Upload date:
- Size: 87.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0c5d99e3adffffbea81d74c614e156310befdbd070c17abfb27240f6c0abdec
|
|
| MD5 |
84de2e09dfef971176b9fdf2b3b70ffd
|
|
| BLAKE2b-256 |
8e561b83fc3c74d3049f8405fa7250321f568e80becd32b834a1b03fa4f36f1d
|
Provenance
The following attestation bundles were made for memoriant_patent_core-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on NathanMaine/memoriant-patent-core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
memoriant_patent_core-0.1.0-py3-none-any.whl -
Subject digest:
a0c5d99e3adffffbea81d74c614e156310befdbd070c17abfb27240f6c0abdec - Sigstore transparency entry: 1183878532
- Sigstore integration time:
-
Permalink:
NathanMaine/memoriant-patent-core@4fc929cdcc93a4a8544eba39e89282d241268fbe -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/NathanMaine
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4fc929cdcc93a4a8544eba39e89282d241268fbe -
Trigger Event:
release
-
Statement type: