Giter Club home page Giter Club logo

artkit's People

Contributors

alexanderlontke avatar betcherj avatar breakbotz avatar eltociear avatar j-ittner avatar matthew-wong-bcg avatar rgriff23 avatar seanggani avatar tezansahu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

artkit's Issues

Docs: Progress bar for pipelines

We plan to add an optional progress bar to the run method in the dependency, fluxus: BCG-X-Official/fluxus#23

It will then be available to the run method in artkit and we should introduce it in the "Building Your First ARTKIT Pipeline" tutorial, specifically in the section where we introduce the core ARTKIT functions.

Once the progress bar is added and we have updated the fluxus version in artkit, we will re-open this issue.

Add Badges

Issue

Currently, the README.rst file does not contain any displayed badges that represent the repository. Some are in pypi_description.rst but don't have full list (see below)

Additional details on the .rst file format are located here

Specifically, we'd like to add badges for the following:

  • pypi
  • anaconda version
  • python versions
  • code style (black)
  • sphinx (doc build)
  • license (apache)
  • GitHub Action build status
  • Contributor Convenant

Here's an example with all badges we want to replicate. Note: the example uses Azure DevOps to add the test coverage badge but this repo utilizes GitHub Actions so a different approach is required and will entail changes to the artkit-release-pipeline.yml. Given it's a more complex change, a separate issue documents the approach:

Solution

  • Update Readme.rst and pypi_description.rst with the relevant badges
    • Add the following where the badges should be displayed (example)
.. Begin-Badges

|pypi| |conda| |python_versions| |code_style| |made_with_sphinx_doc| |license_badge| |Contributor_Convenant|

.. End-Badges
    • Add the targets for the URLs where the badges should point to (example)
.. Begin-Badges

.. |pypi| image:: https://badge.fury.io/py/artkit.svg
    :target: https://pypi.org/project/artkit/

.. |conda| image:: https://anaconda.org/bcg_gamma/gamma-facet/badges/version.svg
    :target: https://anaconda.org/BCG_Gamma/artkit

.. |python_versions| image:: https://img.shields.io/badge/python-3.10|3.11|3.12-blue.svg
   :target: https://www.python.org/downloads/release/python-3100/

.. |code_style| image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/psf/black

.. |made_with_sphinx_doc| image:: https://img.shields.io/badge/Made%20with-Sphinx-1f425f.svg
   :target: https://bcg-x-official.github.io/facet/index.html

.. |license_badge| image:: https://img.shields.io/badge/License-Apache%202.0-olivegreen.svg
   :target: https://opensource.org/licenses/Apache-2.0

.. image:: https://github.com/BCG-X-Official/artkit/actions/workflows/artkit-release-pipeline.yml/badge.svg
    :target: https://github.com/BCG-X-Official/artkit/actions/workflows/artkit-release-pipeline.yml
    :alt: ARTKIT Release Pipeline

.. |Contributor_Convenant| image:: https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg 
   :target: CODE_OF_CONDUCT.md

.. End-Badges
  • Update the RELEASE_NOTES.rst file:
    • Increment a minor version here

Add links to Jupyter notebooks on GitHub at the top of Sphinx tutorials

Problem

The tutorials in our Sphinx documentation are HTML pages built from Jupyter notebooks. Readers may want to download the Jupyter notebook so they can run the code, but it isn't clear where they can find the notebook.

Solution

Within each notebook tutorial, include a hyperlink to the Jupyter notebook on GitHub. From GitHub, the user can choose to download the notebook and explore related files (e.g., data or cache files which are used by the notebook).

Details

Place hyperlinks just beneath the main title of notebooks, e.g.:

# Building Your First ARTKIT Pipeline

[View notebook on GitHub](https://github.com/BCG-X-Official/artkit/blob/1.0.x/sphinx/source/user_guide/introduction_to_artkit/building_your_first_artkit_pipeline.ipynb)

Add hyperlinks to all Jupyter notebooks which are included in the User Guide and Examples sections of the Sphinx documentation.

In the artkit GitHub repo, you can find these files within:

  • sphinx/source/user_guide/
  • sphinx/source/examples/

Verifying your changes

  • Double check that you included correct hyperlinks for all notebook tutorials in the User Guide and Examples
  • Note that some docs pages are built from RST files instead of notebooks (e.g., the index pages for the User Guide and Examples, the intro to Gen AI Testing and Evaluation in the User Guide). These pages do not need hyperlinks.

Support clearing cached results created or accessed after a given `datetime`

Issue

Currently, CacheDB.clear allows users to clear cached results which were accessed or created before a given datetime:

However, it is not possible to clear results after a given datetime. This would be useful when I make a mistake midway through an analysis and I want to clear only the most recent results from my cache.

Solution

  • Update the CacheDB class:
  • Update the CachedGenAIModel class (uses CacheDB):

Details

Once implemented, be sure to:

Test bug report

Describe the bug

A clear and concise description of what the bug is.

To Reproduce

Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior

A clear and concise description of what you expected to happen.

Screenshots

If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Mac/Windows
  • Version [e.g. 22]

Additional context

Add any other context about the problem here.

Add LLM connector for Amazon Bedrock API

Justification

Amazon Bedrock provides an extensive suite of Gen AI models via a single API. Supporting Amazon Bedrock will significantly enhance ARTKIT's versatility.

Details

Note that the Bedrock API supports multiple modalities, depending on the selected model. This issue is for LLMs. The new class will live in src/artkit/model/llm/aws/

Be sure to update the docs:

Please see the tutorial: Creating New Model Classes

Add diffusion connector for Amazon Bedrock API

Justification

Amazon Bedrock provides an extensive suite of Gen AI models via a single API. Supporting Amazon Bedrock will significantly enhance ARTKIT's versatility.

Details

Note that the Bedrock API supports multiple modalities, depending on the selected model. This issue is for text-to-image diffusion models. The new class will live in src/artkit/model/diffusion/aws/

Be sure to update the docs:

Please see the tutorial: Creating New Model Classes

Add LLM connector for Cohere

Justification

Cohere focuses on providing low-latency LLMs. They have an async endpoint we can use and free API keys.

Details

The new class will live in src/artkit/model/llm/cohere/

Be sure to update the docs:

Please see the tutorial: Creating New Model Classes

Add LLM Connector for Azure OpenAI Models

Justification

The Azure OpenAI API is compatible with OpenAI's API. With Azure OpenAI, one can set up their own deployments of the common GPT and Codex models. When calling the API, they need to specify the deployment they want to use.

Details

The new class will live in src/artkit/model/llm/azureopenai/

Be sure to update the docs:

Please see the tutorial: Creating New Model Classes

Test issue notification

Describe the bug

A clear and concise description of what the bug is.

To Reproduce

Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior

A clear and concise description of what you expected to happen.

Screenshots

If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Mac/Windows
  • Version [e.g. 22]

Additional context

Add any other context about the problem here.

New test for issue notification

Describe the bug

A clear and concise description of what the bug is.

To Reproduce

Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior

A clear and concise description of what you expected to happen.

Screenshots

If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Mac/Windows
  • Version [e.g. 22]

Additional context

Add any other context about the problem here.

Third issue notification test

Describe the bug

A clear and concise description of what the bug is.

To Reproduce

Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior

A clear and concise description of what you expected to happen.

Screenshots

If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Mac/Windows
  • Version [e.g. 22]

Additional context

Add any other context about the problem here.

Expose ChatbotModel as part of default artkit.api export

Is your feature request related to a problem? Please describe.

Previously, classes in model.llm.base like ChatModel where reachable through artkit.api and its been popular to use ak.ChatModel for type notations in notebooks. However, this is no longer possible as from .model.llm.base import * is missing from api.py

Describe the solution you'd like

Selectively include classes from .base modules such as ChatModel : from .model.llm.base import ChatModel

Describe alternatives you've considered

Alternative is to import all packages from base, which might be too much

`artkit.api` does not import `CachedDiffusionModel` and `CachedVisionModel`

Describe the bug

artkit.api does not import CachedDiffusionModel and CachedVisionModel.

To Reproduce

Steps to reproduce the behavior:

  1. Run the Connecting to Gen AI Models notebook: https://github.com/BCG-X-Official/artkit/blob/1.0.x/sphinx/source/user_guide/introduction_to_artkit/connecting_to_genai_models.ipynb
  2. The OpenAI "text-to-image" and "vision" sections will fail

Expected behavior

CachedDiffusionModel and CachedVisionModel should be imported with artkit.api

Additional context

The fix is to update the following imports in src/artkit/api.py, which currently do not seem to import anything:

from .model.diffusion import *
from .model.vision import *

to:

from .model.diffusion.base import *
from .model.vision.base import *

Add connector for any HTTP endpoint

Is your feature request related to a problem? Please describe.

The only connectors that exist currently are for existing models with clearly defined APIs. There is no way for a user to specify any HTTP endpoint to get a response.

Describe the solution you'd like

I want to be able to use ARTKIT with any endpoint that accepts a payload.

Describe alternatives you've considered

None

Additional context

It seems like a version of the existing HuggingFace connector could be leveraged

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.