What's new in AskAnna

We're constantly making AskAnna better. Here you find the highlights about new features and improvements we made. Check our release notes if you want to read about everything we released.

October 2021

Go public with your projects

With AskAnna you can now share your project publicly. Set your workspace visibility to allow for public sharing and update your project visibility.

If you share the URL of a public project, people without an AskAnna account can view it. This makes it possible to go for maximum transparency by sharing everything tracked in your project.


Set project visibility to public


Workspace viewer

Want to keep your project private and only ask certain people to review the work done? You do this by inviting them as a viewer. A workspace viewer can view everything but cannot perform actions. For example, they cannot start a run or push a new code version.

Workspace viewer

AskAnna user profile

When you are part of multiple workspaces, setting a user profile for every project can be annoying. With this release of AskAnna you can choose to have a specific profile for a workspace, or to use your default AskAnna profile.

AskAnna profile

July 2021

Notifications

For scheduled jobs or long runnings tasks, we hope that sending notifications will help you. With notifications, it’s no longer necessary to keep an eye on the AskAnna run page.

notifications:
  all:
    email:
      - [email protected]
  error:
    email:
      - workspace admins

On the job page, you can also see if notifications emails are configured:

Notifications view

Read more about notifications in the documentation.

Environment images: run Python, R, Julia, C++, etc

In AskAnna, you can now configure the environment image to use. This makes running non-Python projects a lot faster. For example, you can refer to the Julia image to run a Julia script:

environment:
  image: julia

And to help you to reproduce results, on the run page you can find the environment used:

Environment image used in AskAnna run

You can try any image published on Docker Hub, or pull an image from your private registry. Read more about environment images in the documentation. Or try our demo:

Demo: run TensorFlow

Remove jobs and runs

It was already possible to remove a project in AskAnna. You can now also remove a job or run. And if you decide to stop using AskAnna (hopefully not), you can also remove your workspace.

Remove a run

Ignore files

When you use the AskAnna CLI to push code to your project, you might want to exclude some files or directories. Inspired by gitignore, we added support to ignore files and directories.

You can now add a file askannaignore or .askannaignore and set what should be excluded when you push code to AskAnna. Do you already have a .gitignore file in your project directory? Then you can use that as well.

Live updates of run log

To see the log, you don’t have to wait anymore till the run is finished. Now we update the log while the run is in progress. Hopefully, this helps you to check the status of an active run.

Live updates of run log AskAnna

Support for code blocks in descriptions

Actually, it was already possible to add a code block in a description, but the autoformatting was not working pretty well. With the new version of the description editor, we improved this.

In the editor, you can now select the language that AskAnna should use for formatting the code block. Also, you can copy the code block with a single click. Hopefully, this will make life a little easier.

Support code blocks in AskAnna descriptions

June 2021

Run and compare multiple models

Besides the documentation, we also work on practical examples of how you can run jobs in AskAnna. Hopefully, this inspires how you can do your project with AskAnna. The first example is all about running code in AskAnna. It shows how you can train and evaluate multiple models using AskAnna.

Try out the example:
Run and compare multiple models

Get results

It was already possible to download the result of a run using the web interface or API. Now you can also get the result of a run via the Python SDK or CLI. This makes it possible to load a trained model directly in your Python script.

import askanna

predict_model = askanna.result.get("RUN_SUUID")

The CLI makes it easier to download a result:

askanna result get
Read more about getting results

Update the information of a workspace, project or job

It’s now possible to change the information of a workspace, project, job and run via the web interface:

Update project info in AskAnna

May 2021

Give runs a name

It’s now possible to give your run a name and description. You can set the name when you start the run. Also, you can set a description. For example, use it to write down where the run is about.

Give the run a name in AskAnna

When you run a job via the CLI, optionally you can optionally add the name and description as well:

askanna run job_name --name "Provide a name" --description "and a description"

Most of the run info cannot be edited afterward. AskAnna wants you to be able to reproduce what you did. But for the name and description of a run, we make an exception. Based on what happened during the run, you can change the name or add more information about the result of the run.

Edit run info in AskAnna

Support for more result types for a run

Till this release, we focused on JSON output as a result of a run. But when you are developing a model, the result might also be something else. We now support that you can save any binary data as a result of a run.

In the web interface, we now also let you view multiple file types:

  • JSON
  • XML
  • CSV
  • PDF
  • Excel
  • Text
  • HTML
  • Images (jpg, jpeg and png)

For large results, we only show a preview. And if possible we show a pretty view of the result data.

Result of a run in AskAnna

Read more about Result types

Set the time zone for the environment

Last month we released schedules with an option to set the time zone that the schedule should be based on. Next, we got a question if it also meant that if they set the time zone, it also was that the run environment would use that time zone. This was not the case, but with this release you can. Thanks for the question!

So, if you set the time zone in the askanna.yml file, we will set the time zone of the run environment to it. When you use date or time related functions, the specified time zone will be used.

push-target: ...
timezone: Europe/Amsterdam

example-job:
  job:
    - date

If you run this job in AskAnna, in the log you will see something like:

AskAnna CLI, version 0.9.0 

...

$ date 
Thu May 20 11:24:39 CEST 2021 

...

Run succeeded 
Read more about Time Zones

April 2021

Schedule your Job

Sometimes you have a job that you want to run frequently. Now you can add a schedule to your askanna.yml configuration:

name of the job:
  job:
    - ...
  schedule:
    - "@weekly"

We support multiple schedules, and you can set the timezone:

name of the job:
  job:
    - ...
  schedule:
    - "@weekly"
    - day: 1
    - "0 8 * * *"

When you add a schedule to your job, you can check the schedules on the job page. Also you can see when the next run is planned:

Schedule your Job in AskAnna

Read more about Schedules

Track Variables

When you run a job, you can now not only track metrics but also track variables. It’s as simple as adding two lines to your Python file:

from askanna import track_variable

track_variable(name="model name", value="XGBoost")

Similar to track metrics, you can also get the tracked variables using the Python SDK or view them in the web interface:

Track Variables in AskAnna

Read more about Track Variables

March 2021

Track Metrics

When you run a job, you can now track metrics in AskAnna. It’s as simple as adding two lines to your Python file:

from askanna import track_metric

track_metric(name="accuracy", value=accuracy)

A variety of data types are supported, and you can add labels. Labels can be useful for situations where you run different scenarios, want to compare different models, et cetera.

Want to analyze your run, or make a report in your Notebook? Via the Python SDK you can get the run metrics.

import askanna

run = askanna.run.get(run="4Xo4-n1Wz-ky73-Nhe7", include_metrics=True)
accuracy = run.metrics.get("accuracy")

And you can view the metrics in the web interface as well:

Track Metrics in AskAnna

Read more about Track Metrics

February 2021

Push and Run

Thanks to David we launched an updated version of askanna run. With the new version you can push your code and run a job with one command:

askanna run my_job --push

Make it faster

When you have a job with many runs, loading the page could take a while. We made improvements to the web page, so it will load faster.

Improved search for documentation

By adding more features, also the documentation is growing. We made an update and with the new version you will experience better search results. Also it should open faster, and hopefully easier to navigate. Please, check it out and let us now what you think.

Check The AskAnna Documentation

January 2021

Launched our public Beta

We launched the free Beta version of our platform. If you want to try it or use it for one of your projects, you can sign up within a minute.

Sign up for the free
Beta version of AskAnna today!

Run a job using the AskAnna CLI

You can now run a job using the AskAnna CLI. Install the CLI, and you only have to run the command askanna run.

When you are working on a project, you can also add the name of the job. Using this will enable you to start jobs while working on your project. Run your experiments in the background while you continue working on your project…or something else.

askanna run JOB_NAME

Read more about runnings jobs using the AskAnna CLI.

Python SDK for AskAnna

We made a start with the Python SDK for AskAnna. With this version, you can manage runs and variables via your Python application.

Read more about the Python SDK in our documentation.

Support by chat

Happy new year! We started 2021 by adding support on the web interface of the AskAnna platform. You can click on the support icon in the bottom right, and you can start a chat with us. You can ask us anything. We can’t promise that we can help you with everything ;)

AskAnna support

What happened in 2020

2020 is the year where we start building AskAnna. We made the foundation of our platform. The base version is all about helping you kickstart your data science, machine learning, or artificial intelligence project. Next, we highlight some of the stuff we had done or build in 2020.

On a technical level, we set up the backend in Django, the AskAnna CLI using Python, and the frontend with Vue.js. AskAnna embraces REST API. This will also help you to integrate AskAnna with other solutions.

We have introduced a couple of concepts:

  • Workspace: here you organize your projects
  • Project: a central location for your project code, jobs, variables and runs
  • Job: the definition of commands (a job) you want to run in AskAnna, and the output you want to save
  • Run: relevant information from the jobs you run in AskAnna

Quick-to-learn: run your job in the cloud within 15 minutes

AskAnna is designed that it should be fast to configure and intuitive to use. You can learn how to configure a project in 5 steps. Check our documentation with the 5 steps to create a project “Hello AskAnna” and end with running a job.

Run page

To be able to reproduce your results, for a generated result you want to know:

  • Which input was used
  • The result of the job
  • Artifacts (in case necessary)
  • Version of the code
  • Log of the run

That’s why we designed the run page. On this page, you can find all information regarding your job run.

AskAnna run page

Job page

On the job page, you can find all runs for that job, but there is more. You can also see how you can run the job. No need to look it up in the documentation, but a simple section on the job page. You can trigger a job via the web interface. Also, you can copy the code for Python or curl.

AskAnna job page

Using environment variables

We want to make it easy for you to develop locally and then run your script in the cloud. One of the concepts we use is based on environment variables. Variables you add to your project will become available as environment variables in the run environment.

For example, you want to set up a PostgreSQL database connection. Locally you add a .env file to your project. Here you specify the variables:

DATABASE_HOST=localhost
DATABASE_USER=postgres
DATABASE_PASSWORD=password

In your Python script, you can set up the connection:

from os import getenv
from dotenv import load_dotenv, find_dotenv
import psycopg2 

# find .env automatically by walking up directories until it's found, then
# load the .env entries as environment variables
load_dotenv(find_dotenv())

conn = psycopg2.connect(host=getenv(DATABASE_HOST),
                        database="my_data",
                        user=getenv(DATABASE_USER),
                        password=getenv(DATABASE_PASSWORD))

Locally you can work on your project. You can even use a development, or local database.

When you want to run the job in AskAnna, you can add the variables to your AskAnna project. Now you can run your script in AskAnna, using the variables you have configured. Don’t forget to push the latest version of your code ;)

Read more about using variables in AskAnna.

Use your command line

Sometimes you don’t want to click through a web interface to do the work. You can do the main tasks also using the AskAnna CLI. Some examples:

Create a project

Create a new project in AskAnna, and create a local directory with already the base configuration askanna.yml.

askanna create "Your new project name"

You can also use a project template:

askanna create "name" -t https://{repo containg the template}

Or create a new project in AskAnna, but use a local directory already containg code for the project:

askanna init "Your new project name"

Push your code

You don’t have to zip your directoy locally. You can also use the CLI to push your code to AskAnna:

askanna push

Run a job

If you run the next command, AskAnna will check the options available for your project. Then AskAnna will ask you some questions so you can start the job you have selected:

askanna run

Jupyter Notebook

As a data scientist, you probably use Jupyter Notebook as well. We want to make it easy for you to view and run your Jupyter Notebooks in AskAnna.

If you want to run your Jupyter Notebook, you can configure a job. If you follow the next configuration example, then the notebook you run in the job is saved as an artifact of the run.

run_my_notebook:
  job:
    - pip install runipy
    - runipy my-notebook.ipynb
  output:
    paths:
      - my-notebook.ipynb

If you want to check the result, you can go to the run page. In the artifact section, open your Jupyter Notebook file. You can view it in the browser and download it for local use or open it in your own Jupyter editor.

Collaborate with as many people as you want

To collaborate, you need to be able to invite others. Inviting someone to join your workspace is a matter of providing the email and click “send invite”. That’s it. If the person you invited already is a member of another workspace, they can use the existing account to join your workspace. Or they can create a new account.

Also, managing the people in your workspace is made simple. If you are done with collaborating, you can remove someone from your workspace. But you can still see the work done in the past.

Curious? Try out AskAnna now!