Give the project a short, less generic name. Rename it to Khoj

- Semantic Search was just a placeholder used to test the idea out
  Didn't want to get into naming at that point of time
This commit is contained in:
Debanjum Singh Solanky
2022-07-19 18:26:16 +04:00
parent 989526ae54
commit 732b2d287f
13 changed files with 96 additions and 95 deletions

View File

@@ -1,33 +1,33 @@
* Emacs Semantic Search
/An Emacs interface for [[https://github.com/debanjum/semantic-search][semantic-search]]/
* Emacs Khoj
/An Emacs interface for [[https://github.com/debanjum/khoj][khoj]]/
** Requirements
- Install and Run [[https://github.com/debanjum/semantic-search][semantic-search]]
- Install and Run [[https://github.com/debanjum/khoj][khoj]]
** Installation
- Direct Install
- Put ~semantic-search.el~ in your Emacs load path. For e.g ~/.emacs.d/lisp
- Put ~khoj.el~ in your Emacs load path. For e.g ~/.emacs.d/lisp
- Load via ~use-package~ in your ~/.emacs.d/init.el or .emacs file by adding below snippet
#+begin_src elisp
;; Org-Semantic Search Library
(use-package semantic-search
:load-path "~/.emacs.d/lisp/semantic-search.el"
:bind ("C-c s" . 'semantic-search))
;; Khoj Package
(use-package khoj
:load-path "~/.emacs.d/lisp/khoj.el"
:bind ("C-c s" . 'khoj))
#+end_src
- Use [[https://github.com/quelpa/quelpa#installation][Quelpa]]
- Ensure [[https://github.com/quelpa/quelpa#installation][Quelpa]], [[https://github.com/quelpa/quelpa-use-package#installation][quelpa-use-package]] are installed
- Add below snippet to your ~/.emacs.d/init.el or .emacs config file and execute it.
#+begin_src elisp
;; Org-Semantic Search Library
(use-package semantic-search
:quelpa (semantic-search :fetcher url :url "https://raw.githubusercontent.com/debanjum/semantic-search/master/interface/emacs/semantic-search.el")
:bind ("C-c s" . 'semantic-search))
;; Khoj Package
(use-package khoj
:quelpa (khoj :fetcher url :url "https://raw.githubusercontent.com/debanjum/khoj/master/interface/emacs/khoj.el")
:bind ("C-c s" . 'khoj))
#+end_src
** Usage
1. Call ~semantic-search~ using keybinding ~C-c s~ or ~M-x semantic-search~
1. Call ~khoj~ using keybinding ~C-c s~ or ~M-x khoj~
2. Enter Query in Natural Language

View File

@@ -1,7 +1,7 @@
* Semantic Search
* Khoj
/Allow natural language search on user content like notes, images using transformer based models/
All data is processed locally. User can interface with semantic-search app via [[./interface/emacs/semantic-search.el][Emacs]], API or Commandline
All data is processed locally. User can interface with khoj app via [[./interface/emacs/khoj.el][Emacs]], API or Commandline
** Dependencies
- Python3
@@ -9,9 +9,9 @@
** Install
#+begin_src shell
git clone https://github.com/debanjum/semantic-search && cd semantic-search
git clone https://github.com/debanjum/khoj && cd khoj
conda env create -f environment.yml
conda activate semantic-search
conda activate khoj
#+end_src
** Run
@@ -22,16 +22,16 @@
#+end_src
** Use
- *Semantic Search via Emacs*
- [[https://github.com/debanjum/semantic-search/tree/master/interface/emacs#installation][Install]] [[./interface/emacs/semantic-search.el][semantic-search.el]]
- Run ~M-x semantic-search <user-query>~ or Call ~C-c C-s~
- *Khoj via Emacs*
- [[https://github.com/debanjum/khoj/tree/master/interface/emacs#installation][Install]] [[./interface/emacs/khoj.el][khoj.el]]
- Run ~M-x khoj <user-query>~ or Call ~C-c C-s~
- *Semantic Search via API*
- *Khoj via API*
- Query: ~GET~ [[http://localhost:8000/search?q=%22what%20is%20the%20meaning%20of%20life%22][http://localhost:8000/search?q="What is the meaning of life"]]
- Regenerate Embeddings: ~GET~ [[http://localhost:8000/regenerate][http://localhost:8000/regenerate]]
- [[http://localhost:8000/docs][Semantic Search API Docs]]
- [[http://localhost:8000/docs][Khoj API Docs]]
- *Call Semantic Search via Python Script Directly*
- *Call Khoj via Python Script Directly*
#+begin_src shell
python3 search_types/asymmetric.py \
--compressed-jsonl .notes.jsonl.gz \

View File

@@ -36,7 +36,7 @@ def test_asymmetric_search(content_config: ContentConfig, search_config: SearchC
count=1)
# Assert
# Actual_data should contain "Semantic Search via Emacs" entry
# Actual_data should contain "Khoj via Emacs" entry
search_result = results[0]["Entry"]
assert "git clone" in search_result

View File

@@ -20,7 +20,7 @@ client = TestClient(app)
# ----------------------------------------------------------------------------------------------------
def test_search_with_invalid_content_type():
# Arrange
user_query = "How to call semantic search from Emacs?"
user_query = "How to call Khoj from Emacs?"
# Act
response = client.get(f"/search?q={user_query}&t=invalid_content_type")
@@ -122,7 +122,7 @@ def test_notes_search(content_config: ContentConfig, search_config: SearchConfig
# Assert
assert response.status_code == 200
# assert actual_data contains "Semantic Search via Emacs" entry
# assert actual_data contains "Khoj via Emacs" entry
search_result = response.json()[0]["Entry"]
assert "git clone" in search_result