sketch
ccl
sketch | ccl | |
---|---|---|
20 | 19 | |
2,235 | 853 | |
0.7% | 0.5% | |
4.4 | 9.0 | |
8 months ago | 18 days ago | |
Python | Common Lisp | |
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.
sketch
-
Ask HN: What have you built with LLMs?
We've made a lot of data tooling things based on LLMs, and are in the process of rebranding and launching our main product.
1. sketch (in notebook, ai for pandas) https://github.com/approximatelabs/sketch
2. datadm (open source, "chat with data", with support for the open source LLMs (https://github.com/approximatelabs/datadm)
3. Our main product: julyp. https://julyp.com/ (currently under very active rebrand and cleanup) -- but a "chat with data" style app, with a lot of specialized features. I'm also streaming me using it (and sometimes building it) every weekday on twitch to solve misc data problems (https://www.twitch.tv/bluecoconut)
For your next question, about the stack and deploy:
-
Pandas AI – The Future of Data Analysis
This morning I added a "Related Projects" [3] Section to the Buckaroo docs. If Buckaroo doesn't solve your problem, look at one of the other linked projects (like Mito).
[1] https://github.com/approximatelabs/sketch
[2] https://github.com/paddymul/buckaroo
[3] https://buckaroo-data.readthedocs.io/en/latest/FAQ.html
-
Ask HN: What's your favorite GPT powered tool?
For GPT/Copilot style help for pandas, in notebooks REPL flow (without needing to install plugins), I built sketch. I genuinely use it every-time I'm working on pandas dataframes for a quick one-off analysis. Just makes the iteration loop so much faster. (Specifically the `.sketch.howto`, anecdotally I actually don't use `.sketch.ask` anymore)
https://github.com/approximatelabs/sketch
-
RasaGPT: First headless LLM chatbot built on top of Rasa, Langchain and FastAPI
https://github.com/approximatelabs/lambdaprompt It has served all of my personal use-cases since making it, including powering `sketch` (copilot for pandas) https://github.com/approximatelabs/sketch
Core things it does: Uses jinja templates, does sync and async, and most importantly treats LLM completion endpoints as "function calls", which you can compose and build structures around just with simple python. I also combined it with fastapi so you can just serve up any templates you want directly as rest endpoints. It also offers callback hooks so you can log & trace execution graphs.
All together its only ~600 lines of python.
I haven't had a chance to really push all the different examples out there, but most "complex behaviors", so there aren't many patterns to copy. But if you're comfortable in python, then I think it offers a pretty good interface.
I hope to get back to it sometime in the next week to introduce local-mode (eg. all the open source smaller models are now available, I want to make those first-class)
-
[D] The best way to train an LLM on company data
Please look at sketch and langchain pandas/SQL plugins. I have seen excellent results with both of these approaches. Both of these approaches will require you to send metadata to openAI.
-
Meet Sketch: An AI code Writing Assistant For Pandas
👉 Understand your data through questions 👉 Create code from plain text Quick Read: https://www.marktechpost.com/2023/02/01/meet-sketch-an-ai-code-writing-assistant-for-pandas/ Github: https://github.com/approximatelabs/sketch
-
Replacing a SQL analyst with 26 recursive GPT prompts
(3) Asking for re-writes of failed queries (happens occasionally) also helps
The main challenge I think with a lot of these "look it works" tools for data applications, is how do you get an interface that actually will be easy to adopt. The chat-bot style shown here (discord and slack integration) I can see being really valuable, as I believe there has been some traction with these style integrations with data catalog systems recently. People like to ask data questions to other people in slack, adding a bot that tries to answer might short-circuit a lot of this!
We built a prototype where we applied similar techniques to the pandas-code-writing part of the stack, trying to help keep data scientists / data analysts "in flow", integrating the code answers in notebooks (similar to how co-pilot puts suggestions in-line) -- and released https://github.com/approximatelabs/sketch a little while ago.
-
FLiP Stack Weekly for 21 Jan 2023
Python AI Helper https://github.com/approximatelabs/sketch
- LangChain: Build AI apps with LLMs through composability
- Show HN: Sketch – AI code-writing assistant that understands data content
ccl
-
ARM or x86? ISA Doesn't Matter
> I assume this was some toy compiler
I dont know the definition of "toy compiler", but compare the following (x86 backend vs arm64 backend)
https://github.com/Clozure/ccl/blob/d960a0e/compiler/X86/x86...
https://github.com/Clozure/ccl/blob/d960a0eee/compiler/ARM64...
I would argue the former is a lot more complex compared to the functional equivalent in arm64
-
Don't Invent XML Languages (2006)
There's plenty of history of s-expression formats for documentation. One example is: https://github.com/Clozure/ccl/tree/master/doc/manual
But, also, there's plenty of uses of XML that are not "artcles and books". For example, Maven's pom.xml and log4j2.xml.
-
The IDEs we had 30 years ago and we lost
The descendant of CCL runs on modern Intel Macs. (It also runs on Linux and Windows but without the IDE.) The modern IDE is quite a bit different from the original. In particular, it no longer has the interface builder. But it's still pretty good. It is now called Clozure Common Lisp (so the acronym is still CCL) and you can find it here:
https://ccl.clozure.com/
If you want to run the original that is a bit of a challenge, but still possible. The original was never ported directly to OS X so you have to run it either on old hardware or an emulator running some version of the original MacOS, or on an older Mac running Rosetta 1. In the latter case you will want to look for something called RMCL. Also be aware that Coral Common Lisp was renamed Macintosh Common Lisp (i.e. MCL) before it became Clozure Common Lisp (CCL again).
This looks like it might be a promising place to start:
https://github.com/binghe/mcl
If you need more help try this mailing list:
https://lists.clozure.com/mailman/listinfo/openmcl-devel
- The Saga of the Closure Compiler, and Why TypeScript Won
-
Clozure CL 1.12.2
Download: https://github.com/Clozure/ccl/releases/tag/v1.12.2
-
plain-common-lisp: a lightweight framework created to make it easier for software developers to develop and distribute Common Lisp applications on Microsoft Windows
I was not aware that UIOP provided that function. plain-common-lisp used to be implemented with Clozure CL but eventually moved to SBCL due to the lack of maintenance of CCL. But now there is a hard dependency on SBCL.
- Clozure Common Lisp Wiki
-
Consuming HTTP endpoint using Common Lisp
I have decided it is time to have some fun and use Common Lisp to create algorithm representation that deals with parallel execution. For this I decided to use Clozure common lisp, put basic Qucklisp there and load some libraries to do this.
-
The Origins of Lisp
Lisp must be read outside->in to understand what it is saying. Given (foo (a) (b c)), if you don't know what foo is and just start reading (b c), which is inside, hoping that later you can work out what is foo, you could be going down a blind alley. foo could be a macro or special operator which entirely controls what (b c) means.
To understand what is calculated in Lisp, given that you understand what the syntax means, the evaluation is inside->out.
That's no different from math. In any languages that have math-like nested expressions with bracketing, you have inside-out evaluation.
The alternative are catenative languages and such, which have never been mainstream.
There are assembly languages which go line by line.
Imperative languages with statements and expressions tend to have small expressions where evaluation is followed inside-out; the rest of the control flow is just top down, with some forward and backward skips.
Lisp has all of the above in it. Lisp can be assembly language. For instance, in thsi source file from Clozure Common Lisp:
https://github.com/Clozure/ccl/blob/master/level-0/ARM/arm-h...
(defarmlapfunction fast-mod-3 ((number arg_x) (divisor arg_y) (recip arg_z))
What are some alternatives?
lmql - A language for constraint-guided and efficient LLM programming.
sbcl - Mirror of Steel Bank Common Lisp (SBCL)'s official repository
pandas-ai - Chat with your database (SQL, CSV, pandas, polars, mongodb, noSQL, etc). PandasAI makes data analysis conversational using LLMs (GPT 3.5 / 4, Anthropic, VertexAI) and RAG.
sketch - A Common Lisp framework for the creation of electronic art, visual design, game prototyping, game making, computer graphics, exploration of human-computer interaction, and more.
RasaGPT - 💬 RasaGPT is the first headless LLM chatbot platform built on top of Rasa and Langchain. Built w/ Rasa, FastAPI, Langchain, LlamaIndex, SQLModel, pgvector, ngrok, telegram
lisp-interface-library - LIL: abstract interfaces and supporting concrete data-structures in Common Lisp
gpt_index - LlamaIndex (GPT Index) is a project that provides a central interface to connect your LLM's with external data. [Moved to: https://github.com/jerryjliu/llama_index]
data-lens - Functional utilities for Common Lisp
viper - Simple, expressive pipeline syntax to transform and manipulate data with ease
plain-common-lisp - A trivial way to get a native Common Lisp environment on Windows
LiteratureReviewBot - Experiment to use GPT-3 to help write grant proposals.
land-of-lisp-using-hunchentoot - Convert code for "Dice of Doom" from Barski's "Land of Lisp" to use Hunchentoot web server.