Lightweight memory store for embeddings
Project description
LiteMem
LiteMem - это легковесная библиотека для управления памятью с использованием SQLite, sqlite-vec и локальных эмбеддингов. Библиотека предоставляет два основных класса для работы с памятью: Memory и MemoryEmbedded.
Основные возможности
- Векторный поиск: Поиск похожих сообщений с использованием эмбеддингов
- Полнотекстовый поиск: Традиционный текстовый поиск по сообщениям
- Гибридный поиск: Комбинация векторного и полнотекстового поиска
- Локальные эмбеддинги: Поддержка локальных моделей для генерации эмбеддингов
- SQLite база данных: Все данные хранятся в SQLite с расширениями для векторного поиска
Установка
pip install litemem
Быстрый старт
Использование Memory с внешними эмбеддингами
from litemem import Memory
import ollama
# Функция для генерации эмбеддингов
def embedder(text):
response = ollama.embeddings(model='nomic-embed-text', prompt=text)
return response['embedding']
# Создание экземпляра памяти
memory = Memory('memory.db', embedder)
# Добавление сообщений
memory.add([
"Я люблю программирование на Python",
"Машинное обучение - это интересная область",
"SQLite - отличная встраиваемая база данных"
])
# Векторный поиск
results = memory.search_vec("программирование на Python")
print(results)
# Полнотекстовый поиск
results = memory.search_fts("Python")
print(results)
# Гибридный поиск
results = memory.hybrid_search("программирование")
print(results)
# Закрытие соединения
memory.close()
Использование MemoryEmbedded с локальными моделями
from litemem import MemoryEmbedded
# Создание экземпляра памяти с локальной моделью
memory = MemoryEmbedded('memory.db')
# Добавление сообщений
memory.add([
"Я люблю программирование на Python",
"Машинное обучение - это интересная область",
"SQLite - отличная встраиваемая база данных"
])
# Поиск
results = memory.search_vec("программирование на Python")
print(results)
# Закрытие соединения
memory.close()
Основные классы
Memory
Класс Memory требует внешнюю функцию для генерации эмбеддингов. Подходит для использования с любыми моделями эмбеддингов.
Методы:
add(message): Добавление сообщений в памятьsearch_vec(query, limit=64): Векторный поискsearch_fts(query, limit=32): Полнотекстовый поискhybrid_search(query, limit=32): Гибридный поискremove(ids): Удаление сообщений по IDclear(): Очистка всей памяти
MemoryEmbedded
Класс MemoryEmbedded использует локальные модели эмбеддингов и включает модель all-MiniLM-L6-v2-Q8_0.gguf в дистрибутив. Модель загружена отсюда.
Методы:
add(message): Добавление сообщений в памятьsearch_vec(query, limit=64): Векторный поискsearch_fts(query, limit=32): Полнотекстовый поискhybrid_search(query, limit=32): Гибридный поискclear(ids): Удаление сообщений по IDclear_all(): Очистка всей памяти
Требования
- Python >= 3.12
- sqlite-vec >= 0.1.6
- sqlite-lembed >= 0.0.1a8
Используемые библиотеки
Лицензия
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file litemem-0.1.1.tar.gz.
File metadata
- Download URL: litemem-0.1.1.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7726cc4ce44c90bae3f92919f41266f7758f52b1dd47db60c7a0b681f36446a5
|
|
| MD5 |
31b2a49c43f90d2752a80fb8d6b50eaf
|
|
| BLAKE2b-256 |
bf58b717b3d84335fbf4bd0adee40ec001b7d4b1d858b543197666917a2c5631
|
File details
Details for the file litemem-0.1.1-py3-none-any.whl.
File metadata
- Download URL: litemem-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2881d0880a65305a1df55b5d71e56c32e7cfe1b5a58cd97f0caf3ff96be96a3c
|
|
| MD5 |
38d5c15b1d2ddcabedecbc66882c437c
|
|
| BLAKE2b-256 |
0363b71229a26fce31d1ac415e6077d91c188acc631492986616df10fa2949c3
|