jsonathan

jsonathan t1_jbt3hqq wrote

This is really fascinating, thanks for sharing. I'm also working on generating natural language representations of Python packages. My approach is:

  1. Extract a call graph from the package, where each node is a function and two nodes are connected if one contains a call to the other.
  2. Generate natural language summaries of each function by convolving over the graph. This involves generating summaries of the terminal nodes (i.e. functions with no dependencies), then passing those summaries to their dependents to generate summaries, and so on. Very similar to how message passing works in a GNN. The idea here is that summarizing what a function does isn't possible without summaries of what its dependencies do.
  3. Summaries of each function within a file are chained to generate a summary of that file.
  4. Summaries of each file within a directory are chained to generate a summary of that directory, and so on until the root directory is reached.

I'd love to learn more about the differences/advantages of your approach compared to something like this. Thanks again for your contribution, this is insanely cool!

1

jsonathan OP t1_j3hwx5l wrote

Right now, this is just a simple demo of what’s possible with AI-driven debugging. But I’d like to build it out so that instead of just explaining errors, Adrenaline provided a ChatGPT-style assistant that can answer questions about your error, and teach you during the debugging process.

This is open-source, so if anyone’s interested in contributing, here’s the GitHub repository: https://github.com/shobrook/adrenaline

46

jsonathan OP t1_isjine3 wrote

I made this algorithm to "fill the gaps" in point clouds with synthetic data points to increase the density of the cloud. I figured this would be useful for reducing overfitting in machine learning models trained on point cloud data, or otherwise just enriching sparse point cloud datasets.

Please let me know what y'all think! Here's the Github repository.

9