Giter VIP home page Giter VIP logo

llamazing's Introduction

LLaMazing

A simple Web / UI / App / Frontend to Ollama.

Light Theme Dark Theme

Prerequisites

Install Ollama and run the server.

Download some models. For example, one of my favorites:

$ ollama pull dolphin-mistral

Using LLaMazing

For using the app itself, there are 3 options:

  • Web demo (with local Ollama)
  • Local Web UI
  • Stand-alone app

Option 1 : Web demo

Allow browser to connect to your Ollama instance:

$ launchctl setenv OLLAMA_ORIGINS 'https://my.llamaz.ing'

Head over to https://my.llamaz.ing and chat with your local Ollama instance.

Option 2 : Local Web UI

Install dependencies:

$ pnpm i

Run in browser (dev mode)

$ pnpm dev --open

Option 3 : Standalone app

Build one yourself (see below) or download a release from https://github.com/da-z/llamazing/releases

❗Note: In order for the standalone app to work, you have to either manually start Ollama server like this:

$ OLLAMA_ORIGINS=* ollama serve

or set the property globally (once) and restart Ollama server

$ launchctl setenv OLLAMA_ORIGINS '*'

Other

Building Web app

Build app (output goes to ./dist folder)

$ pnpm build

Running standalone app in dev mode

Install Tauri prerequisites based on your system:

$ pnpm tauri dev

Building app (Mac Universal)

$ pnpm tauri build --target universal-apple-darwin

Building app for your system

$ pnpm tauri build

Building app with debugging enabled

Good for troubleshooting a build (enables dev tools):

$ pnpm tauri build --debug

llamazing's People

Contributors

da-z avatar

Stargazers

Fabio Vinelli avatar Inosuke Hashibira avatar Altay Yuzeir avatar ᴛɪʟʟ ᴛᴏᴍᴄᴢᴀᴋ avatar xiix_ai avatar Christopher Celaya avatar  avatar Bruno Georgevich Ferreira avatar Readability avatar Ahmed Morsi avatar allen avatar Adeng Ahmad Shiddiq avatar  avatar Neuromancer avatar  avatar Emre Koc avatar  avatar Benjamin Guimberteau avatar Stephen avatar Radim Kabeláč avatar Marcel Hnilka avatar Mr. G avatar Český Tuňák avatar perseity avatar  avatar Cédric avatar USAGI avatar Ugis Vilcans avatar Beckett avatar  avatar Razvan B. avatar Agurla Ramesh Kumar avatar Niklas Haas avatar Starmorph AI avatar Thorsten Klein avatar  avatar Ali GÜNDOĞDU avatar Etienne DEBOST avatar HT avatar Sam Hogan avatar David Green avatar Vinay avatar Dragoș Haiduc avatar ⊣˚∆˚⊢ avatar Ade Thompson avatar James Pirruccello avatar TONy.W avatar Gary Blankenship avatar Rajat Sandeep avatar SUN YOUNG HWANG avatar Sean Stevens avatar Steffen Röcker avatar Chronos avatar Behnam Moh avatar polya avatar gabriel chua avatar Bobda Armel Hyacinthe avatar Jeffrey Morgan avatar Lulzx avatar

Watchers

Ade Thompson avatar  avatar

llamazing's Issues

Add RAG?

I just came across llamazing and it seems very nicely done. I have been working on adapting a different ollama front-end to support my concept for RAG and am wondering if I should switch to llamazing. I am more of a back-end developer though I have done some work with React in the past. More recently, I've done some work with Svelte, which I think I like better, but I could consider switching back to React to use this code.

But before I do any of that, I am wondering if you have any thoughts for extending this project to support RAG? We could start by just defining an interface to hook into the chat request/response. Something like:

import type {
    ChatRequest,
    ChatResponse,
} from "./interfaces.js";


interface Hook
{
    onRequest(request: ChatRequest): Promise<ChatRequest>;
    onResponse(response: ChatResponse): Promise<ChatResponse>;
}

export class DefaultHook implements Hook
{
    async onRequest(request: ChatRequest): Promise<ChatRequest>
    {
        return request;
    }

    async onResponse(response: ChatResponse): Promise<ChatResponse>
    {
        return response;
    }
}

The first RAG implementation would just use the hooks to write each new user message and assistant message to the vector store.

Next we modify the Request by doing a semantic search of the vector store filter the ChatRequest messages[] to include only the top 3 most semantically relevant request/response pairs. This would make it easy to play with and see that the filtering is working. The idea is that if carry out a short conversation on one topic, then switch to digression topic, then switch back to the original topic, the digression should be omitted.

Then we would need a way to ingest documents, and change the filtering to include passages from documents.

Does this interest you?

Conversations history

Thanks for supporting local storage,

I would like to ask if you are interested in enable conversations history like most of LLM UIs, so we can switch between conversations or start a new one while keeping all the conversations storied in the local cache.

Best,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.