Тёмный
Stanislav Khromov
Stanislav Khromov
Stanislav Khromov
Подписаться
Prestandaoptimering för WooCommerce
31:33
7 лет назад
Sampulator track - groovy!
0:17
8 лет назад
Saboteur 2014 02 04 01 35 38 83
0:18
10 лет назад
Комментарии
@deucebigs9860
@deucebigs9860 17 часов назад
Thanks for making a svelte specific video. Subscribed and looking forward to more. Gonna explore your other videos now!
@blarvinius
@blarvinius 3 дня назад
Thanks! I will definitely give ai-digest a try tomorrow! I was doing all of that manually - copying codebase into project knowledge text files. It was exhausting work. 🤖🦕👽
@default_youtube_profile
@default_youtube_profile 8 дней назад
I managed to get this to work, however the commit hash is not shown on the caprover but if we deploy usince caprover cli the commit has shows on the caprover app deployment page.
@StanislavKhromov
@StanislavKhromov 8 дней назад
You are correct, to get the deploy to show the hash in the CapRover list of deploys you'll need to modify the GitHub workflow, save the commit hash as an output, then in the last step deploy the output hash instead of :main like the workflow does now.
@_butterfly143
@_butterfly143 10 дней назад
Want video about today's technology trends and update ❤...pls 🙏
@FM-tq2gs
@FM-tq2gs 10 дней назад
Great video! As I am still a beginner in webdev, I think that I will stick to "normal" SvelteKit with SSR and CSR, and learn local-first technology later if I need it. By the way, would you consider optimistic updates to be a kind of (very) light local-first method?
@StanislavKhromov
@StanislavKhromov 10 дней назад
Thanks for the comment! Optimistic updates are a great way to make your app feel better to use, and it definitely fits with the "no spinners" criteria of local first!
@kirandev1
@kirandev1 23 дня назад
How much messages will you have with almost 100% project knowledge filled? Based on the video it is about 10 messages. Am I right?
@StanislavKhromov
@StanislavKhromov 23 дня назад
Right now it's around ~15 message every few hours.
@RenanFranca
@RenanFranca 4 дня назад
​@StanislavKhromov how do you handle that limitation in your workflow? BTW, amazing video keep it up!
@StanislavKhromov
@StanislavKhromov 3 дня назад
@@RenanFranca I spend some time writing the prompt as detailed as I can, this avoids misunderstandings and usually you can get a small feature done in 2-3 prompts. So you can do quite a lot if you try to be economical. If you need to ask questions that don't require lots of context you can use apps like Jan or Msty and connect to the Anthropic API which does not have as heavy limits.
@RenanFranca
@RenanFranca 3 дня назад
@@StanislavKhromov Thank you very much for the detailed answer! Great idea! Have you tried using Claude 3 Opus in your workflow? Is it worth it? Don't you use ChatGPT?
@StanislavKhromov
@StanislavKhromov 3 дня назад
As of today, Opus scores worse on most coding benchmarks. I don't use ChatGPT because it scores worse than Sonnet currently and doesn't have anything equivalent to Projects. Hopefully they will improve!
@science_mbg
@science_mbg 25 дней назад
thanks a lot , very useful. I also added --ignore function in my REPO because I didn't know how to submit in yours. But superuseful, Thanks a lot, now I also got claude pro to try these extra codebase option.
@StanislavKhromov
@StanislavKhromov 25 дней назад
Hi, you can use the .aidigestignore file to ignore parts of your project. You are welcome to create an issue on GitHub if you still have issues: github.com/khromov/ai-digest
@manju4ever222
@manju4ever222 25 дней назад
Can it be used for golang projects as well ?
@StanislavKhromov
@StanislavKhromov 25 дней назад
Yes, any programming language!
@sunkwolf
@sunkwolf 26 дней назад
Can you share your ai-digest script and your system prompt please?
@StanislavKhromov
@StanislavKhromov 25 дней назад
You can find the script here: www.npmjs.com/package/ai-digest The system prompt is nothing special, you can use the approach from the video to create your own prompt because it will depend on the programming language and libraries used!
@sunkwolf
@sunkwolf 25 дней назад
@@StanislavKhromov thx so much
@dmv_p
@dmv_p 26 дней назад
Pretty awesome tool ... unfortunately I just ran it on my project, and it says I it's an estimated 2,153,301 tokens so I guess I'll just go back to how I was Sonnet before or on much smaller projects.
@StanislavKhromov
@StanislavKhromov 26 дней назад
Remove files you don't need with the .aidigestignore file and use --show-output-files flag to check which files actually get included, if you have a giant enterprise project you might need to selectively remove less important parts of it to fit the Projects context.
@dmv_p
@dmv_p 26 дней назад
@@StanislavKhromov thanks for the recommendation. Now down to ~173K tokens
@jeehwanjang5383
@jeehwanjang5383 Месяц назад
very helpful. thx. it is more than amazing!
@TrejonEdmonds
@TrejonEdmonds Месяц назад
This is a game-changer for developers.
@meera_datey
@meera_datey Месяц назад
The script npx ai-digest is amazing. Thank you!
@morespinach9832
@morespinach9832 Месяц назад
What did you do with it?
@brunobely
@brunobely Месяц назад
How do you get the editor tabs to show “/jar (+page)” rather than “+page.svelte”? 😮
@StanislavKhromov
@StanislavKhromov Месяц назад
In VSCode settings, search for customLabels, then add this configuration: "workbench.editor.customLabels.patterns": { "**/routes/**/{+server,+layout,+page,+error}.{svelte,ts,server.ts,js,server.js}": "/${dirname} (${filename})" } The first value goes in Item and second in Value.
@brunobely
@brunobely Месяц назад
Amazing! Thank you
@cuentadeyoutube5903
@cuentadeyoutube5903 Месяц назад
I’ll definitely use your script to upload my project to Claude. Some thoughts: * we need a better flow to move data back and forth between the IDE and Claude. I hope Anthropic exposes a projects API at some point. That way we can integrate the ide with the project. * you can always try to request diff files instead of having to fish where the diffs are at or have to request context consuming large files * maybe pre processing docs to produce a condensed version that is AI friendly, so that you don’t consume your project space. The largest the project context, the faster you run out of quota. You were already running out of messages. On the flip side, this does timebox your work so that could be a good thing for personal projects. * developers are not at risk yet. This workflow would be near impossible if you didn’t know programming or the framework. * one extra instruction I like to add to the project is to make it output the response in a tutorial like way. So that it teaches me or reminds me of what to do whenever there is a new concept or feature. It is a good balance between just copy pasting and having to do it yourself. I want to avoid my knowledge to degrade due to use of this. * one thing it would be interesting to try for larger projects is adding an overview description of the project (what files are available, what do they have) and instruct Claude to request full source code when needed.
@StanislavKhromov
@StanislavKhromov Месяц назад
Hey, thanks for your thoughtful comments! I find asking Claude to give you the full file back is better than asking it to write a diff, you might end up with 10+ diffs in complex projects which takes a long time to paste in. Regarding condensed docs version, this can be hard without omitting important sections. I don't find the limit particularly problematic, since you have the whole codebase and put care into your prompts you can get a lot done in a single prompt. If I need to ask something not requiring the project context I'll use a frontend like Jan or Msty and connect to Anthropic API directly. PS. Maybe Anthropic will change this in the future, but right now the rate limits between a 100% filled project context and a no-context chat are very similar, maybe 15 messages for the first and 25 for the latter. So loading up the context is highly efficient message-wise.
@sjkba
@sjkba Месяц назад
Interesting video. I like the idea of putting the Svelte docs into the project context. Have you looked at Cursor at all? I find having to copy paste changes annoying and Cursor helps with that (but then you don't have the project context...)
@StanislavKhromov
@StanislavKhromov Месяц назад
Hi, thanks for your comment! You can use Cursor in a similar workflow by using the "long context chat" feature and referencing @Codebase. However, because the API has no memory you have to do this for almost every message and it gets expensive and also you might be rate limited due to number of tokens.
@mpfiesty
@mpfiesty Месяц назад
I am so happy I found this video. This is exactly what I was looking for.
@GatienB
@GatienB Месяц назад
Huge gg for this ! I've tried with a custom gpt and it's really bad tbh. Might have to switch to claude tbh
@momcilodelic8391
@momcilodelic8391 Месяц назад
Hi! How did you get entire Svelte md documentation ? Is there any quick way to get it ?
@StanislavKhromov
@StanislavKhromov Месяц назад
Hi! You can download it from below. Using it as a JSON file is fine or you can ask Claude to write a script to convert it to Markdown. kit.svelte.dev/content.json
@momcilodelic8391
@momcilodelic8391 Месяц назад
​@@StanislavKhromov Genius! Didn't know about this. Is this something one can use for other documentations, or is this only sveltekit docs that provided this?
@StanislavKhromov
@StanislavKhromov Месяц назад
It's specific to Kit unfortunately. Usually I check if the documentation is available on GitHub, in this case you can clone it and merge the markdown documentation files with ai-digest, or you can ask Claude to scrape the docs website by providing it with a HTML example. Good luck with your AI development!
@momcilodelic8391
@momcilodelic8391 Месяц назад
@@StanislavKhromov Thank you so much!
@awesomerks1918
@awesomerks1918 Месяц назад
A much needed tutorial! Loved how you brought a clear concept about ai development pathways. But I feel we still need an in-depth knowledge of programming to actually build something complex and functional. Hope you can do another video showing how to use ai for dummies to create and develop a fully functional webapp. Thanks again! (this would be particularly helpful for entrepreneurs like me who has very elementary knowledge about programming but are passionate about developing own web apps!)
@danielmayo2
@danielmayo2 Месяц назад
Glad to see someone using Claude to develop something more than a basic landing page
@morespinach9832
@morespinach9832 Месяц назад
Claude doesn’t do well with a basic landing page b
@user-qg8qc5qb9r
@user-qg8qc5qb9r Месяц назад
Introduction and Objective - 00:00:00 Different Layers of AI Prompting - 00:00:34 Basic Prompting Limitations - 00:00:54 Retrieval Augmented Generation (RAG) - 00:01:05 Large Context Models - 00:02:10 Claude Projects Feature - 00:03:32 Preparing Your Project for Claude - 00:04:08 Demo Project Introduction - 00:04:51 Using AI-Digest Tool - 00:05:38 Creating .ai-digest-ignore File - 00:06:25 Uploading Documentation - 00:07:03 Integrating with Claude Projects - 00:08:37 Generating Custom Instructions - 00:09:26 Setting Up Development Environment - 00:10:05 Implementing New Feature - 00:10:48 Installing Necessary Packages - 00:12:27 Reviewing Generated Code - 00:13:11 Adjusting Incomplete Code - 00:13:51 Updating Application Configuration - 00:15:10 Testing Initial Implementation - 00:16:10 Saving Local Preferences - 00:17:35 Iterating on Code Changes - 00:18:23 Design Fixes and Improvements - 00:19:12 Handling Platform-Specific Functions - 00:20:29 Removing Non-Existing Function Calls - 00:21:47 Implementing Advanced Features - 00:22:28 Reviewing Complex Code Changes - 00:23:14 Correcting Backend Implementation - 00:24:01 Testing Advanced Features - 00:24:47 Troubleshooting and Final Adjustments - 00:25:38 Final Testing and Validation - 00:26:23 Conclusion and Next Steps - 00:27:52
@StanislavKhromov
@StanislavKhromov Месяц назад
Thanks, I've added chapters now!
@liamadsr
@liamadsr Месяц назад
It would be really helpful if you could create a command to update the context file automatically by providing the chat ID or something similar. This way, every once in a while, when you've made changes in multiple files, you can delete the old file from context and update it with a new one.
@StanislavKhromov
@StanislavKhromov Месяц назад
Thanks for the feedback! Unfortunately Claude Projects does not have an API. Perhaps a web extension can be made to automate updating the codebase file. For now, as long as you're in the same chat Claude will remember the state of your project even if you ask it to update certain files. So you only have to update codebase when starting a new chat!
@liamadsr
@liamadsr Месяц назад
@@StanislavKhromov dang! I’m sure they’ll an API for it sooner than later. I would say you might be able to do that now with ChatGPT but once you start using Claude for coding ChatGPT seems silly because it’s so much better. This is very cool, thanks for building and sharing it!
@AbuBakr1
@AbuBakr1 Месяц назад
How do we setup the AIdigest
@StanislavKhromov
@StanislavKhromov Месяц назад
Hi! You need to install Node.js, once that's done you can run `npx ai-digest` from your terminal in you project folder.
@trueboomshakalaka364
@trueboomshakalaka364 Месяц назад
Adding .aidigestignore in .aidigestignore is next level inception
@shodwana
@shodwana Месяц назад
I have watched your video through the end, it is sooo satisfying and clear. Thank you so so much, you have not left your contact. Can you please share it
@user-ei5jj3qi8j
@user-ei5jj3qi8j Месяц назад
It's amazing sir, thank you for your idea and your amazing package
@razdingz
@razdingz Месяц назад
thanks for ai-digest , I was looking through the docs , I assume this is for webdev mostly , i wanted to know if it works with projects in other langs ? python, c#, C++ ?
@StanislavKhromov
@StanislavKhromov Месяц назад
Thank you for the comment! ai-digest works with any programming language, you can open an issue on GitHub if something doesn't work for you. The only prerequisite is Node.js to run it!
@aricoleman5802
@aricoleman5802 Месяц назад
Great channel friend. Keep it going
@benedictsmith2415
@benedictsmith2415 Месяц назад
Thanks for ai-digest! Initial testing today, I've uploaded my small codebases on claude, perplexity and gpt-4o (without any pro subscriptions), looking at simpler repos that mostly contain notebooks and accompanying python utilities. It works! Claude was most helpful, whilst gpt-4o seemed less "into" the idea. After a longer session, both perplexity and gpt4o returned a json version of a notebook under review and it seemed tricky to "unsteer" this behavior. Vi tackar ifrån Sjömarken....
@jaysonp9426
@jaysonp9426 Месяц назад
I have an open source project for this im building rn too. Some differences: 1. It uses the API 2. It uses GPT4o mini as a semantic router to go through your codebase and create enriched metadata 3. When you ask a question about your project, Gpt4o mini finds the actual files that need to be included in the prompt. 4. Claude gets a prompt with a bunch of customized preferences and the complete code for only the files it needs to know about. Since GPT4o is mapping your code base Claude is getting a complete control flow of your code base so it knows exactly what functions call to other functions in other scripts.
@StanislavKhromov
@StanislavKhromov Месяц назад
Sounds cool, sort of like embeddings but with GPT4o mini. How do you create enriched metadata continuously as you add and remove files? Does the tool run in the background? If you share a link I'd be happy to check it out.
@jaysonp9426
@jaysonp9426 Месяц назад
@@StanislavKhromov absolutely. I tried to put the project name but I think the RU-vid algorithm thinks I'm promoting lol. It's on a famous website that has coding projects and called Better-Artifacts lol. To answer your question: 1. The user selects a folder in the beginning. 2. We copy the folder to the local server folder (to maintain the structure and contents) 3. Then each file is hashed. 4. When you make changes on the codebase you press the update button and it compares hashes to see what actually needs updated. 5. The files that need updated are sent to GPT4o mini to re-enrich
@StanislavKhromov
@StanislavKhromov Месяц назад
@@jaysonp9426 Thanks, it sounds super cool. I think I found it, looking forward to when the README is updated with setup instructions. 🙇
@jaysonp9426
@jaysonp9426 Месяц назад
@@StanislavKhromov sweet! I'll come back here and comment when it's ready. Hoping to get the first phase done tonight or tomorrow
@jaysonp9426
@jaysonp9426 Месяц назад
​​@@StanislavKhromov should be working for testing. Keep in mind, it's 2 days old and barely functional :P I haven't pushed the update for an .ai_ignore file like you have yet so I wouldn't try to feed it a large project yet until that's pushed...unless you want Gpt4o mini chomping through your node_modules lol
@danil5948
@danil5948 Месяц назад
Nice video, How can I get your tool AI Digest? Thank you
@StanislavKhromov
@StanislavKhromov Месяц назад
After you have installed Node.js, run `npx ai-digest` in your project folder!
@leewsimpson1
@leewsimpson1 Месяц назад
Have you tried Aider.ai ?
@StanislavKhromov
@StanislavKhromov Месяц назад
If you mean Aider.chat I have not tried it yet, but I will try a similar workflow and if it works out I'll make a video about it. Cheers!
@leewsimpson1
@leewsimpson1 Месяц назад
@@StanislavKhromov yes that one!
@jaysonp9426
@jaysonp9426 Месяц назад
I can't stand Aider. I built my own because I found it wasteful and unusable
@brandrsn
@brandrsn Месяц назад
@@jaysonp9426 that’s interesting re: Aider. Can you elaborate on your experiences? I’m just getting to grips with it now. Have turned off linting and found that made a big difference, but still trying to delineate between when to use an IDE-based tool and when to stick with Claude Pro’s web UI. Your concept of using one model to feed another is interesting. Will try it out.
@preyenperumallable
@preyenperumallable Месяц назад
hi there. awesome video, i learnt a lot. I am by no means a porgramer but have been developing with Claude and loving it. I will try your ai-digest tool, thank you very much. Would love to hear what are your thoughts on Aider as an ai pair programmer? Best of luck to you. Subscribed.
@StanislavKhromov
@StanislavKhromov Месяц назад
Thank you! Haven't tried Aider yet but would love to in a future video, thanks for the tip!
@coopernik
@coopernik Месяц назад
amazing content keep it up
@prince-sonawane
@prince-sonawane Месяц назад
I have a basic question related to AI-DIGEST. will it work on non node projects has well?
@StanislavKhromov
@StanislavKhromov Месяц назад
Hi! Yes, it will work on projects in any language. However, in order to run "npx ai-digest" you will need to have a recent version of Node.js installed.
@alecwhitters6534
@alecwhitters6534 Месяц назад
​@@StanislavKhromov Im a weak coder whos coded a lot with ai and but I dont get this
@Bugge67
@Bugge67 Месяц назад
Excellent and to the point! _follower++
@Bugge67
@Bugge67 Месяц назад
And.. is that a Swedish accent I hear?
@StanislavKhromov
@StanislavKhromov Месяц назад
Rätt gissat!
@leejacksondev
@leejacksondev Месяц назад
For a moment I thought I was watching an LGR video. en.m.wikipedia.org/wiki/Lazy_Game_Reviews
@leejacksondev
@leejacksondev Месяц назад
Ps this is an epic video. Trying to get my whole code base considered has been something that’s been bugging me.
@nickmills8476
@nickmills8476 Месяц назад
Interesting approach.
@wingsaber629
@wingsaber629 Месяц назад
Holy damn, I've been using Claude for code snippets and was wondering how I'd upload an entire project base. BRAVO! Will try your ai-digest package. Thank you
@dr.mikeybee
@dr.mikeybee Месяц назад
Be careful. Claude will remove features if you aren't careful. Make sure your system message says not to remove any features as it makes new edits.
@jaysonp9426
@jaysonp9426 Месяц назад
Yep that's the most frustrating. I'm literally building a "better artifacts" project on GitHub to account for things like this
@dr.mikeybee
@dr.mikeybee Месяц назад
Here's how I give my code to claude: find . -type f -not \( -path "*/__pycache__/*" -o -path "./src/archive/*" -o -path "./src/experiments/*" -o -path "./src/tests/*" -o -name "*.db" -o -name "*.pyc" -o -name "*.json" -o -name "config*" -o -path "*/chats/*" -o -path "./memories/*" -o -name "*.log" -o -name "*pytest*" -o -path "*/.git/*" \) -exec sh -c 'if file -b --mime-type "$1" | grep -qE "^text/"; then echo "--- $1 ---"; cat "$1"; fi' _ {} \;|pbcopy.
@yurijmikhassiak7342
@yurijmikhassiak7342 Месяц назад
Hey, thanks for sharing. Did you try similar workflow with cursor AI? I find it works better if you tag specific files you need in specific task than all codebase. Also you can ask same question other LLMs if you don't like the answer. Sometimes claude is better, sometimes gpt.
@StanislavKhromov
@StanislavKhromov Месяц назад
Thanks you for your comment! I have tried Cursor, both the normal RAG version with embeddings and their new "long context" chat feature where you can upload the whole codebase. Since Cursor uses the API the chat gets very expensive quickly because you pay for the whole codebase tokens for every message. I find the convenience of Projects and full code recall easier than having to remember which files to include in every message, but you should use the workflows that works best for you!
@siddhantparadox
@siddhantparadox Месяц назад
Can you share your custom instructions template?
@StanislavKhromov
@StanislavKhromov Месяц назад
Of course! Here is the prompt that was used in the video. Keep in mind you have to change your app name, purpose and technologies used in the beginning of the prompt. "You are an AI assistant with expertise in the Appreciation Jar app, a digital platform for couples to share appreciative messages. The app is built using SvelteKit, TypeScript, and PostgreSQL, with additional technologies like Capacitor for mobile app development (iOS and Android), Firebase for push notifications, and various APIs for different functionalities. You should be able to answer questions about the app's features, architecture, and implementation details. When asked about code specifics, refer to the structure and patterns used in the provided codebase. If asked about future improvements or features, consider the existing architecture and suggest enhancements that align with the app's current code. Write TypeScript code, add and infer types when possible. Always write out changes to files in full, never write out partial files or files with comments in them like /* existing code here */. Always write code using Claude Artifacts. After you produce code changes, make a very short bullet point summary of the changes that were made."
@pauek
@pauek Месяц назад
Very interesting! Nice video! The RU-vid standard is going up quickly! Being your 6th video it is great. Some parts could be edited to make it keep the pace (and some I would explain in more detail, at least I got lost). But so useful.
@BhideSvelte
@BhideSvelte Месяц назад
Niceeee oneeee
@markasena
@markasena Месяц назад
your ai-digest is awesome! also did the svelte 5 docs claude now rarely hallucinates with it.
@mambodev
@mambodev Месяц назад
Hi @StanislavKhromov ,I'm having trouble getting my drizzle kit migrate command to work. Any advice?
@StanislavKhromov
@StanislavKhromov Месяц назад
Run the migration in the npm start command so it runs when the container starts. Instead of `node build/index` your command would look like `npm run migrate && node build/index`
@tecee1697
@tecee1697 Месяц назад
I am getting 502 error after deploying it ... not sure how to debug it
@mambodev
@mambodev Месяц назад
I encountered the same error. Try changing the port from the default to the one shown in the logs. For me, it was 3000.
@tecee1697
@tecee1697 Месяц назад
@@mambodev where to check the log..no idea never used docker container and caprover before...
@StanislavKhromov
@StanislavKhromov Месяц назад
@@tecee1697 You can see your apps logs under Deployment tab -> App logs (just under the list of deployments)
@tecee1697
@tecee1697 Месяц назад
@@StanislavKhromov thanks all i see in log is this : 2024-07-18T05:41:01.693622877Z /
@StanislavKhromov
@StanislavKhromov Месяц назад
If you're using SvelteKit with adapter-node it should be port 3000, if you're using a different framework, refer to their guide for the correct port and make sure to set the correct port in EXPOSE inside the Dockerfile as well