jglowa commited on
Commit
0216097
·
verified ·
1 Parent(s): a1a0a1b

Update prosty-rag.cmd

Browse files
Files changed (1) hide show
  1. prosty-rag.cmd +6 -6
prosty-rag.cmd CHANGED
@@ -1,12 +1,12 @@
1
  echo \" >/dev/null ">NUL "\" \`" <#"; shopt -s expand_aliases || setopt aliases; alias @set='' @echo='echo'
2
- @echo Prosty RAG v0.4 - Jerzy Glowacki na licencji Apache 2.0
3
  :; # Zmienne:
4
  @set llamafile=prosty-rag.llamafile
5
  @set modelfile="Prosty RAG - Bielik-4.5B-v3.0-Instruct.gguf"
6
  @set modelURL=https://huggingface.co/gaianet/Bielik-4.5B-v3.0-Instruct-GGUF/resolve/main/Bielik-4.5B-v3.0-Instruct-Q6_K.gguf?download=true
7
  @set embedfile=prosty-rag.embedfile
8
- @set embedmodelfile=bge-m3.gguf
9
- @set embedmodelURL=https://huggingface.co/gpustack/bge-m3-GGUF/resolve/main/bge-m3-Q6_K.gguf?download=true
10
  @set dbfile=prosty-rag.db
11
  @set indeksator=indeksator.cmd
12
  @set logfile=prosty-rag.log
@@ -23,7 +23,7 @@ echo \" >/dev/null ">NUL "\" \`" <#"; shopt -s expand_aliases || setopt aliases;
23
  :; # Uruchamianie
24
  :; >$logfile
25
  :; echo "Uruchamianie serwera embedfile na http://localhost:8081..."
26
- :; perl -MIO::Socket::INET -e 'my $embedfile=shift; my $embedmodelfile=shift; my $dbfile=shift; my $topK=shift; $SIG{INT}=$SIG{TERM}=sub { exit(0); }; my $s=IO::Socket::INET->new(LocalAddr=>"localhost",LocalPort=>8081,Proto=>"tcp",Listen=>1,ReuseAddr=>1) or die $!; while(my $c=$s->accept) { $c->autoflush(1); my $req=<$c>//""; my ($q)=$req=~/\?q=([^ ]+)/; if(defined $q && $q ne "") { $q=~s/%([0-9A-Fa-f]{2})/chr(hex $1)/eg; $q=~s/[\n+]/ /g; $q=~s/['\''"]//g; open my $fh, "-|", "./$embedfile","-m","$embedmodelfile","sh","$dbfile","-separator"," ",".param init",".param set :q '\''\"$q\"'\''",".param set :k $topK","WITH vm AS (SELECT rowid, ROW_NUMBER() OVER (ORDER BY distance) vec_rank FROM vec_items WHERE line_embedding MATCH lembed(:q) AND k=:k), fm AS (SELECT rowid, ROW_NUMBER() OVER (ORDER BY rank) fts_rank FROM fts_items WHERE fts_items MATCH :q LIMIT :k) SELECT items.rowid, COALESCE(1.0/(60+vm.vec_rank),0) + COALESCE(1.0/(60+fm.fts_rank),0) AS rrf_score, items.line FROM items LEFT JOIN vm ON items.rowid = vm.rowid LEFT JOIN fm ON items.rowid = fm.rowid ORDER BY rrf_score DESC LIMIT :k" or die $!; my @out=<$fh>; close $fh; print $c "HTTP/1.0 200 OK\r\nAccess-Control-Allow-Origin: *\r\nContent-Type: text/plain; charset=utf-8\r\n\r\n",@out; } else { print $c "HTTP/1.0 400 Bad Request\r\nAccess-Control-Allow-Origin: *\r\n\r\nBrak zapytania"; } close $c; }' $embedfile $embedmodelfile $dbfile $topK &
27
  :; echo "Uruchamianie serwera llamafile na http://localhost:8080..."
28
  :; ./$llamafile --server --v2 -m "$modelfile" --prompt "$systemPrompt" --flash-attn 1 $@ 2>&1 | tee $logfile &
29
  :; (tail -f $logfile &) | grep -q "server listen" && echo "Uruchamianie czatu na stronie http://localhost:8080 w przeglądarce..." && xdg-open "http://localhost:8080" || open "http://localhost:8080"; wait; exit $?
@@ -59,8 +59,8 @@ try {
59
  while ($listener.IsListening) {
60
  $ctx = $listener.GetContext()
61
  $q = ([System.Web.HttpUtility]::ParseQueryString($ctx.Request.Url.Query))['q'] -replace "['`"]", '' -replace "`n", ' '
62
- $output = if ($q) { cmd /c $embedfile -m $embedmodelfile sh $dbfile -separator " " ".param init" ".param set :q '\`"$q\`"'" ".param set :k $topK" "WITH vm AS (SELECT rowid, ROW_NUMBER() OVER (ORDER BY distance) vec_rank FROM vec_items WHERE line_embedding MATCH lembed(:q) AND k=:k), fm AS (SELECT rowid, ROW_NUMBER() OVER (ORDER BY rank) fts_rank FROM fts_items WHERE fts_items MATCH :q LIMIT :k) SELECT items.rowid, COALESCE(1.0/(60+vm.vec_rank),0) + COALESCE(1.0/(60+fm.fts_rank),0) AS rrf_score, items.line FROM items LEFT JOIN vm ON items.rowid = vm.rowid LEFT JOIN fm ON items.rowid = fm.rowid ORDER BY rrf_score DESC LIMIT :k" } else { @('Brak zapytania') }
63
- $response = $output | select-object -first $topK | out-string
64
  $bytes = [Text.Encoding]::UTF8.GetBytes($response)
65
  $ctx.Response.AddHeader('Access-Control-Allow-Origin', '*')
66
  $ctx.Response.ContentType = 'text/plain; charset=utf-8'
 
1
  echo \" >/dev/null ">NUL "\" \`" <#"; shopt -s expand_aliases || setopt aliases; alias @set='' @echo='echo'
2
+ @echo Prosty RAG v0.5 - Jerzy Glowacki na licencji Apache 2.0
3
  :; # Zmienne:
4
  @set llamafile=prosty-rag.llamafile
5
  @set modelfile="Prosty RAG - Bielik-4.5B-v3.0-Instruct.gguf"
6
  @set modelURL=https://huggingface.co/gaianet/Bielik-4.5B-v3.0-Instruct-GGUF/resolve/main/Bielik-4.5B-v3.0-Instruct-Q6_K.gguf?download=true
7
  @set embedfile=prosty-rag.embedfile
8
+ @set embedmodelfile=multilingual-e5-large-instruct.gguf
9
+ @set embedmodelURL=https://huggingface.co/kcccat/multilingual-e5-large-instruct-Q6_K-GGUF/resolve/main/multilingual-e5-large-instruct-q6_k.gguf?download=true
10
  @set dbfile=prosty-rag.db
11
  @set indeksator=indeksator.cmd
12
  @set logfile=prosty-rag.log
 
23
  :; # Uruchamianie
24
  :; >$logfile
25
  :; echo "Uruchamianie serwera embedfile na http://localhost:8081..."
26
+ :; perl -MIO::Socket::INET -e 'my $embedfile=shift; my $embedmodelfile=shift; my $dbfile=shift; my $topK=shift; $SIG{INT}=$SIG{TERM}=sub { exit(0); }; my $s=IO::Socket::INET->new(LocalAddr=>"localhost",LocalPort=>8081,Proto=>"tcp",Listen=>1,ReuseAddr=>1) or die $!; while(my $c=$s->accept) { $c->autoflush(1); my $req=<$c>//""; my ($q)=$req=~/\?q=([^ ]+)/; if(defined $q && $q ne "") { $q=~s/%([0-9A-Fa-f]{2})/chr(hex $1)/eg; $q=~s/[\n+]/ /g; $q=~s/['\''"]//g; open my $fh, "-|", "./$embedfile","-m","$embedmodelfile","sh","$dbfile","-separator"," ",".param init",".param set :q '\''\"$q\"'\''",".param set :qe5 '\''Instruct: Given a query, retrieve relevant passages that answer the query.\nQuery: $q'\''",".param set :k $topK","WITH vm AS (SELECT rowid, ROW_NUMBER() OVER (ORDER BY distance) vec_rank FROM vec_items WHERE line_embedding MATCH lembed(:qe5) AND k=:k), fm AS (SELECT rowid, ROW_NUMBER() OVER (ORDER BY rank) fts_rank FROM fts_items WHERE fts_items MATCH :q LIMIT :k) SELECT items.rowid, COALESCE(1.0/(60+vm.vec_rank),0) + COALESCE(1.0/(60+fm.fts_rank),0) AS rrf_score, items.line FROM items LEFT JOIN vm ON items.rowid = vm.rowid LEFT JOIN fm ON items.rowid = fm.rowid ORDER BY rrf_score DESC LIMIT :k" or die $!; my @out=<$fh>; close $fh; print $c "HTTP/1.0 200 OK\r\nAccess-Control-Allow-Origin: *\r\nContent-Type: text/plain; charset=utf-8\r\n\r\n",@out; } else { print $c "HTTP/1.0 400 Bad Request\r\nAccess-Control-Allow-Origin: *\r\n\r\nBrak zapytania"; } close $c; }' $embedfile $embedmodelfile $dbfile $topK &
27
  :; echo "Uruchamianie serwera llamafile na http://localhost:8080..."
28
  :; ./$llamafile --server --v2 -m "$modelfile" --prompt "$systemPrompt" --flash-attn 1 $@ 2>&1 | tee $logfile &
29
  :; (tail -f $logfile &) | grep -q "server listen" && echo "Uruchamianie czatu na stronie http://localhost:8080 w przeglądarce..." && xdg-open "http://localhost:8080" || open "http://localhost:8080"; wait; exit $?
 
59
  while ($listener.IsListening) {
60
  $ctx = $listener.GetContext()
61
  $q = ([System.Web.HttpUtility]::ParseQueryString($ctx.Request.Url.Query))['q'] -replace "['`"]", '' -replace "`n", ' '
62
+ $output = if ($q) { cmd /c $embedfile -m $embedmodelfile sh $dbfile -separator " " ".param init" ".param set :q '\`"$q\`"'" ".param set :qe5 'Instruct: Given a query, retrieve relevant passages that answer the query.\n Query: $q'" ".param set :k $topK" "WITH vm AS (SELECT rowid, ROW_NUMBER() OVER (ORDER BY distance) vec_rank FROM vec_items WHERE line_embedding MATCH lembed(:qe5) AND k=:k), fm AS (SELECT rowid, ROW_NUMBER() OVER (ORDER BY rank) fts_rank FROM fts_items WHERE fts_items MATCH :q LIMIT :k) SELECT items.rowid, COALESCE(1.0/(60+vm.vec_rank),0) + COALESCE(1.0/(60+fm.fts_rank),0) AS rrf_score, items.line FROM items LEFT JOIN vm ON items.rowid = vm.rowid LEFT JOIN fm ON items.rowid = fm.rowid ORDER BY rrf_score DESC LIMIT :k" } else { @('Brak zapytania') }
63
+ $response = $output | out-string
64
  $bytes = [Text.Encoding]::UTF8.GetBytes($response)
65
  $ctx.Response.AddHeader('Access-Control-Allow-Origin', '*')
66
  $ctx.Response.ContentType = 'text/plain; charset=utf-8'