Skip to main content

The official Python library for the NetMind's API

Project description


NetMind Python API library

PyPI version PyPI version X Facebook Telegram

The NetMind Python API Library is the official Python client for NetMind's API platform, providing a convenient way for interacting with the REST APIs and enables easy integrations with Python 3.10+ applications with easy to use synchronous and asynchronous clients.

📚 Table of Contents

Installation

To install NetMind Python Library from PyPI, simply run:

pip install --upgrade netmind

Setting up API Key

You will need to create an account with NetMind.ai to obtain a NetMind API Key.

Once logged in to the NetMind Playground, you can find available API keys in Dashboard.

Setting environment variable

export NETMIND_API_KEY=<your_netmind_api_key>

Using the client

from netmind import NetMind


client = NetMind(api_key="your_netmind_api_key")

This repo contains both a Python Library and a CLI. We'll demonstrate how to use both below.

Usage – Python Client

Chat Completions

👉 Supports plain text and multi-modal messages. Use content array with type: "text" and type: "image_url" for image input.

from netmind import NetMind


client = NetMind()


# Simple text message
response = client.chat.completions.create(
    model="Qwen/Qwen3-8B",
    messages=[
        {"role": "system", "content": "Act like you are a helpful assistant."},
        {"role": "user", "content": "Hi there!"},
    ],
    max_tokens = 512
)
print(response.choices[0].message.content)

# Multi-modal message with text and image
response = client.chat.completions.create(
    model="doubao/Doubao-1.5-vision-pro",
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "What's in this image?"
            },
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://huggingface.co/datasets/patrickvonplaten/random_img/resolve/main/yosemite.png"
                }
            }
        ]
    }]
)
print(response.choices[0].message.content)

The chat completions API supports three types of content:

  • Plain text messages using the content field directly
  • Multi-modal messages with images using type: "image_url"

When using multi-modal content, the content field becomes an array of content objects, each with its own type and corresponding data.

Streaming

👉 Use stream=True for incremental, real-time responses.

from netmind import NetMind


client = NetMind()
stream = client.chat.completions.create(
    model="meta-llama/Llama-4-Scout-17B-16E-Instruct",
    messages=[
        {"role": "system", "content": "Act like you are a helpful assistant."},
        {"role": "user", "content": "Hi there!"},
    ],
    stream=True,
)

for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="", flush=True)

Async usage

👉 Use the AsyncNetMind class for asynchronous environments. All async methods require await and work well with frameworks like FastAPI.

import asyncio
from netmind import AsyncNetMind


async_client = AsyncNetMind()


async def async_chat_completion():
    response = await async_client.chat.completions.create(
        model="meta-llama/Llama-4-Scout-17B-16E-Instruct",
        messages=[
            {"role": "system", "content": "Act like you are a helpful assistant."},
            {"role": "user", "content": "Hi there!"},
        ]
    )
    print(response.choices[0].message.content)


asyncio.run(async_chat_completion())

Embeddings

👉 Supports list inputs and returns embeddings for each entry.

from netmind import NetMind

client = NetMind()


response = client.embeddings.create(
    model="nvidia/NV-Embed-v2",
    input=["Hello world", "NetMind is awesome!"]
)
print(len(response.data[0].embedding))

Async usage

import asyncio
from netmind import AsyncNetMind


async_client = AsyncNetMind()


async def async_embeddings():
    response = await async_client.embeddings.create(
        model="nvidia/NV-Embed-v2",
        input=["Hello world", "NetMind is awesome!"]
    )
    print(len(response.data[0].embedding))
asyncio.run(async_embeddings())

Files

👉 Required for async file-based operations like aparse(). Upload local files to get a downloadable URL via client.files.create().

from netmind import NetMind
from netmind.types.files import FilePurpose


client = NetMind()


# Upload a file
file_response = client.files.create(
    file="path/to/your/file.jsonl",
    purpose=FilePurpose.inference
)
print(f"File uploaded with ID: {file_response.id}")

# List files
files = client.files.list()
print("files found:", len(files))
print("files id:", files[0].id)


file_id = "your_file_id_here"
# Retrieve a file
file = client.files.retrieve(file_id)  
print(file)

# Retrieve download url for a file
download_url = client.files.retrieve_url(file_id)
print("Download URL:", download_url.presigned_url)


# Delete a file
client.files.delete(file_id)

Async usage

import asyncio
from netmind import AsyncNetMind
from netmind.types.files import FilePurpose


async_client = AsyncNetMind()


async def async_file_operations():
    # Upload a file
    file_response = await async_client.files.create(
        file="path/to/your/file.jsonl",
        purpose=FilePurpose.fine_tune
    )
    print(f"File uploaded with ID: {file_response.id}")

    # List files
    files = await async_client.files.list()
    print("files found:", len(files.data))

    file_id = "your_file_id_here"
    # Retrieve a file
    file = await async_client.files.retrieve(file_id)  
    print(file)

    # Retrieve download url for a file
    download_url = await async_client.files.retrieve_url(file_id)
    print("Download URL:", download_url.presigned_url)

    # Delete a file
    await async_client.files.delete(file_id)

asyncio.run(async_file_operations())

ParsePro

✅ Sync method parse() supports both local files and URLs.

from netmind import NetMind


client = NetMind()


result = client.parse_pro.parse('http://tmpfiles.org/dl/2267856/test.pdf', 'json')
print(result)
result = client.parse_pro.parse('/path/to/test.pdf', 'markdown')
print(result)

Async Task usage

⚠️ Async parsing requires a public URL. Local files must be uploaded first. Use client.files.create() to generate a usable URL.

from netmind import NetMind
import time


client = NetMind()

# task = client.parse_pro.parse('/path/to/test.pdf', 'markdown')
task = client.parse_pro.aparse('http://tmpfiles.org/dl/2267856/test.pdf', 'json')
print(task.task_id, task.status)

time.sleep(10)

result = client.parse_pro.aresult(task.task_id)
print(result.status, result.data)

ParsePro Async usage

from netmind import AsyncNetMind
import asyncio


client = AsyncNetMind()


async def main():
    # task = client.parse_pro.parse('/path/to/test.pdf', 'json')
    task = await client.parse_pro.aparse('http://tmpfiles.org/dl/2267856/test.pdf', 'markdown')
    print(task.task_id, task.status)

    await asyncio.sleep(10)

    result = await client.parse_pro.aresult(task.task_id)
    print(result.status, result.data)


asyncio.run(main())

ℹ️ Notes

  • parse() (sync) supports both URLs and local files.
  • ⚠️ aparse() and all async parsing require a public URLlocal files must be uploaded first.
  • ✅ Use client.files.create() to upload files and get a downloadable URL.
  • 🧠 Async clients (AsyncNetMind) are ideal for integration into event loops or async workflows.
  • 🎯 Multi-modal chat input must use structured content arrays.

Usage – CLI

coming soon

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

netmind-0.1.5.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

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

netmind-0.1.5-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file netmind-0.1.5.tar.gz.

File metadata

  • Download URL: netmind-0.1.5.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.10.18 Darwin/24.5.0

File hashes

Hashes for netmind-0.1.5.tar.gz
Algorithm Hash digest
SHA256 4943c599de3317c1cca0471b2166831e6dd4b238974b093def04467723c2f21c
MD5 63331b78bcc3f6d71c9e57f955ee940e
BLAKE2b-256 f51080fe46a05f17cd9329c2d1a54686e7ea2990828d8f7eb7db3c7f734ae270

See more details on using hashes here.

File details

Details for the file netmind-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: netmind-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.10.18 Darwin/24.5.0

File hashes

Hashes for netmind-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6a44375127f2711e359abcb1333eac0589a7ba75c97fb5fbb62aa30a2103310a
MD5 6c3f0d72d5e2411f85d8957cfa65cef9
BLAKE2b-256 4947281d2cf2aedc220eb45d63ee8799b3d845b69d881b8ce9415b3551a5c547

See more details on using hashes here.

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