jsonformer
aider
jsonformer | aider | |
---|---|---|
25 | 65 | |
3,868 | 9,914 | |
- | - | |
5.4 | 9.9 | |
3 months ago | 7 days ago | |
Jupyter Notebook | Python | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
jsonformer
- Forcing AI to Follow a Specific Answer Pattern Using GBNF Grammar
-
Refact LLM: New 1.6B code model reaches 32% HumanEval and is SOTA for the size
- Tools like jsonformer https://github.com/1rgs/jsonformer are not possible with OpenAIs API.
-
Show HN: LLMs can generate valid JSON 100% of the time
How does this compare in terms of latency, cost, and effectiveness to jsonformer? https://github.com/1rgs/jsonformer
-
Ask HN: Explain how size of input changes ChatGPT performance
You're correct with interpreting how the model works wrt it returning tokens one at a time. The model returns one token, and the entire context window gets shifted right by one to for account it when generating the next one.
As for model performance at different context sizes, it's seems a bit complicated. From what I understand, even if models are tweaked (for example using the superHOT RoPE hack or sparse attention) to be able to use longer contexts, they still have to be fined tuned on input of this increased context to actually utilize it, but performance seems to degrade regardless as input length increases.
For your question about fine tuning models to respond with only "yes" or "no", I recommend looking into how the jsonformers library works: https://github.com/1rgs/jsonformer . Essentially, you still let the model generate many tokens for the next position, and only accept the ones that satisfy certain criteria (such as the token for "yes" and the token for "no".
You can do this with openAI API too, using tiktoken https://twitter.com/AAAzzam/status/1669753722828730378?t=d_W... . Be careful though as results will be different on different selections of tokens, as "YES", "Yes", "yes", etc are all different tokens to the best of my knowledge
- A framework to securely use LLMs in companies – Part 1: Overview of Risks
-
LLMs for Schema Augmentation
From here, we just need to continue generating tokens until we get to a closing quote. This approach was borrowed from Jsonformer which uses a similar approach to induce LLMs to generate structured output. Continuing to do so for each property using Replit's code LLM gives the following output:
-
Doesn't a 4090 massively overpower a 3090 for running local LLMs?
https://github.com/1rgs/jsonformer or https://github.com/microsoft/guidance may help get better results, but I ended up with a bit more of a custom solution.
-
“Sam altman won't tell you that GPT-4 has 220B parameters and is 16-way mixture model with 8 sets of weights”
I think function calling is just JSONformer idk: https://github.com/1rgs/jsonformer
- Inference Speed vs. Quality Hacks?
-
Best bet for parseable output?
jsonformer: https://github.com/1rgs/jsonformer
aider
-
I Spent 24 Hours with GitHub Copilot Workspaces
My open source tool aider [0] has long offered a "AI pair programming" workflow. Aider's UX is similar but not identical to Copilot Workspaces.
Aider is more of a collaborative chat, where you work with the LLM interactively asking for a sequence of changes to your git repo. The changes can be non-trivial, modifying a group of files in a coordinated way. So much more than just the original copilot "autocomplete".
Workspaces seems more agentic, a bit like Devin. You need to do a bunch of up-front work to (fully) specify the requirements. Then the agent goes off and (hopefully) builds what you want. You need to fully understand what you want to build up front, and you need the describe it unambiguously to the agent. Also, even with a perfect request, agents often go down wrong paths and waste a lot of time and token costs doing the wrong thing.
That's not how I code personally. My process is more iterative, where I explore the problem and solution spaces as I build.
The other difference between aider and Workspaces is that currently aider is a terminal CLI tool. Although I just released a basic browser UI [1] the other day, making it more approachable for folks who are not fully comfortable on the command line.
[0] https://github.com/paul-gauthier/aider
[1] https://aider.chat/2024/05/02/browser.html
-
Agents of Change: Navigating the Rise of AI Agents in 2024
Aider was developed by Paul Gaither and focuses on giving developers a pair programming experience directly from developers' terminals. This command-line tool edits code in real-time based on a user prompt in the command terminal. As of writing, it only supports OpenAI’s API but can write, edit, and refine code across multiple languages including Python, JavaScript, and HTML. Developers can use Aider for code generation, debugging, and understanding complex projects.
-
2markdown – Transform Websites into Markdown
I built a similar thing in python using Playwright and Pandoc [0]. It's used by aider's `/web ` command that lets you paste a markdown version of any webpage into your AI coding chat. This helps if you want to include docs for an obscure or non-public package/api/etc with the LLM while coding.
I really value dependencies which are easy for all users to install, cross-platform. Playwright is nice because it has a simple way to install its dependencies on most platforms. And the `pypandoc` module provides a seamless install of pandoc across platforms.
The result turns most web pages into nice markdown without requiring users to solve some painful platform specific chromium dependency nightmare.
[0] https://github.com/paul-gauthier/aider/blob/main/aider/scrap...
-
Aider: AI pair programming in your terminal
Thanks for trying aider, and sorry to hear you had trouble getting the hang of it. It might be worth looking through some of the tips on the aider GitHub page [0].
In particular, this is one of the most important tips: Large changes are best performed as a sequence of thoughtful bite sized steps, where you plan out the approach and overall design. Walk GPT through changes like you might with a junior dev. Ask for a refactor to prepare, then ask for the actual change. Spend the time to ask for code quality/structure improvements.
Not sure if this was a factor in your attempts? I'd be happy to help you if you'd like to open an GitHub issue [1] our jump into our discord [2].
[0] https://github.com/paul-gauthier/aider#tips
[1] https://github.com/paul-gauthier/aider/issues/new/choose
[2] https://discord.gg/Tv2uQnR88V
-
Ask HN: If you've used GPT-4-Turbo and Claude Opus, which do you prefer?
Have you tried something like Agentic’s Glide? (They announced it this week here on HN)
They use gpt, but they might be able to configure it so it uses Claude
Another tool to check out could be aider https://github.com/paul-gauthier/aider
-
Launch HN: Glide (YC W19) – AI-assisted technical design docs
Are you aware of the work on https://github.com/paul-gauthier/aider? What's your take on generating code diffs directly instead of code editing instructions?
-
A Man in Seat 61
He should add AI to his site!
Not really - the site is great as-is and there's nothing wrong with this approach. It looks like it works really well for Mr. 61.
But I'd imagine it'd be pretty helpful to write tools to help with maintaining the site which do leverage LLM models. Do a combination of search + AI to rewrite + reviewing the individual edits (e.g. through selective git adds).
I'm imagining a tool like https://github.com/paul-gauthier/aider (which I haven't tried yet, but it looks useful for this kind of effort).
- Ask HN: What is the, currently, best Programming LLM (copilot) subscriptions?
-
Web Scraping in Python – The Complete Guide
I recently used [0] Playwright for Python and [1] pypandoc to build a scraper that fetches a webpage and turns the content into sane markdown so that it can be passed into an AI coding chat [2].
They are both very gentle dependencies to add to a project. Both packages contain built in or scriptable methods to install their underlying platform-specific binary dependencies. This means you don't need to ask end users to use some complex, platform-specific package manager to install playwright and pandoc.
Playwright let's you scrape pages that rely on js. Pandoc is great at turning HTML into sensible markdown. Below is an excerpt of the openai pricing docs [3] that have been scraped to markdown [4] in this manner.
[0] https://playwright.dev/python/docs/intro
[1] https://github.com/JessicaTegner/pypandoc
[2] https://github.com/paul-gauthier/aider
[3] https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turb...
[4] https://gist.githubusercontent.com/paul-gauthier/95a1434a28d...
## GPT-4 and GPT-4 Turbo
-
DeepSeek Coder: Let the Code Write Itself
Thanks for trying aider, and sorry to hear you had trouble getting the hang of it. It might be worth looking through some of the tips on the aider github page:
https://github.com/paul-gauthier/aider#tips
In particular, this is one of the most important tips: Large changes are best performed as a sequence of thoughtful bite sized steps, where you plan out the approach and overall design. Walk GPT through changes like you might with a junior dev. Ask for a refactor to prepare, then ask for the actual change. Spend the time to ask for code quality/structure improvements.
Not sure if this was a factor in your attempts? But it's best not to ask for a big sweeping change all at once. It's hard to unambiguously and completely specify what you want, and it's also harder for GPT to succeed at bigger changes in one bite.
What are some alternatives?
mlc-llm - Enable everyone to develop, optimize and deploy AI models natively on everyone's devices.
gpt-engineer - Specify what you want it to build, the AI asks for clarification, and then builds it.
clownfish - Constrained Decoding for LLMs against JSON Schema
gpt-pilot - The first real AI developer
outlines - Structured Text Generation
llama-cpp-python - Python bindings for llama.cpp
gpt-json - Structured and typehinted GPT responses in Python
ollama-ui - Simple HTML UI for Ollama
jikkou - The Open source Resource as Code framework for Apache Kafka
tabby - Self-hosted AI coding assistant
evadb - Database system for AI-powered apps
continue - ⏩ Open-source VS Code and JetBrains extensions that enable you to easily create your own modular AI software development system