this post was submitted on 10 Jul 2023
52 points (96.4% liked)

rpg

3175 readers
42 users here now

This community is for meaningful discussions of tabletop/pen & paper RPGs

Rules (wip):

founded 1 year ago
MODERATORS
 

Hi friends! To do my small part for the TTRPG fediverse, I resurrected an old RPG blog rss aggregator I ran about 10 years ago and refreshed it with some GPT-based summarization. You can find it right here:

https://dndblogs.com/

It updates every morning from the following feed lists.

https://slyflourish.com/sly_flourish_rpg_blogroll.html

If there are any great TTRPG blogs I’m missing, please let me know!

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 3 points 1 year ago (1 children)

Sure, lets give it a try. I am indeed using 3.5 turbo. 4 is a bit more expensive (like 10x)

[–] [email protected] 3 points 1 year ago (1 children)

Yeah, GPT-4 is way more costly. It's rolled out to the paid tier of users AFAIK, though, so in your script it's as easy as subbing out "3.5-turbo" with "4" -- it may be worth just doing some trial runs and seeing if it's markedly improved. I expect though there's some room for tweaks with the 3.5-turbo model, though.

Temperature is something you can play with to get more predictable or more creative results; and is set between 0 and 1 with .1/.2 being more useful for every wrote data entry stuff and .7-.9 being more creative. That's something to play with (I'd probably start around .6 or .7). But tweaking the prompt itself and the "role:" instructions will almost certainly return the most immediate benefits.

I'm assuming your code looks something like:

response = openai.ChatCompletion.create( model="gpt-3.5-turbo", temperature=0.2, messages=[ { "role": "user", "content": f"Please summarize this blog post in 3-5 bullet points: {blog}" }

You can add a "role": "system" instruction to make clear that, e.g., the model is supposed to assume that they are summarizing this work for a dm/ttrpg audience, and reiterate that in your user content message as well:

response = openai.ChatCompletion.create( model="gpt-3.5-turbo-16k", temperature=0.6, messages=[ { "role": "system", "content": "You are an assistant for a TTRPG blog designed to help gamemasters and dungeonmasters. You have been tasked with reading blog posts from other game masters and identifying the creative and interesting takeaways and summarizing them for a DM/GM audience. The factual summarizing of the structure of the blog is less important than the relevant actionable advice for running interesting and engaging TTRPG sessions" }, { "role": "user", "content": f"Please summarize this ttrpg blog post in 3-5 bullet points for an audience of gamemasters and ttrpg enthusiasts, identifying the most interesting, actionable and creative take-aways: {blog}" }

Go crazy with those instructions, though. That's the real secret to getting good results from GPT chat/completion models. I also swapped out the vanilla 3.5-turbo model with the only barely more expensive 'turbo-16k' model, which has a higher token limit, and bumped the temperature up a bit.

[–] [email protected] 3 points 1 year ago (1 children)

Great stuff! I'll experiment with it and see how I can get better results. I've already been using the turbo-16k so I can feed large blog articles back to it. I also need to find a way to limit the total tokens coming out to ensure the summaries don't get to long sometimes.

[–] [email protected] 2 points 1 year ago

Awesome! Looking forward to checking it out!! I believe there is a max_tokens flag you can add, but I haven't futzed with that https://platform.openai.com/docs/api-reference/chat/create#chat/create-max_tokens