Update prosty-rag.cmd
Browse files- 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.
|
| 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=
|
| 9 |
-
@set embedmodelURL=https://huggingface.co/
|
| 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(:
|
| 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(:
|
| 63 |
-
$response = $output |
|
| 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'
|