Skip to content

Releases: Quansight/ragna

v0.2.0

16 Mar 20:55
c6bdb0f
Compare
Choose a tag to compare

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 classes ragna.deploy.Authentication, ragna.deploy.RagnaDemoAuthentication, and ragna.deploy.Config moved from the ragna.core module to a new ragna.deploy module.

  • ragna.core.Component, which is the superclass for ragna.core.Assistant and ragna.core.SourceStorage, no longer takes a ragna.deploy.Config to instantiate. For example

    class MyAssistant(ragna.core.Assistant):
        def __init__(self, config):
            super().__init__(config)

    needs to change to

    class MyAssistant(ragna.core.Assistant):
        def __init__(self):
            super().__init__()

    You can use the new ragna.local_root function as replacement for config.local_root if needed.

  • 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

Read more

0.1.3

20 Dec 20:41
Compare
Choose a tag to compare

What's Changed

New Contributors

0.1.2

08 Dec 08:57
Compare
Choose a tag to compare

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

0.1.1

03 Nov 12:43
3d8541f
Compare
Choose a tag to compare

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

Initial release

31 Oct 22:59
a04efc2
Compare
Choose a tag to compare
v0.1.0

fix logo link (#121)

PyPI placeholder

16 Aug 18:25
Compare
Choose a tag to compare
v0.0.1

prepare for PyPI placeholder publish