Skip to content

Commit

Permalink
Refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
alexsparrow committed Jan 26, 2024
1 parent 32a4f97 commit 04c65a4
Show file tree
Hide file tree
Showing 84 changed files with 67 additions and 37 deletions.
15 changes: 11 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,29 @@ jobs:
apt-get install -y python3-pip
pip3 install torch --index-url https://download.pytorch.org/whl/cpu
- name: Build
- name: Build Web Extension
run: |
npm install
npm run dist
working-directory: ./webext

- name: Build Desktop App
run: |
export LD_LIBRARY_PATH=/usr/local/lib/python3.9/dist-packages/torch/lib
export LIBTORCH_USE_PYTORCH=1
export LIBTORCH_BYPASS_VERSION_CHECK=1
npm install
npm run tauri -- build --verbose
working-directory: ./semdesk-app
working-directory: ./semtex-app

- name: Release with Notes
uses: softprops/action-gh-release@v1
with:
files: |
target/release/bundle/deb/*.deb
target/release/bundle/deb/*.AppImage
target/release/bundle/appimage/*.AppImage
webext/web-ext-artifacts/*.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

17 changes: 12 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 6 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
[workspace]

members = [
"semdesk-api", "semdesk-vector", "migration"
, "entity", "semdesk-app/src-tauri"]
"semtex-api",
"semtex-vector",
"migration",
"entity",
"semtex-app/src-tauri"
]
5 changes: 3 additions & 2 deletions semdesk-api/Cargo.toml → semtex-api/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
name = "semdesk-api"
name = "semtex-api"
version = "0.1.0"
edition = "2021"

Expand All @@ -12,7 +12,7 @@ actix-cors = "0.6.5"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
env_logger = { version = "0.10.1", features = ["auto-color"]}
semdesk-vector = { path = "../semdesk-vector" }
semtex-vector = { path = "../semtex-vector" }
log = "0.4.20"
usearch = "2.8.14"
rand = "0.8.5"
Expand All @@ -21,3 +21,4 @@ chrono = { version = "0.4", features = ["unstable-locales"] }

entity = { path = "../entity" }
migration = { path = "../migration" } # depends on your needs
xdg = "2.5.2"
4 changes: 2 additions & 2 deletions semdesk-api/src/indexer.rs → semtex-api/src/indexer.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use actix::dev::{MessageResponse, OneshotSender};
use actix::prelude::*;
use actix_web::rt::Runtime;
use semdesk_vector::embed;
use semdesk_vector::minilm::MiniLM;
use semtex_vector::embed;
use semtex_vector::minilm::MiniLM;

use crate::Models;
use crate::searcher::SearcherActor;
Expand Down
11 changes: 7 additions & 4 deletions semdesk-api/src/lib.rs → semtex-api/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
mod indexer;
mod searcher;
mod util;

use core::panic;
use actix_cors::Cors;
Expand All @@ -20,9 +21,10 @@ use sea_orm::{
ActiveModelTrait, ActiveValue, ColumnTrait, DatabaseConnection, EntityTrait, QueryFilter,
};
use searcher::{searcher, SearcherActor};
use semdesk_vector::jina_candle::{self, JinaCandle};
use semdesk_vector::minilm::MiniLM;
use semtex_vector::jina_candle::{self, JinaCandle};
use semtex_vector::minilm::MiniLM;
use serde::{Deserialize, Serialize};
use util::xdg_dirs;

#[derive(Deserialize)]
struct Source {
Expand Down Expand Up @@ -74,7 +76,7 @@ pub struct Models {

#[get("/")]
async fn root() -> impl Responder {
HttpResponse::Ok().body("semdesk")
HttpResponse::Ok().body("semtex")
}

#[post("/ingest")]
Expand Down Expand Up @@ -161,7 +163,8 @@ pub async fn run_server() -> std::io::Result<()> {
let indexer_models = models.clone();
let indexer = SyncArbiter::start(1, move || indexer(&indexer_models, &searher_addr));

let connection = sea_orm::Database::connect("sqlite://db.sqlite?mode=rwc")
let db_path = format!( "sqlite://{}?mode=rwc", xdg_dirs().place_data_file("db.sqlite").unwrap().display());
let connection = sea_orm::Database::connect(db_path)
.await
.unwrap();
Migrator::up(&connection, None).await.unwrap();
Expand Down
2 changes: 1 addition & 1 deletion semdesk-api/src/main.rs → semtex-api/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use semdesk_api::run_server;
use semtex_api::run_server;

#[actix_web::main]
pub async fn main() -> std::io::Result<()> {
Expand Down
18 changes: 10 additions & 8 deletions semdesk-api/src/searcher.rs → semtex-api/src/searcher.rs
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
use std::borrow::Borrow;
use std::cmp::{min, max};

use actix::dev::{MessageResponse, OneshotSender};
use actix::prelude::*;
use semdesk_vector::embed;
use semdesk_vector::jina_candle::JinaCandle;
use semdesk_vector::minilm::MiniLM;
use semtex_vector::embed;
use semtex_vector::jina_candle::JinaCandle;
use semtex_vector::minilm::MiniLM;
use usearch::{new_index, Index};

use usearch::ffi::{IndexOptions, MetricKind, ScalarKind};

use crate::Models;
use crate::util::xdg_dirs;

#[derive(Message)]
#[rtype(result = "SearchResponse")]
Expand Down Expand Up @@ -73,10 +75,11 @@ pub fn searcher(models: &Models) -> SearcherActor {
};

let index = new_index(&options).unwrap();
let index_path = xdg_dirs().place_data_file("index.usearch").unwrap().into_os_string().into_string().unwrap();

match index.load("index.usearch") {
match index.load(&index_path) {
Err(_) => {
index.save("index.usearch").unwrap();
index.save(&index_path).unwrap();
}
Ok(_) => ()
}
Expand All @@ -96,8 +99,6 @@ impl Handler<SearchMessage> for SearcherActor {
match msg {
SearchMessage::Search { query } => {
let v = embed(&mut self.minilm, &[&query]);
println!("Vector {}", v.len());
println!("Vector {}", v[0].len());
let results = self.index.search(&v[0], 10).unwrap();

return SearchResponse::SearchResult {
Expand All @@ -118,7 +119,8 @@ impl Handler<SearchMessage> for SearcherActor {
}

self.index.add(key, vector.as_slice()).unwrap();
self.index.save("index.usearch").unwrap();
let index_path = xdg_dirs().place_data_file("index.usearch").unwrap().into_os_string().into_string().unwrap();
self.index.save(&index_path).unwrap();
SearchResponse::IndexResult
}
}
Expand Down
6 changes: 6 additions & 0 deletions semtex-api/src/util.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
use xdg::BaseDirectories;


pub fn xdg_dirs() -> BaseDirectories {
xdg::BaseDirectories::with_prefix("semtex").unwrap()
}
File renamed without changes.
File renamed without changes.
File renamed without changes.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion semdesk-app/package.json → semtex-app/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "semdesk-app",
"name": "semtex-app",
"private": true,
"version": "0.0.0",
"type": "module",
Expand Down
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
name = "semdesk-app"
name = "semtex-app"
version = "0.0.0"
description = "A Tauri App"
authors = ["you"]
Expand All @@ -15,7 +15,7 @@ tauri-build = { version = "1.5", features = [] }
[dependencies]
tauri = { version = "1.5", features = [ "system-tray", "shell-open"] }
serde = { version = "1.0", features = ["derive"] }
semdesk-api = { path = "../../semdesk-api" }
semtex-api = { path = "../../semtex-api" }
serde_json = "1.0"
actix-web = "4"

Expand Down
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
use actix_web::rt::System;
use std::thread;

use semdesk_api::run_server;
use semtex_api::run_server;
use tauri::Manager;
use tauri::{CustomMenuItem, SystemTray, SystemTrayEvent, SystemTrayMenu, SystemTrayMenuItem};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
{
"fullscreen": false,
"resizable": true,
"title": "semdesk-app",
"title": "semtex",
"width": 800,
"height": 600
}
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion semdesk-vector/Cargo.toml → semtex-vector/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
name = "semdesk-vector"
name = "semtex-vector"
version = "0.1.0"
edition = "2021"

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion semdesk-webext/README.md → webext/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# semdesk-webext
# semtex webext

This template should help get you started developing a vanilla web extension in Vite.

Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 04c65a4

Please sign in to comment.