Skip to main content

A Retrieval-augmented Generation (RAG) chat interface with support for multiple open-source models, designed to run natively on MacOS and Apple Silicon with MLX.

Project description

Chat with MLX 🧑‍💻

version downloads license python-version

An all-in-one Chat Playground using Apple MLX on Apple Silicon Macs.

chat_with_mlx

Features

  • Privacy-enhanced AI: Chat with your favourite models and data securely.
  • MLX Playground: Your all in one LLM Chat UI for Apple MLX
  • Easy Integration: Easy integrate any HuggingFace and MLX Compatible Open-Source Models.
  • Default Models: Llama-3, Phi-3, Yi, Qwen, Mistral, Codestral, Mixtral, StableLM (along with Dolphin and Hermes variants)

Installation and Usage

Easy Setup

  • Install Pip
  • Install: pip install chat-with-mlx

Manual Pip Installation

git clone https://github.com/qnguyen3/chat-with-mlx.git
cd chat-with-mlx
python -m venv .venv
source .venv/bin/activate
pip install -e .

Manual Conda Installation

git clone https://github.com/qnguyen3/chat-with-mlx.git
cd chat-with-mlx
conda create -n mlx-chat python=3.11
conda activate mlx-chat
pip install -e .

Usage

  • Start the app: chat-with-mlx

Add Your Model

Please checkout the guide HERE

Known Issues

  • When the model is downloading by Solution 1, the only way to stop it is to hit control + C on your Terminal.
  • If you want to switch the file, you have to manually hit STOP INDEXING. Otherwise, the vector database would add the second document to the current database.
  • You have to choose a dataset mode (Document or YouTube) in order for it to work.
  • Phi-3-small can't do streaming in completions

Why MLX?

MLX is an array framework for machine learning research on Apple silicon, brought to you by Apple machine learning research.

Some key features of MLX include:

  • Familiar APIs: MLX has a Python API that closely follows NumPy. MLX also has fully featured C++, C, and Swift APIs, which closely mirror the Python API. MLX has higher-level packages like mlx.nn and mlx.optimizers with APIs that closely follow PyTorch to simplify building more complex models.

  • Composable function transformations: MLX supports composable function transformations for automatic differentiation, automatic vectorization, and computation graph optimization.

  • Lazy computation: Computations in MLX are lazy. Arrays are only materialized when needed.

  • Dynamic graph construction: Computation graphs in MLX are constructed dynamically. Changing the shapes of function arguments does not trigger slow compilations, and debugging is simple and intuitive.

  • Multi-device: Operations can run on any of the supported devices (currently the CPU and the GPU).

  • Unified memory: A notable difference from MLX and other frameworks is the unified memory model. Arrays in MLX live in shared memory. Operations on MLX arrays can be performed on any of the supported device types without transferring data.

Acknowledgement

I would like to send my many thanks to:

  • The Apple Machine Learning Research team for the amazing MLX library.
  • LangChain and ChromaDB for such easy RAG Implementation
  • All contributors

Star History

Star History Chart

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chat_with_mlx-0.2.1.tar.gz (98.0 kB view details)

Uploaded Source

Built Distribution

chat_with_mlx-0.2.1-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file chat_with_mlx-0.2.1.tar.gz.

File metadata

  • Download URL: chat_with_mlx-0.2.1.tar.gz
  • Upload date:
  • Size: 98.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.4

File hashes

Hashes for chat_with_mlx-0.2.1.tar.gz
Algorithm Hash digest
SHA256 b9b5607c9b8b7daa7c663becf66f4c674da3e200a2f1a54686eac3dc609efe55
MD5 fcd1616af5e03f2a590c2bba330697ed
BLAKE2b-256 f3c61c9f99b9609bc766527dc414e24716ffbb19c68f7e13e79a43593ce74894

See more details on using hashes here.

File details

Details for the file chat_with_mlx-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for chat_with_mlx-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bd0a240b391fa90c0e3a062669fdad32cff2a135e6f65460eba43028773c361c
MD5 3510eb9279c29e75798f2ea554142aa7
BLAKE2b-256 9e03adad5ff9b00bff35ee1f13b90317fd29713fdd9a8ce5513657c3882914e6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page