JuliaHub Blog: Insights & Updates

Ask AI with ChatGPT on JuliaHub | JuliaHub

Written by Panagiotis Georgakopoulos | Jul 17, 2023

No, this is not another ChatGPT blog post. Well, it is kind of a ChatGPT blog post. But it also isn't. Our Ask AI feature is a sneak preview into this assortment of knowledge, through the eyes of an LLM. Access our Julia-speaking AI by logging into JuliaHub here: https://juliahub.com/ui/AskAI

Today, with the release of JuliaHub 6.2, we announce the availability of the Ask AI feature. With this new feature, we provide an interface to ChatGPT through JuliaHub. Why, you might ask, do we need another box to enter questions in? Well, if you are a Julia Geek like we are, you must have already tried to ask ChatGPT to write some code for you. It's not good. Why?

Let's talk about LLMs. The few Large Language Models of 2023, especially OpenAI's ones, are really good at modelling concepts. Scary good. You probably already have a good understanding of how they work. Roughly when something occurs many times in the training set or the question, it has a high probability of appearing again in the reply. As you have already figured out by now, most LLMs do not know how to speak Julia: the Julia examples are not in the training set and are not in the question. Here's where we come in.

We have been creating and organizing documentation, discussions, and general Julia knowledge for the past 8 years. We have a pretty good grasp of the complexity that comes with the information; which documentation version matches my use case? Have we already answered this or a similar Julia question in the past? (spoiler: we probably have). This is our Knowledge Pack™️.


You ask, ChatGPT reads our knowledge database and prepares a well-informed reply just for you. It may not be perfect (yet), but it will definitely be significantly more informed than it would have been without our knowledge pack.

But, how does our AskAI feature get this knowledge under the hood?
We used the following Data Sources:

  • Julia and Package Documentation: generate embeddings one paragraph at a time:
    • Our markdown parser provides iteration over one paragraph at a time
    • Other package sources that are available on internal JuliaHub servers
  • Package metadata:
    • Package name and description from our knowledge pack
    • Package READMEs
  • Stack Overflow:
    • Fetch Julia tags:
    • We then combine the question and the accepted answer together and calculate embedding
    • If there is no accepted answer, use the top-upvoted answer

Then, when you ask a question, we enrich the query with our knowledge and then submit it to the LLM for an answer!

Examples:

How do I make a HTTP post request in Julia with the Authorization header?

Ooops! Requests.jl has been deprecated since 2019!

Let’s ask JuliaHub:

Much better!

We plan to refine and integrate this tool in your favorite editors (Julia IDE, Pluto, Jupyter AI) in the coming releases. We also wanted to share our plan and vision with you and get your feedback. 

Login to JuliaHub to ask your Julia questions on JuliaHub now by going to: https://juliahub.com/ui/AskAI. You can sign up with your GitHub, GitLab, Google, or Linkedin account - no credit card is required!

Try it out and share your thoughts on our feedback page (log in to access).