Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
orangecat
ollama
Commits
99b6b600
"awq/git@developer.sourcefind.cn:OpenDAS/autoawq.git" did not exist on "1e82667bf23dc85e5a8f267d49b097125b426d60"
Commit
99b6b600
authored
Aug 14, 2023
by
Bruce MacDonald
Browse files
use model bin digest for embed digest
parent
e9a9580b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
1 deletion
+18
-1
server/images.go
server/images.go
+18
-1
No files found.
server/images.go
View file @
99b6b600
...
@@ -502,6 +502,12 @@ func embeddingLayers(e EmbeddingParams) ([]*LayerReader, error) {
...
@@ -502,6 +502,12 @@ func embeddingLayers(e EmbeddingParams) ([]*LayerReader, error) {
}
}
}()
}()
// this will be used to check if we already have embeddings for a file
modelDigest
,
err
:=
modelDigest
(
e
.
model
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"model digest: %w"
,
err
)
}
addedFiles
:=
make
(
map
[
string
]
bool
)
// keep track of files that have already been added
addedFiles
:=
make
(
map
[
string
]
bool
)
// keep track of files that have already been added
for
_
,
filePattern
:=
range
e
.
files
{
for
_
,
filePattern
:=
range
e
.
files
{
matchingFiles
,
err
:=
filepath
.
Glob
(
filePattern
)
matchingFiles
,
err
:=
filepath
.
Glob
(
filePattern
)
...
@@ -515,7 +521,7 @@ func embeddingLayers(e EmbeddingParams) ([]*LayerReader, error) {
...
@@ -515,7 +521,7 @@ func embeddingLayers(e EmbeddingParams) ([]*LayerReader, error) {
}
}
addedFiles
[
filePath
]
=
true
addedFiles
[
filePath
]
=
true
// check if we already have embeddings for this file path
// check if we already have embeddings for this file path
layerIdentifier
:=
fmt
.
Sprintf
(
"%s:%s"
,
filePath
,
e
.
model
)
layerIdentifier
:=
fmt
.
Sprintf
(
"%s:%s"
,
filePath
,
model
Digest
)
digest
,
_
:=
GetSHA256Digest
(
strings
.
NewReader
(
layerIdentifier
))
digest
,
_
:=
GetSHA256Digest
(
strings
.
NewReader
(
layerIdentifier
))
existing
,
err
:=
existingFileEmbeddings
(
digest
)
existing
,
err
:=
existingFileEmbeddings
(
digest
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -585,6 +591,17 @@ func embeddingLayers(e EmbeddingParams) ([]*LayerReader, error) {
...
@@ -585,6 +591,17 @@ func embeddingLayers(e EmbeddingParams) ([]*LayerReader, error) {
return
layers
,
nil
return
layers
,
nil
}
}
func
modelDigest
(
modelPath
string
)
(
string
,
error
)
{
modelFile
,
err
:=
os
.
Open
(
modelPath
)
if
err
!=
nil
{
return
""
,
fmt
.
Errorf
(
"could not open model blob: %w"
,
err
)
}
defer
modelFile
.
Close
()
digest
,
_
:=
GetSHA256Digest
(
modelFile
)
return
digest
,
nil
}
// existingFileEmbeddings checks if we already have embeddings for a file and loads them into a look-up map
// existingFileEmbeddings checks if we already have embeddings for a file and loads them into a look-up map
func
existingFileEmbeddings
(
digest
string
)
(
map
[
string
][]
float64
,
error
)
{
func
existingFileEmbeddings
(
digest
string
)
(
map
[
string
][]
float64
,
error
)
{
path
,
err
:=
GetBlobsPath
(
digest
)
path
,
err
:=
GetBlobsPath
(
digest
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment