What is Inquire?

Inquire is a general purpose video agent that watches videos and answers questions about them. Inquire has access to tools within Moonshine and uses multiple VLMS behind the scenes. The logs display all actions done by the agent.

The path to use inquire:

core/inquire

Running Inquire

To use inquire through run:

resp = moonshine.run(
    flow="core/inquire",
    index="your-index-name",
    prompt="How has the car changed over time?"
)

Images in Inquire

An image can also be put into inquire calls. The image can only be a remote URL and a prompt is still required.

resp = moonshine.run(
    flow="core/inquire",
    index="your-index-name",
    image="https://example.com/image.jpg",
    prompt="How has the car changed over time?",
)

Enforced JSONs

The enfored JSON parameter can be used to reuqire a response structure. To use enforced JSONs:

json = {
    "type": "object",
    "properties": {
        "answer": {"type": "string"},
        "confidence": {"type": "number"}
}

resp = moonshine.run(
    flow="core/inquire",
    index="your-index-name",
    prompt="How has the car changed over time?",
    enforced_json=json
)

Sub Indexes

Using a sub index will isolate the inquire call to process a subset of the videos in the index:

resp = moonshine.run(
    flow="core/inquire",
    index="your-index-name",
    prompt="How has the car changed over time?",
    subindex=[
        "FHXYU838JHDWK.mp4",
        "AJDIEUJDKSLW.mp4"
    ],
)

Inquire Response Format

Inquire returns raw text unless otherwise specified. If an enforced JSON is provided, the response will be a JSON object conforming to the enforced JSON schema.

Inquire JSON

TODO