Skip to content

jamesdebass/Neurite

 
 

Repository files navigation

⚠️ Warning: Contains zooming, flashing lights, and colors which may not currently be suitable for people with photosensitive epilepsy.

Neurite

Choose_Your_Own_Adventure.mov

Introduction

💡 Neurite unleashes a new dimension of digital interface...

...the fractal dimension.

Available through Github Pages: Neurite

See User Guide for instructions on running locally

🌱 This is an open-source project in early alpha, we are looking to grow our team! 🚧

feel free to visit our Discord!

Table of Contents

  1. Introduction
  2. How to Use Neurite
  3. FractalGPT
  4. Local Ai
  5. Local Server Setup
  6. User Guide
  7. Future of Neurite
  8. Contact

How to Use Neurite

📚 Neurite lets you embed anything - text, photos, audio, video, PDFs, or i-frame content - into the Mandelbrot set.

Drag and drop local files or web content straight into the fractal

Supports embedded links. Ctrl+V to paste an embed link

Controls

*Full controls are listed in the ? tab.

Shift + double click to create nodes.

Shift to freeze nodes.

Double click to anchor node.

Hold Shift + click two nodes to connect.

FractalGPT

Not your typical chat interface.

  • Web of thought reasoning.

Mind mapping through Neurite enables long-term memory for LLMs.

To interact with the AI, you will need an OpenAi API key, or you can install a local Ai directly in browser!

  • The LLM’s responses format themselves into notes and connections within the fractal mind map, leading to an emergent graph structure that represents the AI’s memory.
  • Breaking up the AI's output into a chain of thought reasoning is one of a number of methods that correlate to improved Ai response.
  • Mind mapping combined with a fractal interface goes beyond chain of thought reasoning to produce an interactive fractal web of thought.
  • Our Zettelkasten parsing method combined with vector embedding search allows for arbitrary time-distance memory. (Long term memory for conversation with Ai)
  • The Mandelbrot set acts as the terrain for your mind-map to grow into an interconnected tapestry of multimedia!
Sierpinski.mov

Neurite supports the following Ai features

  1. Auto Mode
  2. Node based memory combined with vector embed retrieval that enables long term conversation memory for LLMs.
  3. HTML/JS and In-browser Python (pyodide) environment for directly rendering GPT's code output.
  4. Web Search (requires Google programmable search api key and search engine id) (to search without an API key, send a url within the prompt input and the webpage will display without going through Google.)
  5. Webpage and PDF text extraction.
  6. Wikipedia Summaries (Requires setting up the 'wiki-server' found in the repo)
  7. Wolfram Alpha Results. (Requires an API key and setting up the 'wolfram-server' in the repo)

All API keys can be input through the Ai tab of the menu dropdown.

Local Ai

LocalAi.mov

Above is an example of conversation history being shared between GPT-4 and a Local Ai model, Red Pajamas, run through webLLM.

Ai Nodes allow for the creation of an arbitrary number of Ai Agents that can connect together.

  • Alt + Double click creates a node with a more traditional AI chat interface. (you can create multiple)
  • The AI node will retain context from any other text or AI nodes that connect to it. (Hold Shift + Click two node windows to connect them together)
  • This means the ability to connect multiple chat interfaces together, and the ability to retain textual memories without having to re-copy and re-paste them every time.
  • Supports webLLM and OpenAi models concurrently.

Neurite currently supports OpenAi, Red Pajamas 3B, and Vicuna 7B.

  • webLLM runs Ai models directly in browser on the GPU or CPU.
  • We are also running an embeddings model locally through Transformers.js for local webpage/pdf extraction.
  • This is an early implementation.

See webLLM's documentation for how to run the models on your GPU.

Local Server Setup

Download Localhost Servers here.

The servers enable plugin integration for webpage/pdf text extraction, Wolfram Alpha, and Wikipedia.

  • The Wikipedia, Wolfram, and web scrape servers require Python and Node.js
  • The readme in the Locahost Servers folder explains how to run all of the servers at once.
  • Without any servers running, Wolfram, Wiki, and Webpage extractions will not function.
  • All servers can be run with one command. Download the Localhost Servers folder, or find it in your cloned directory. Once navigated to the Localhost Servers folder in your command line, run node start_servers.js. This will run all of the servers at once. The servers work with our Github pages host of Neurite, or any other way you locally access the interface.

In the '?' tab, the AI HOW-TO checkbox will send a context message to the AI that allows it to answer questions about Neurite.

Wolfram.mov

Above is an example of combining the Wolfram Alpha API with GPT-4.

Wolfram, Wikipedia, and Webpage/PDF vector database plugins are accessed through the localhost servers.

User Guide

To run Neurite locally,

either:

  1. Clone the repository
  2. Open the index.html file in your browser (note: local AI features will not be enabled)

Or, to enable local AI features without using our Github pages host above:

  1. Navigate to the cloned directory in your terminal (either main or local-ai branch)
  2. Install any global dependencies if getting errors when running the below,
npm install
npm run build
npm run start
  • Search: Enter a search query to locate windows containing that text. A list of search results will display to the left of the menu. Click on a search result to zoom your view window to where the window is positioned and scaled within the Mandelbrot set (fractal).
  • Saving: Saving is currently a work-in-progress. Your networks will can be saved in the browser cache, or downloaded as a .txt file. Drag the .txt file into the save box, click load on the imported file in the save box, then click the second load button to display the network. Non-textual content currently needs to be re-inserted.
  • Zettelkasten: The Zettelkasten method enables nodes to be created by typing into the main text area. The AI follows this format to create and connect its responses together. This allows for a tree of thought reasoning process within the Mandelbrot set.

Aidiagram2_1 2 1

  • This diagram represents how the AI's response incorperates note-taking to retain a non-linear conversation history.
  • We feed both the recent conversation as well as any matched notes that are not already in the recent conversation as part of the context message to the Ai.
  • This means retaining relevant information from any part of the conversation regardless of the Ai's context window size.
  • Still, advancements in context window size only further enable Neurite's performance.

Future of Neurite

Neurite is a recursive environment for generating ideas. As we are in the middle of a rapid acceleration in AI development, new tools to visualize and organize information are ever more necessary. The project is an experimental attempt to navigate this emergent technological landscape.

🚧

✅ webLLM

  • webLLM localhost

✅ local embeddings

  • VR
  • deeper zoom
  • improved fractal integration/visualization

✅ color selection

✅ adjust width, length, max lines, speed

✅ screen recording

  • accessibility
  • auto embed formats
  • custom equations for the fractal
  • drawing-tool
  • user feedback/bug fixes

🚧

Contact

If you are a developer who is interested in contributing to this project, contact us at contactdendrite@gmail.com or visit our discord 🔗

Neuritereadme4fps360 full video here Screenshot 2023-06-16 221906

About

Neurite: Fractal mind-mapping interface. In-browser Ai via WebLLM, OpenAi API with long-term memory, AutoGPT, Wolfram, Wikipedia, Google Search, webpage/PDF extraction, HTML/Python rendering.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 79.4%
  • HTML 8.5%
  • CSS 7.6%
  • TypeScript 3.1%
  • Python 1.4%