Skip to content

Release notes

Version 0.2.1

Feature changes and enhancements

Breaking Changes

  • The status code for the POST /chats endpoint in case a user requests an unknown component was changed from 404 to 422 to avoid confusion.
  • The MosaicML inference API was, to the best of our knowledge, removed. Thus, the ragna.assistants.Mpt7bInstruct and ragna.assistants.Mpt30bInstruct were defunct with no chance from our side to recover functionality.

What's Changed

New Contributors

Version 0.2.0

Feature changes and enhancements

  • Ragna's 0.1.x releases were built on a task queue backend. This turned out to be a premature optimization that limited us in other features we wanted to implement. Thus, we removed it without impacting the API. This enabled us to add two new features:
  • Ragna gained support for Markdown (.md), Microsoft Word (.docx), and Microsoft Powerpoint (.pptx) documents.
  • Ragna now has an official docker image. Try it with

    $ docker run -p 31476:31476 -p 31477:31477 quay.io/quansight/ragna:0.2.0
    

    The web UI can be accessed under http://localhost:31477.

  • Instead of just returning the location of a source, e.g. page numbers in a PDF document but potentially nothing for other formats that don't have this kind of information, the REST API now also returns the full source content. This aligns it with the Python API. The source view in the web UI now also shows the source content.

Breaking Changes

  • As a result of the removal of the task queue, ragna worker is no longer needed and was removed. The same applies to the --start-worker option of ragna api and the queue_url configuration option (see below).
  • The return type of ragna.core.Assistant.answer changed from str to Iterator[str] / AsyncIterator[str]. To reflect that in the implementation, replace return with yield. To stream the response, yield multiple times.
  • The abstract property ragna.core.Assistant.max_input_size was removed. This information was never used anywhere. Note that you don't have to remove it from existing implementations. It will just stay unused by Ragna.
  • We introduced a couple of changes to the configuration file.

    • The top level local_cache_root option was renamed to local_root to align with the new ragna.local_root function.
    • The [core] section was dissolved and its options merged into the top level. The queue_url option was removed.
    • The authentication option was moved from the [api] section to the top level.
    • Both the [api] and [ui] section gained a hostname and port parameter that are used to bind the application. The url option, previously used for the same purpose, option was removed from the [ui] section. It was retained in the [api] section, but now only indicates the URL the REST API can be contacted on, e.g. by the web UI, and has no effect on how the REST API is bound.
    • The default value of database_url in the [api] section changed to use a persistent database by default. The "memory" option is no longer available. Use sqlite:// if you want to retain the non-persistent behavior.
    • The [api] section gained a new root_path option to help deploying Ragna behind a proxy. By default, the behavior does not change compared to before.

    Below you can find a comparison between two equivalent configuration files

    v0.1.3
    local_cache_root = "/home/user/.cache/ragna"
    
    [core]
    queue_url = "memory"
    document = "ragna.core.LocalDocument"
    source_storages = [
        "ragna.source_storages.Chroma",
        ...
    ]
    assistants = [
        "ragna.assistants.Claude",
        ...
    ]
    
    [api]
    url = "http://127.0.0.1:31476"
    origins = ["http://127.0.0.1:31477"]
    database_url = "memory"
    authentication = "ragna.core.RagnaDemoAuthentication"
    
    [ui]
    url = "http://127.0.0.1:31477"
    origins = ["http://127.0.0.1:31477"]
    
    v0.2.0
    local_root = "/home/user/.cache/ragna"
    authentication = "ragna.deploy.RagnaDemoAuthentication"
    document = "ragna.core.LocalDocument"
    source_storages = [
        "ragna.source_storages.Chroma",
        ...
    ]
    assistants = [
        "ragna.assistants.Claude",
        ...
    ]
    
    [api]
    hostname = "127.0.0.1"
    port = 31476
    root_path = ""
    url = "http://127.0.0.1:31476"
    origins = [
        "http://127.0.0.1:31477",
    ]
    database_url = "sqlite://"
    
    [ui]
    hostname = "127.0.0.1"
    port = 31477
    origins = [
        "http://127.0.0.1:31477",
    ]
    
  • The database scheme changed and is no longer compatible with the tables used in previous releases. The default database set by the configuration wizard is located at ~/.cache/ragna/ragna.db. Please delete it. It will be created anew the next time the REST API is started.
  • The /chat/{chat_id}/prepare and /chat/{chat_id}/answer endpoints of the REST API now no longer return the chat object, but only the message.

What's Changed

New Contributors

Version 0.1.3

What's Changed

New Contributors

Version 0.1.2

Breaking changes

  • The /document endpoints on the REST API have changed

    • The GET /document endpoint of the REST API to register the document and get the upload information changed to POST /document. The document name now needs to be passed as part of the body as JSON rather than as query parameter.
    • The JSON object returned by the new POST /document endpoint of the REST API now bundles the url and data fields under one parameters fields. In addition, the parameters field also now includes a method field that specifies how the upload request should be sent.
    • The POST /document endpoint of the REST API to upload documents stored locally changed to PUT /document.

    For example

    document_upload = client.get("/document", params={"name": name}).json()
    client.post(
        document_upload["url"],
        data=document_upload["data"],
        files={"file": ...},
    )
    

    needs to change to

    document_upload = client.post("/document", json={"name": name}).json()
    parameters = document_upload["parameters"]
    client.request(
        parameters["method"],
        parameters["url"],
        data=parameters["data"],
        files={"file": ...},
    )
    

What's Changed

  • pin pymupdf to latest release by @pmeier in #169
  • Update assistant timeout to accomodate longer response time. by @petrpan26 in #184
  • cache importlib_metadata_package_distributions by @pmeier in #188
  • fix LanceDB retrieval by @pmeier in #195
  • use model_config over Config class by @pmeier in #199
  • special case LocalDocument more by @pmeier in #170
  • docs: small improvements to "Set Configuration" how-to by @agilgur5 in #197
  • docs: various improvements to Python API tutorial by @agilgur5 in #196
  • fix chat info by @pmeier in #220
  • change version scheme to increase the minor instead of patch version by @pmeier in #221
  • run CI on release branches by @pmeier in #222
  • mark as PEP561 compatible by @pmeier in #232
  • set hard limit of visible document pills by @pmeier in #235
  • supply document name as part of the request body rather than query by @pmeier in #186
  • Make document upload method flexible by @pmeier in #238

New Contributors

Version 0.1.1

Feature changes and enhancements

  • The optional dependencies needed for the builtin components are now available under the 'all' key. Please install Ragna with pip install 'ragna[all]'.
  • The functionality of ragna config and ragna config --check was split into two commands: ragna init and ragna check. Use ragna init to start the configuration creation wizard and create a configuration file. ragna check is used to check the availability of the selected components in an existing configuration file.
  • In the default configuration, ragna ui now starts with RagnaDemoAuthentication enabled. To login, you can use an arbitrary username and the same string for the password as well. For example, leaving both fields blank allows you to login.

Breaking Changes

  • The command ragna config was removed. Use ragna init to create a configuration file and ragna check to check it.
  • The special options 'builtin' (former default) and 'demo' were removed from the Ragna CLI. Now a configuration file is required and can be created by ragna init. Note that by default all subcommands will automatically use the ragna.toml file in the current working directory in case it exists if the -c / --config flag is not used.
  • The configuration options config.api.upload_token_secret and config.api.upload_token_ttl were removed. The former can now only be configured with the RAGNA_API_DOCUMENT_UPLOAD_SECRET environment variable and the latter is now fixed at 5 minutes. If you want to keep using your generated configuration files, please delete the upload_token_secret and upload_token_ttl keys in the [api] section.

What's Changed

New Contributors

Version 0.1.0

Initial release. Read the launch blog post here.