Skip to main content

AI-powered patent workflow: search, analyze, draft, review, export

Project description

memoriant-patent-core

PyPI Python Tests Coverage MIT License

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

memoriant_patent_core-0.1.0.tar.gz (100.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

memoriant_patent_core-0.1.0-py3-none-any.whl (87.1 kB view details)

Uploaded Python 3

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

Hashes for memoriant_patent_core-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8f03f87c705e50cab02d6f75b2e9846d247beea6bcdeb5c80f2f73744e941cb0
MD5 daa1ccf78f51dd60782077afad8acd6f
BLAKE2b-256 831174d9b559f8dc6eee63b24af58e79dab9482493bedeed2852107d87958fdf

See more details on using hashes here.

Provenance

The following attestation bundles were made for memoriant_patent_core-0.1.0.tar.gz:

Publisher: publish.yml on NathanMaine/memoriant-patent-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file memoriant_patent_core-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for memoriant_patent_core-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a0c5d99e3adffffbea81d74c614e156310befdbd070c17abfb27240f6c0abdec
MD5 84de2e09dfef971176b9fdf2b3b70ffd
BLAKE2b-256 8e561b83fc3c74d3049f8405fa7250321f568e80becd32b834a1b03fa4f36f1d

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page