Dash Club 12: AI and Dash, Dash Online Course, Dash-LangChain Challenge, Component and App of the Month

Welcome to the Dash Club newsletter. Dash Club brings essays and updates about Plotly and Dash to your inbox every 8 weeks. Feedback, questions? Respond to this thread.

​​​​​Prefer to view this on Medium? Check out the article.

In Dispatch #12

  • Version Check
  • Chris’ Reflections
  • Dash Online Course
  • Dash-Langchain App Building Challenge
  • Coming Soon in Dash
  • Plotly “Ask AI” Chatbot
  • Plotly Blogs
  • Component of the Month
  • App of the Month
  • Things Happen

Version Check

Chris’ Reflections - GenAI Dash Apps

In this edition of Dash Club, Chris addresses how Plotly is thinking about generative AI and LLMs within the changing data science landscape. Read more on his blog.

Dash Online Course

Class is in session! Adam Schroeder, Plotly Community Manager, is conducting a free course with live sessions on building data apps in Python and Dash. The course dives into creating interactive apps that connect to your analytics code, exploring data sets with the Plotly Dash toolkit, and building connections with the Dash community.

Curious what can be built with Plotly Dash? Check out the official App Examples page.

The October cohort is at capacity, but you can sign up for the next cohort starting on November 27.

Dash-LangChain App Building Challenge

Starting today, we challenge the LLM builder community to develop large language models with LangChain and create front-end app interfaces for them with Dash.

The winning apps will be judged according to the following categories:

  • Usefulness of App
  • App UI/UX Design
  • Use of LangChain LLMs in the Dash app

Please submit your app as a new post in this forum topic. Please include a link to the app, code on GitHub, and a short description of the app.

Submission deadline is December 31, 2023. Winners will be announced in January 2024 and will receive a reward of:

:1st_place_medal: $125

:2nd_place_medal: $75

:3rd_place_medal: $50

A few lucky app-challenge participants will get the chance to showcase their app to the world at the Plotly Community Webinar planned for the beginning of 2024.

For any questions, please email Adam at adam@plotly.com.

Ideas for apps you can build:

  • Summarize an earnings report
  • Summarize risks and opportunities in a financial report
  • Answer questions about a document or a manual
  • Provide automated customer support
  • Allow users to engage in interactive storytelling

Dash-LangChain minimal app example:

from dash import Dash, dcc, html, callback, Input, Output
from langchain.prompts import ChatPromptTemplate
from langchain.chat_models import ChatOpenAI

prompt = ChatPromptTemplate.from_template("tell me a joke about {foo}")
api_key = "my-api-key-goes-here"
model = ChatOpenAI(openai_api_key=api_key)
chain = prompt | model

app = Dash()

app.layout = html.Div([
   html.H1("Joke-Generating App"),
   html.Label("Tell me a joke about: "),
   dcc.Input(id='subject', debounce=True, maxLength=15),
   html.Hr(),
   html.Div(id='joke-placeholder')
])

@callback(
   Output('joke-placeholder', 'children'),
   Input('subject', 'value'),
   prevent_initial_call=True
)
def update_layout(input_value):
   joke = chain.invoke({"foo": input_value})
   output = joke.content
   return output


if __name__ == "__main__":
   app.run_server(debug=True)

Dash-LangChain earning report summary example:

Coming Soon in Dash

In the next Dash release aimed for November, we’re planning to add no-output callbacks. For example, you might want to use a callback that takes the value of a dropdown, as an Input argument, to update an external database connected to the app. In this case, you wouldn’t need a callback Output because no app component is being updated.

Along with this, we’re planning to add a function to change any prop of any component, not just those specified in the callback definition. For example, you might want all your callbacks to report errors to the same container, without needing to explicitly specify it as an output of every callback.

We will also make the Dash app layout accept a list type, which means that there will be no need for wrapping the layout with an html.div. Instead of app.layout = html.Div([…]), you would write app.layout = […]

Ask AI ChatBot

On our Dash Docs, you’ll see a new button, “Ask AI” – which represents your personal chatbot for easier data app development. Based on LLM models trained on over 2,000 pages of our documentation, this chatbot can answer your technical questions about Dash.

Read this blog post to learn how it provides real-time code suggestions, error identification, up-to-date information, guided discovery, personalized solutions, and layout and design help.

Plotly Blogs

Check out these recent pieces from our new blog page:

Component of the Month

Dash-Molstar, built by Simon Sun, is a Dash component library that integrates Molstar Viewer into Dash framework. Molstar is a modern, web-based software framework for molecular visualization and analysis. With Dash-Molstar, you can use pure Python code to control basic operations of molstar and easily embed this plugin into your web page.

More about Dash-Molstar can be found in Plotly’s forum post.

:pray: Thank you Simon for creating this library and sharing it with the Plotly Dash community.

Visit our components index to see more components made by the community! And join our component-builder community by creating and sharing your own Community Components.

App of the Month

This beautiful Dash app created by Leonardo exhibits insightful interactive visualizations of Perineuronal Nets (PNNs) data in the brain of adult mice. Its goal is to facilitate the understanding of PNNs that surround specific neurons in the mouse’s brain and are involved in various forms of plasticity and clinical conditions.

The app is an extension of an article published by the Cell Press Journal. View the app and Github.

:pray: Thank you Leonardo for creating this app and submitting it to the Dash Explore Page.

See more Dash apps or share your own in the Community Forum’s Show and Tell tag. If you would like your app to be considered for the next edition of the Dash Club newsletter or for the Dash Explore Page, please submit your app.

Things Happen

:pray:Thank you to our community member, Martin, for providing a Dash workshop at PyCon Czech Republic last month. See the app (in Slovak language) that Martin created as part of the workshop.

:airplane: Todd, Michael, Nathan, Cal, and Claire attended the Data Science Connect COLLIDE Conference in Atlanta.

:star: If you haven’t done so already, check out this amazing Glass Explore App built by community member, Jon Robinson.

:star: Enjoy this colorful app built by Laura Lorenzi to monitor community projects. The open source code can be found in this Github repo.

:star: Community member, Seth Nelson, created the Python Explorer app that makes it easier to discover features of various Python packages.

:star: Read this LangChain article by Patrick and Janik, showing how to create a chatbot for YouTube videos. And don’t forget to play around with the accompanying app.

:briefcase: Job postings from around the world looking for Dash skills from Unicef, Torc Robotics, Deutsche Bank, and more.

:bulb: Do you have HTML script that you’d like to convert quickly and seamlessly into Dash? Use Pier’s new html-to-dash library. Visit the community forum post to learn more.

:bulb: Oliver Ernst has taken Dash to the next level by building Dash-annotate-cv: a Python library that implements Dash All-In-One Components to allow for simpler computer vision annotation tasks. To learn more, check out Oliver’s article and GitHub repo.

:point_right: Community member, AIMPED, shared a show-and-tell post on how to create a progress bar in a modal.

:rocket: Hot off the press: Dash Enterprise 5.2. Read more about our latest milestone in our mission to enhance data app development.

:green_heart: Celebrating our top contributors in October.

Have a great weekend –

Chris (@chriddyp) & Adam (@adamschroeder)

2 Likes