Fork me on GitHub
#hyperfiddle
<
2024-03-17
>
Vincent22:03:39

Friends, ladies, gentlemen, wookies (Chewbaca clearly Clojurista), and the variety of code wizards/witches/ninjas, Have created a GPT for Electric Clojure: https://chat.openai.com/g/g-yRbCuc8cz-electric-clojure-hypermind. Membank is seeded with examples and the init prompt reminds it of the most suitable approach ("stop reaching for reagent, pls, it's e/defn thx"). https://chat.openai.com/g/g-yRbCuc8cz-electric-clojure-hypermind Let me know where it sucks so I can enhance it. Nurturing my psychic bond with the GPT, so be nice 😅

👍 5
👀 2
🔥 2
🙏 1
tobias00:03:50

This looks great, thanks for creating it! Something I’ve been missing with electric is the ease of the “paste HTML as hiccup” when I work with reagent in Cursive. Looks like with your assistant I can paste HTML and get electric dom code

Vincent01:03:57

@UA9399DFZ that sounds helpful, i think it will do that much. It still does not comprehend electric 100% because it wants to "subscribe to watch" things and "notify all peers" when swaps happen, so it doesn't really grok it quite yet, need to give it some more info to give it the electripiphany

Vincent01:03:50

Adding the files that give ChatGPT the insight into the macros (e/def, e/defn, and showing it and telling it about the masking of (let...))) Has proven to be very instrumental in getting the model to rely on correct embeddings (much like a pianist stayn in key) Imperfectly perfect, I'm sniffing out shortcomings by asking it to generate novel examples. "Build a multiplayer web app" is a great way to see if it comprehends what's what.

Vincent04:03:04

The intro prompt can only be 8000 chars and you can only add 20 files to the membank. But I'm thinking maybe I can cram all the examples into one big file

grounded_sage14:03:10

I find this less useful than my own prompting against base ChatGPT.

grounded_sage14:03:47

Not to dismiss the work going into this. I also want an Electric savvy GPT. I'm just reporting my experience.

Lidor Cohen16:03:37

@U05095F2K I imagine examples might help @U055PQH9R4M get the most out of your experience report 🙂

Vincent16:03:30

I am ceaselessly tweaking it at the moment, I have found that giving it straight-up macro definitions can help. How are you prompting your GPT4, @U05095F2K?

grounded_sage16:03:06

I freestyle the prompts most of the time. But it generally starts by generating a bunch of meaning dense context and encouraging the encoding of meaning and context into emojis when it feels it is appropriate to generate better responses. Negating patterns of expression that give less intelligent responses eg lists, introductions and conclusions. Enhancing expressions that are more intelligent.

Vincent17:03:34

@U05095F2K Not gonna lie, I comprehended maybe 31% of what you said, but it sounds like you selectively lambast your GPT into excellence. what have you tried with this one in this thread and what results would you want instead of what you got?

Vincent21:03:18

Have made some enhancements, let me know if it is still insane. Sometimes it doesn't believe Electric is a real fullstack framework lmao. Not sure what is the correct cocktail of proof

joshcho23:03:29

i’d experiment with claude for this btw

joshcho23:03:37

claude opus >> gpt4

Vincent00:03:14

@U6D1FU8F2 was just thinking to schedule a call with you ) and also, do you recommend Claude Pro

Vincent00:03:45

@U6D1FU8F2 plz check out what's been cooking ^, i think you will be pleasantly surprised if you pick one of the 3 default prompts)

joshcho00:03:35

you need to use opus bc opus is really good so yes claude pro

🆗 1
joshcho00:03:36

will do

🙏 1
📿 1
siddharth yadav11:03:32

Hi @U055PQH9R4M, is hyperfiddle.electric-svg ns added in the mem bank? I was trying to convert html svg to electric svg, the returned code used dom/svg when asked it said there is no hyperfiddle.electric-svg ns, apart from this everything was correct.

siddharth yadav11:03:47

Also are we following any naming conventions? It seems to be PascalCase I was expecting kebab-case

siddharth yadav12:03:24

by default it uses (e/atom ..) to create a new atom

Vincent13:03:45

@U049Q2LP68M thanks I had the svg example in there for a while but removed it, will backplace. + kebab-case, heard. + yeah it thinks e/atom is a thing. Ok thanks for those ... applying fixes

🙌 1
Vincent13:03:32

@U049Q2LP68M check out https://chat.openai.com/share/475f09c5-1ebe-494a-9e61-c6b47d5739c6 "Let's make multiplayer game using dom/svg." Looking better?

siddharth yadav17:03:23

@U055PQH9R4M In your chat, the gpt used dom/circle instead of svg/circle , I thought this could be fixed if I only said svg instead of dom/svg so I tried the prompt Let's make multiplayer game using svg. but I still got dom/circle . Adding the instruction for svg components only use svg namespace fixed the issue and it correctly used svg/.. In the following chat it got svg/circle right but had other bugs https://chat.openai.com/share/6bc73a93-8789-4e06-9026-a38d04145ff3(dom/button (dom/props {:on-click (e/fn [] .. instead of using (dom/on! ...dom/on vs dom/on!

Vincent17:03:20

Oh is the canonical actually dom/on! ? 😅 yeah the GPT loves to do :on-click, would be good to coax it out of this "habit" thanks for adding svg components only use svg namespace

Vincent17:03:22

Major update to the initialization prompt this morning. Have fun testing out le hypermind

grounded_sage15:06:19

@U055PQH9R4M I played around with creating a GPT today. But focused on Missionary. https://clojurians.slack.com/archives/CL85MBPEF/p1717341546748089

grounded_sage15:06:05

Also I have not tried this one. I could play it a bit. I find it way better still to create mega prompts self created by them. The instruction character count limit is very ... limiting.