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
c1844bbe
"vscode:/vscode.git/clone" did not exist on "a75f7b9d42e2fe5c747b89b4b35b8a4c3a381b59"
Unverified
Commit
c1844bbe
authored
Nov 13, 2023
by
Jeffrey Morgan
Committed by
GitHub
Nov 13, 2023
Browse files
add json mode to cli (#1095)
parent
cb745965
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
6 deletions
+25
-6
cmd/cmd.go
cmd/cmd.go
+25
-6
No files found.
cmd/cmd.go
View file @
c1844bbe
...
...
@@ -365,7 +365,12 @@ func RunGenerate(cmd *cobra.Command, args []string) error {
wordWrap
=
false
}
return
generate
(
cmd
,
args
[
0
],
strings
.
Join
(
args
[
1
:
],
" "
),
wordWrap
)
format
,
err
:=
cmd
.
Flags
()
.
GetString
(
"format"
)
if
err
!=
nil
{
return
err
}
return
generate
(
cmd
,
args
[
0
],
strings
.
Join
(
args
[
1
:
],
" "
),
wordWrap
,
format
)
}
if
readline
.
IsTerminal
(
int
(
os
.
Stdin
.
Fd
()))
{
...
...
@@ -377,7 +382,7 @@ func RunGenerate(cmd *cobra.Command, args []string) error {
type
generateContextKey
string
func
generate
(
cmd
*
cobra
.
Command
,
model
,
prompt
string
,
wordWrap
bool
)
error
{
func
generate
(
cmd
*
cobra
.
Command
,
model
,
prompt
string
,
wordWrap
bool
,
format
string
)
error
{
client
,
err
:=
api
.
ClientFromEnvironment
()
if
err
!=
nil
{
return
err
...
...
@@ -414,7 +419,7 @@ func generate(cmd *cobra.Command, model, prompt string, wordWrap bool) error {
var
currentLineLength
int
var
wordBuffer
string
request
:=
api
.
GenerateRequest
{
Model
:
model
,
Prompt
:
prompt
,
Context
:
generateContext
}
request
:=
api
.
GenerateRequest
{
Model
:
model
,
Prompt
:
prompt
,
Context
:
generateContext
,
Format
:
format
}
fn
:=
func
(
response
api
.
GenerateResponse
)
error
{
if
!
spinner
.
IsFinished
()
{
spinner
.
Finish
()
...
...
@@ -487,7 +492,7 @@ func generate(cmd *cobra.Command, model, prompt string, wordWrap bool) error {
func
generateInteractive
(
cmd
*
cobra
.
Command
,
model
string
)
error
{
// load the model
if
err
:=
generate
(
cmd
,
model
,
""
,
false
);
err
!=
nil
{
if
err
:=
generate
(
cmd
,
model
,
""
,
false
,
""
);
err
!=
nil
{
return
err
}
...
...
@@ -508,6 +513,8 @@ func generateInteractive(cmd *cobra.Command, model string) error {
fmt
.
Fprintln
(
os
.
Stderr
,
" /set nohistory Disable history"
)
fmt
.
Fprintln
(
os
.
Stderr
,
" /set wordwrap Enable wordwrap"
)
fmt
.
Fprintln
(
os
.
Stderr
,
" /set nowordwrap Disable wordwrap"
)
fmt
.
Fprintln
(
os
.
Stderr
,
" /set format json Enable JSON mode"
)
fmt
.
Fprintln
(
os
.
Stderr
,
" /set noformat Disable formatting"
)
fmt
.
Fprintln
(
os
.
Stderr
,
" /set verbose Show LLM stats"
)
fmt
.
Fprintln
(
os
.
Stderr
,
" /set quiet Disable LLM stats"
)
fmt
.
Fprintln
(
os
.
Stderr
,
""
)
...
...
@@ -535,6 +542,7 @@ func generateInteractive(cmd *cobra.Command, model string) error {
return
err
}
var
format
string
var
wordWrap
bool
termType
:=
os
.
Getenv
(
"TERM"
)
if
termType
==
"xterm-256color"
{
...
...
@@ -613,6 +621,16 @@ func generateInteractive(cmd *cobra.Command, model string) error {
case
"quiet"
:
cmd
.
Flags
()
.
Set
(
"verbose"
,
"false"
)
fmt
.
Println
(
"Set 'quiet' mode."
)
case
"format"
:
if
len
(
args
)
<
3
||
args
[
2
]
!=
"json"
{
fmt
.
Println
(
"Invalid or missing format. For 'json' mode use '/set format json'"
)
}
else
{
format
=
args
[
2
]
fmt
.
Printf
(
"Set format to '%s' mode.
\n
"
,
args
[
2
])
}
case
"noformat"
:
format
=
""
fmt
.
Println
(
"Disabled format."
)
default
:
fmt
.
Printf
(
"Unknown command '/set %s'. Type /? for help
\n
"
,
args
[
1
])
}
...
...
@@ -686,7 +704,7 @@ func generateInteractive(cmd *cobra.Command, model string) error {
}
if
len
(
line
)
>
0
&&
line
[
0
]
!=
'/'
{
if
err
:=
generate
(
cmd
,
model
,
line
,
wordWrap
);
err
!=
nil
{
if
err
:=
generate
(
cmd
,
model
,
line
,
wordWrap
,
format
);
err
!=
nil
{
return
err
}
}
...
...
@@ -698,7 +716,7 @@ func generateBatch(cmd *cobra.Command, model string) error {
for
scanner
.
Scan
()
{
prompt
:=
scanner
.
Text
()
fmt
.
Printf
(
">>> %s
\n
"
,
prompt
)
if
err
:=
generate
(
cmd
,
model
,
prompt
,
false
);
err
!=
nil
{
if
err
:=
generate
(
cmd
,
model
,
prompt
,
false
,
""
);
err
!=
nil
{
return
err
}
}
...
...
@@ -883,6 +901,7 @@ func NewCLI() *cobra.Command {
runCmd
.
Flags
()
.
Bool
(
"verbose"
,
false
,
"Show timings for response"
)
runCmd
.
Flags
()
.
Bool
(
"insecure"
,
false
,
"Use an insecure registry"
)
runCmd
.
Flags
()
.
Bool
(
"nowordwrap"
,
false
,
"Don't wrap words to the next line automatically"
)
runCmd
.
Flags
()
.
String
(
"format"
,
""
,
"Response format (e.g. json)"
)
serveCmd
:=
&
cobra
.
Command
{
Use
:
"serve"
,
...
...
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