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
OpenDAS
ollama
Commits
79131045
"...en/git@developer.sourcefind.cn:renzhc/diffusers_dcu.git" did not exist on "5551506b295708b55636862aa5bad0fd64fa3f50"
Unverified
Commit
79131045
authored
Feb 01, 2024
by
Jeffrey Morgan
Committed by
GitHub
Feb 01, 2024
Browse files
Improvements to `ollama run` for multimodal models (#2300)
parent
bfbf2f7c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
21 deletions
+11
-21
cmd/interactive.go
cmd/interactive.go
+11
-21
No files found.
cmd/interactive.go
View file @
79131045
...
@@ -6,6 +6,7 @@ import (
...
@@ -6,6 +6,7 @@ import (
"io"
"io"
"net/http"
"net/http"
"os"
"os"
"path/filepath"
"regexp"
"regexp"
"sort"
"sort"
"strings"
"strings"
...
@@ -98,6 +99,11 @@ func generateInteractive(cmd *cobra.Command, opts runOptions) error {
...
@@ -98,6 +99,11 @@ func generateInteractive(cmd *cobra.Command, opts runOptions) error {
fmt
.
Fprintln
(
os
.
Stderr
,
" /? shortcuts Help for keyboard shortcuts"
)
fmt
.
Fprintln
(
os
.
Stderr
,
" /? shortcuts Help for keyboard shortcuts"
)
fmt
.
Fprintln
(
os
.
Stderr
,
""
)
fmt
.
Fprintln
(
os
.
Stderr
,
""
)
fmt
.
Fprintln
(
os
.
Stderr
,
"Use
\"\"\"
to begin a multi-line message."
)
fmt
.
Fprintln
(
os
.
Stderr
,
"Use
\"\"\"
to begin a multi-line message."
)
if
opts
.
MultiModal
{
fmt
.
Fprintf
(
os
.
Stderr
,
"Use %s to include .jpg or .png images.
\n
"
,
filepath
.
FromSlash
(
"/path/to/file"
))
}
fmt
.
Fprintln
(
os
.
Stderr
,
""
)
fmt
.
Fprintln
(
os
.
Stderr
,
""
)
}
}
...
@@ -207,6 +213,7 @@ func generateInteractive(cmd *cobra.Command, opts runOptions) error {
...
@@ -207,6 +213,7 @@ func generateInteractive(cmd *cobra.Command, opts runOptions) error {
switch
multiline
{
switch
multiline
{
case
MultilineSystem
:
case
MultilineSystem
:
opts
.
System
=
sb
.
String
()
opts
.
System
=
sb
.
String
()
opts
.
Messages
=
append
(
opts
.
Messages
,
api
.
Message
{
Role
:
"system"
,
Content
:
opts
.
System
})
fmt
.
Println
(
"Set system message."
)
fmt
.
Println
(
"Set system message."
)
sb
.
Reset
()
sb
.
Reset
()
case
MultilineTemplate
:
case
MultilineTemplate
:
...
@@ -226,7 +233,6 @@ func generateInteractive(cmd *cobra.Command, opts runOptions) error {
...
@@ -226,7 +233,6 @@ func generateInteractive(cmd *cobra.Command, opts runOptions) error {
fmt
.
Fprintln
(
&
sb
)
fmt
.
Fprintln
(
&
sb
)
multiline
=
MultilinePrompt
multiline
=
MultilinePrompt
scanner
.
Prompt
.
UseAlt
=
true
scanner
.
Prompt
.
UseAlt
=
true
break
}
}
case
scanner
.
Pasting
:
case
scanner
.
Pasting
:
fmt
.
Fprintln
(
&
sb
,
line
)
fmt
.
Fprintln
(
&
sb
,
line
)
...
@@ -349,10 +355,13 @@ func generateInteractive(cmd *cobra.Command, opts runOptions) error {
...
@@ -349,10 +355,13 @@ func generateInteractive(cmd *cobra.Command, opts runOptions) error {
if
args
[
1
]
==
"system"
{
if
args
[
1
]
==
"system"
{
opts
.
System
=
sb
.
String
()
opts
.
System
=
sb
.
String
()
opts
.
Messages
=
append
(
opts
.
Messages
,
api
.
Message
{
Role
:
"system"
,
Content
:
opts
.
System
})
fmt
.
Println
(
"Set system message."
)
fmt
.
Println
(
"Set system message."
)
sb
.
Reset
()
}
else
if
args
[
1
]
==
"template"
{
}
else
if
args
[
1
]
==
"template"
{
opts
.
Template
=
sb
.
String
()
opts
.
Template
=
sb
.
String
()
fmt
.
Println
(
"Set prompt template."
)
fmt
.
Println
(
"Set prompt template."
)
sb
.
Reset
()
}
}
sb
.
Reset
()
sb
.
Reset
()
...
@@ -488,28 +497,9 @@ func generateInteractive(cmd *cobra.Command, opts runOptions) error {
...
@@ -488,28 +497,9 @@ func generateInteractive(cmd *cobra.Command, opts runOptions) error {
return
err
return
err
}
}
newMessage
.
Content
=
msg
newMessage
.
Content
=
msg
newMessage
.
Images
=
images
// reset the context if we find another image
if
len
(
images
)
>
0
{
newMessage
.
Images
=
append
(
newMessage
.
Images
,
images
...
)
// reset the context for the new image
opts
.
Messages
=
[]
api
.
Message
{}
}
else
{
if
len
(
opts
.
Messages
)
>
1
{
newMessage
.
Images
=
append
(
newMessage
.
Images
,
opts
.
Messages
[
len
(
opts
.
Messages
)
-
2
]
.
Images
...
)
}
}
if
len
(
newMessage
.
Images
)
==
0
{
fmt
.
Println
(
"This model requires you to add a jpeg, png, or svg image."
)
fmt
.
Println
()
sb
.
Reset
()
continue
}
}
}
if
opts
.
System
!=
""
{
opts
.
Messages
=
append
(
opts
.
Messages
,
api
.
Message
{
Role
:
"system"
,
Content
:
opts
.
System
})
}
opts
.
Messages
=
append
(
opts
.
Messages
,
newMessage
)
opts
.
Messages
=
append
(
opts
.
Messages
,
newMessage
)
assistant
,
err
:=
chat
(
cmd
,
opts
)
assistant
,
err
:=
chat
(
cmd
,
opts
)
...
...
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