
Eli Lichtblau presents the Wolfram Prompt Repository: an open, growing collection of prompts (Personas, Modifiers, Functions) for interfacing with LLMs and integrating them into the Wolfram Technology stack. He demos using Personas and modifiers in chat-enabled notebooks and programmatic calls, explains repository structure and submission workflow (templated prompt-definition notebook, parameters, LLM configuration, examples, review), and encourages community contributions.
Questions this video answers
Eli Lichtblau.
"200 plus prompts" (over 200).
About 120 function prompts.
Compatibility default: 13.2+.
He says it is his two-year anniversary at Wolfram.
Chapters
Hello everyone, welcome, welcome. Hopefully the tech conference is going well for everybody and you're enjoying a lot of new information from a lot of good groups. My name is Eli Lichtblau and I'm pretty happy to say that today is actually my two year anniversary at Wolfram, so it's pretty cool that I'm giving a talk at one of our tech conferences on the same day. I'm also very happy to show off something that we've been working on for quite some time now, which is the Wolfram Prompt repository. This is a culmination of a lot of efforts. Now I do have the privilege of getting to show off this repository. Those who have been attending some of these other talks may have seen tidbits of our chat books here or there, especially during Steven's keynote speech, but this repository houses a growing list of prompts that can be used for interfacing with LLMs and programmatic and intuitive ways. For those interested in the subject of LLMs and our repositories of useful interfaces, I do recommend sticking around for subsequent talks, especially Bob's LLM tool and LLM Tool Repository talk that directly follows this one. Now, throughout this time slot I will explain what a prompt is, give examples of some of the prompts we already have in the repository as as how to use them, and illuminate steps needed to submit your very own. Hopefully by the end of this talk everybody will understand why we are so excited about this repository, and also maybe you'll join our current rank of submitters in order to grow the repository out so that it may offer stronger support in whichever field may hold your interest. So first to kind of go over some bare basics. This might be nothing new to a lot of you, but first, what is a prompt? A prompt is any given instruction or input given to the AI in order to calibrate it towards completing a particular task. This could be a general request, such as suggesting that the AI give prose in the form of Dr. Seuss, or as specific as instructing the AI to turn a specific narrative into a resume. In practical use, we often see multiple layers of prompting when interfacing with any given LLM. Generally, a single request will undergo multiple attempts in order to reach the desired results, and even further prompting may be needed to further refine or alter the results more so over time. A single task given to an AI could even take more time to complete due to prompt engineering issues than it would have taken for you yourself to complete the task manually. And that's kind of where the Wolfram Prompt Repository comes into play with 200 plus prompts already on the site, much of the legwork is already completed when it comes to querying these LLMs. And since it is open to new submissions and further revisions, any future prompt you develop can live here and aid yourself and others by being easily available throughout the Wolfram Technology stack. There will be more discussion on how these prompts work within the Technology stack, but first let's kind of go over the three categories again. I planned on talking about this a little bit more, but since Stephen already hit this in his keynote and did a pretty good job, we'll kind of just give a brief overview for anybody who may have missed it. First, we have Personas. This is probably our most fun subcategory. It encompasses prompts that are given any particular character to imitate. Of course, this can be purpose oriented and helpful, such as our Code Assistant, or it could be a recognizable character such as Groot or Yoda, or a popular archetype such as Gen Z Speak. At the bottom we have our modifiers. These prompts excel at ensuring that your output is modified in the specified way. If you need a block of text translated, or if you would like your last email converted into anything or nothing but emojis, modifiers can cover a large range of possibilities. And finally, we have our function prompts. These are generally aimed towards completing specific tasks, mainly manipulating text or generating results, suggesting names for a headline based on an article, turning a narrative into a theater script, de jargonizing medical documents, or even improving other prompts. These are all possible already with just a few of the function prompts that we have on the site. And now, while each of these categories kind of has its general purpose, some of the greatest results come with intermingling them. For example, it's one thing to apply the too long didn't read function to an essay in order to get the highlights. But if you wanted to do it as Shakespeare composing an Instagram, I mean, it might not be practical, but it is something that you can absolutely do with what we have now. You'll notice that there are subdivisions underneath each of these categories. These can help kind of illustrate even further what our range is with all these prompts. Personas, for example, can be divided into a few the Advisor bots are a very helpful team of bots that can give you advice ranging from budgeting to personal training. The character types and roles and fictional characters can offer you a a great deal of different personalities or, you know, types of people, such as a drill sergeant or a court Jester we have our writers and writing styles or writing genres, excuse me, which kind of replicate a certain genre or unique style that a writer has. Again, like William Shakespeare or maybe like a postmodern writer bot. And of course some of these come with a little bit of Wolfram spirit, such as Wolfie or the ever popular Bernardo. As we shift down to look at the modifiers, we'll see a few less subsections, but still extremely useful and a drastic shift in use case. While Personas are generally more equipped to give a range of responses based on whatever inputs you feed them, there is like no specified output other than the AI is supposed to be X talking about. Yeah, with modifiers you gain more control in narrowing the scope. For example, our modifier yes no will only give you the answer yes or no to answer any specific question you give it translated will give you the original text back to you. The original text back to you in the translated language and emoji translated via contrast will do the same thing, but only with emojis. We also have the ever popular Eli 5 or explain like I'm 5 in which the LLM will be prompted to give you a simple explanation of any given topic. A couple other cool modifiers similar to that one are Know about me or Target Audience, which you can feed information about yourself or your audience in order to get a that's specifically catered to your needs. Moving back to functions, we will see a greater list of subdivisions. These generally revolve around text manipulation, analysis, and generation, but also involve prompts geared towards assisting in academia, as well as ones that exist purely for entertainment. We have function prompts for suggesting names, titles, jokes, cover letters, prompts that aim to rephrase any given text to be longer, shorter, formal or informal. Some of the functions take medical or scientific jargon and output plain speak or vice versa. Really, any task, mundane or otherwise, can be encapsulated in a function and reduced to essentially a few keystrokes. But this section also has the greatest growth potential. I mean, we already have about 120 function prompts, but hopefully after these series of talks we will see more original submissions take on previously unthought of scenarios from you, our audience. Now, before getting into submissions, we should maybe take a look at how we can use our prompts within our technology stack. Again, Steven did a nice demo on this today and really showed off both programmatic and chat usage, but I think it's just important to again go over this in case somebody either missed it or in case there's more to be deemed or gleamed from this. Now what I did and you might have not seen everything on screen, I just went to a standard notebook and went to file new to open one of our chat enabled notebooks. As you can see, it pops up and with this little icon here, we can tell that our code assistant is is our default Persona that we're talking to. I'll probably be changing that since I think I'm going to do a little bit more of a fun example today. I've been playing around with it and one example that never really gets old for me is messing around with Rick Astley's 1987 hit Never Going to give you up. So let's see what the AI can do with this first. This one I think I want to do with Pirate Speak. So with Pirate speak selected, I'm going to ask. And before we wait 10 minutes for an entire rendition, let's also just add that there. Oh, can I increase my zoom level? Sure thing. Sorry. Let me see if I can get that going. Actually, I don't know how to do that. If. Josh, if you could help me out with that, that'd be appreciate. Well, that's interesting. I actually have not seen that. I think we're going to reevaluate that. I think it might have caught on to a bad hallucination and tried to follow it out. Well, there we go. So. Oh, thank you. Oh, Maybe I think 150 is more agreeable. Okay, Hopefully that's better everyone. As we can see here, this response is a little bit more agreeable than our previous one where again, I think the AI was just having a little bit of a nightmare there. Regardless, it seems our second attempt, the pirate Persona, seems to be working quite a bit better. Now let's say that we like what our first input output is, but we kind of want to keep it separated from our future queries. We can hit shift and backtick to create a cell attract delimiter, separating the context between what's below and above it. And if I hit single quote, open up my bar again. Now I could type this back out. Or as we can do with our lovely notebooks, I can just control, copy and paste that back in. And this time again, I would like it to be the pirate singing Never Gonna Give youe Up. But I want to add a modifier as well so I can hit the pound symbol. And let's also, since we love emojis, emojify it. Wonderful. Now it's going to come through. Give us a little outro there. A Few more emojis perfect. And say that instead of the top one, this one really just works for us. We really like it. But then we forget that we really needed it translated into Spanish. We can just hit our function key of exclamation point at the beginning of the cell type in the direction that we would like translated. So this is a really nifty thing. If we want to translate inline with the chat cell, we just have to give it the right arrow. But if we want to interact with what's above us, it's just as easy as that. And he translates his song back to us and even includes in the same emojis as were there before, because I guess translating emojis just doesn't make sense anyway. So this is a neat example of how we can mess around with the three different main categories within a chat setting, as well as separate context between what we're working with. Another neat thing is that if we were to want to change between Personas, it's as easy as clicking and adding and managing from the repository itself. Or if you already have ones installed, you can just click them there. This one's name is Qtpie. Its only purpose is to kind of be cute. And as you can see, if I select him and rerun the evaluation, We get a very painfully cute response. Now, this is all within a chat setting. Of course. Here at Wolfram, we also have access to the programmatic side of our notebooks that has been there longer, much, much longer than the chat side. And if we wanted to interact with it in a more programmatic way, it's pretty simple. Out of fear of stealing context from Rick Astley, I'm going to put a chat delimiter there though, just in case. All right, so for this example, we saw this in the keynote speech. Again, Steven, the LLM synthesize prompt. Sorry, typing and thinking at the same time is. Or talking and thinking at the same time is a little bit of a trouble for me. Bring Bernardo out. If everybody here is familiar with Birdsay, they may know who Bernardo is. If not, he is a big deal around Wolfram. I like asking Bernardo what to wear because he. He's just a very fashionable Persona. So again, we'll have to interact with OpenAI. It will output a response with these. It's a little bit more of a one shot instance. You're not sharing chat context between different inputs and outputs, you're more just asking it to create a sentence using this prompt with the context of the question. And it gives us a pretty good fashion advice for the rest of the week if anybody would like to follow that. Furthermore though, we can also use another function, LLM resource function and I think. This is where we saw some weirdness during the keynote, but hopefully Eli 5 will be nice. And again we wait a little bit for the prompt to go through all it's that's not bad. So as we see here, it's not just reduced to the chat settings. We can use these in programmatic ways and it's very can be fun, but also technically helpful during certain tasks. Now that we've kind of covered the basics of the using prompts within a chat setting and programmatically, I think now would be a good time to really hit on what it's like to submit a prompt and the process to go through. Back in our prompt repository we see along the search bar our main categories and then at the very end submit a prompt. Clicking that will open up a download to a just a standard templated default definition notebook for the prompt repository. Now this is what it looks like just as I opened it. That being said, for the sake of time, I have already filled out one that we can go through just to highlight the examples a little bit better. All right, to begin, we'll come up with a name. Depending on if you're making a function, modifier or Persona, there are some kind of guidelines. I won't say rules, but guidelines that those in the in the review submit or the submission review team kind of follow. For a function like I'm going to do, it's good to kind of have an active verb description of what you're looking to do. So that's what I did here. I thought I would make a bot that helps generate RPG dungeons for tabletop games. So for the title that kind of was self explanatory for me. Underneath that we see a little description space where we kind of make a quite literal, succinct definition of what we're looking to do. This will help people understand the goal of your prompt as they go through the repository repository. It's okay to kind of have quirky ones for Personas, but usually we lean towards very literal ones when working with modifiers or functions. Underneath that, of course, we see our categories. Again, I wanted to do a function, so that's what I'll have selected here. Moving further down, we'll finally get to the prompt definition section. Now this is kind of the meat and bones of the the process. This is where you're going to elaborate on what you want your prompt to do. This is the prompting here you'll also get the option to add templated slots as I have done. 1, 2 and 3 were all template slots that I added positionally. Their purpose is outlined here in the prompt itself. And then when I set these up I also set off default values for them. So if nobody were to so if somebody were to use this prompt but not want to fill out all the parameters, there's kind of a default version of it that they will get that is quite bland, but these can be filled out to a user's specifications as they use the prompt. Here we get down to the chat related features. Since this is not a Persona, I won't need to change the icon. Bernardo again, the most popular of the Personas here is the default. He won't show up for this guy, but at least we know he's watching. The cell processing function and the cell post evaluation function are can just be default for the purpose of this one. These items are also both probably going to be refined into a different section of the notebook upon further reviews or revision. So for the time being they're good here, but they might change in a bit. From the purpose of my example, I just want a plain text response, so my output interpreter I'm just going to leave a standard string. Of course, those who are looking for something not plain text can manipulate this section to their will. And here in the documentation section we once again see a bit about the parameters. We get a chance to a define what it is our parameters are doing and then give an explanation so that users kind of have a guiding hand, I guess, in what you're aiming to do. Especially for more complicated prompting, this becomes a little bit more significant for what I'm doing now, maybe not also of note, something that I didn't mention before, but throughout you'll see informational boxes over each of the sections. These are here to guide you even further. We do have style guidelines for this definition notebook that can be followed, but if you don't want to go searching through documentation, these info boxes are pretty helpful. Details and options can be filled out as well. All right, now the LLM configuration this section is. Well1 the LLM tools talk that's coming up is something that you guys should definitely join and I'll try to hurry up through my speech so you get going to that. But this is where you can define tools at a particular prompt to use. So if you make a prompt whose sole goal is to tell you where your constellation is in the sky right now of your birth month and give you a picture of it generated from the web using the web image search, and maybe some type of ASTRO tool could be inserted into this. Also we have our LLM configuration options. This is where you can choose default model for your prompt, default version of that model, temperature weighting. This is where you can really define if you want your prompt to be that specific to a certain model, etc. This is where you can define those options. Finally, we'll get down to our example sections. I've already run these examples a few times. As before I had three parameter slots that I decided to fill out Here I ran my function, I asked for normal difficulty rating for a specific rule set for a Shipwreck Cove theme, and as it can be seen here, it went through and did a pretty good job of creating a just a standard tabletop run for a fun little game. I even asked Pirate Speak to be the dungeon Master for the adventure, and nicely enough, he was very good at trying to get things started. So sharing context with some of these types of functions just has a lot of interplay between other things that an LLM can do and it's just very exciting to see programmatically. I also did the same thing of note though, since it's a programmatic one shot, I can't follow up and ask Pirate to be my dungeon Master with this. It's not going to share context, which is something that I was able to add in the issues below. Now in these sections you can also add, you know, properties and relations, the entire scope of a function if you happen to get a really, really really neat example. Just wanted to have for the world to see. All of these are possible to be shown in this section and then finally we'll get to a section that contributors of other resources will find familiar. This is just where we can enter keywords for searching your name of course, the topics that this fall under, and any other kind of documentation or related resources that you would like to share or link back to. And finally compatibility where 13.2 plus is the default and depending on how technical some of the prompts will be, that might have to be increased to 14 + in the future. And then that gets us to our author and Submission notes. Author notes are something that can be shared with the wide world, where submission notes are only shared with those of us in the review team. With these you can put any questions or call to arms that you would like, as well as engage a bit with those who are looking to revise further on your prompting ideas. Now at the very end, if everything looks good and dandy and you are pretty happy with what you have. You can hit submit to the repository. This will go through a check to make sure that everything is up to code. It might come up with a potential issue like it did here. It's telling me that I have a pretty large cell that takes up too much room, but I think I'm going to be okay with it because that's a. That's an issue I can live with. And there we go. Get a green check that it's been submitted for review and from there the review team will be able to interface with you to ask if there's anything that they can either small changes about name name guidelines again or if there's other things that can be done to help assist in getting things pushed through. All right, we are just about at time. I'm sorry. I was hoping to get a bit more time for Q and A if it was needed. This is my last pitch. If you are interested in the tool repository, we have a talk starting in two minutes with Bob and that's another thing that we're very excited about. It's a way of giving our prompt the tools they need to be accurate and I think it might hopefully answer a few questions for you as well. I would like to thank everybody for joining this talk and if anybody has any questions, I will stick around a bit longer for Q and A. Thanks all.
More from Guy

Cheryl Strauss Einhorn | The Human Edge: Smarter Decisions in the Age of AI | Talks at Google

Rachel Glennerster | Innovation and the Center for Global Development | Talks at Google

Rebecca Winthrop | Rethinking the Purpose of Education in the Age of AI | Talks at Google

Dr. Robert Wachter | A Giant Leap: How AI Is Transforming Healthcare... | Talks at Google






