Skip to main content

Core shared libraries for multimodal Kani extensions.

Project description

kani-multimodal-core

This package contains core extensions for using Kani with multimodal language models.

Installation

kani-multimodal-core should be installed alongside the core kani install using an extra:

$ pip install "kani[multimodal]"

However, you can also explicitly specify a version and install the core package itself:

$ pip install kani-multimodal-core

Features

This package provides the core multimodal extensions that engine implementations can use -- it does not provide any engine implementations on its own.

The package adds support for:

  • Images (kani.ext.multimodal_core.ImagePart)
  • Audio (kani.ext.multimodal_core.AudioPart)
  • Video (kani.ext.multimodal_core.VideoPart)
  • Other binary files, such as PDFs (kani.ext.multimodal_core.BinaryFilePart)

When installed, these core kani engines will automatically use the multimodal parts:

  • OpenAIEngine
  • AnthropicEngine
  • GoogleAIEngine

Additionally, the core kani chat_in_terminal method will support attaching multimodal data from a local drive or from the internet using @/path/to/media or @https://example.com/media.

Message Parts

The main feature you need to be familiar with is the MessagePart, the core way of sending messages to the engine. To do this, when you call the kani round methods (i.e. Kani.chat_round or Kani.full_round or their str variants), pass a list of multimodal parts rather than a string:

from kani import Kani
from kani.engines.openai import OpenAIEngine
from kani.ext.multimodal_core import ImagePart

engine = OpenAIEngine(model="gpt-4.1-nano")
ai = Kani(engine)

# notice how the arg is a list of parts rather than a single str!
msg = await ai.chat_round_str([
    "Please describe this image:",
    ImagePart.from_file("path/to/image.png")
])
print(msg)

See the docs (https://kani-multimodal-core.readthedocs.io) for more information about the provided message parts.

Terminal Utility

When installed, kani-multimodal-core augments the chat_in_terminal utility provided by kani.

This utility allows you to provide multimodal media on your disk or on the internet inline by prepending it with an @ symbol:

>>> from kani import chat_in_terminal
>>> chat_in_terminal(ai)
USER: Please describe this image: @path/to/image.png and also this one: @https://example.com/image.png

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

kani_multimodal_core-0.0.2.tar.gz (47.0 MB view details)

Uploaded Source

Built Distribution

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

kani_multimodal_core-0.0.2-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file kani_multimodal_core-0.0.2.tar.gz.

File metadata

  • Download URL: kani_multimodal_core-0.0.2.tar.gz
  • Upload date:
  • Size: 47.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for kani_multimodal_core-0.0.2.tar.gz
Algorithm Hash digest
SHA256 7bdfd87a5e6b699203e57488244d7a2d7809499243f1a2709b3d0f3968025959
MD5 f18cf4c90cab6e44c7c9b30321e9f3a1
BLAKE2b-256 f3256f28a4dc4959a39fb3a88489612fbd7530493ee162d306cf70e1d9310a98

See more details on using hashes here.

Provenance

The following attestation bundles were made for kani_multimodal_core-0.0.2.tar.gz:

Publisher: pythonpublish.yml on zhudotexe/kani-multimodal-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 kani_multimodal_core-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for kani_multimodal_core-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 898dd4f812fcba75addf18abcae4850cdb3fd17cf436fb425bd057fe7de75bb9
MD5 caca7341f4e5c2bae3998fe4e74049ba
BLAKE2b-256 86caa522d46559a6564f0224a0005bac823c300dbb1a1facc5ea934dfc08adcb

See more details on using hashes here.

Provenance

The following attestation bundles were made for kani_multimodal_core-0.0.2-py3-none-any.whl:

Publisher: pythonpublish.yml on zhudotexe/kani-multimodal-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