add create modelfile field

This commit is contained in:
Michael Yang 2023-11-14 13:45:07 -08:00
parent b0d14ed51c
commit 3ca56b5ada
2 changed files with 20 additions and 9 deletions

View file

@ -99,9 +99,10 @@ type EmbeddingResponse struct {
} }
type CreateRequest struct { type CreateRequest struct {
Name string `json:"name"` Name string `json:"name"`
Path string `json:"path"` Path string `json:"path"`
Stream *bool `json:"stream,omitempty"` Modelfile string `json:"modelfile"`
Stream *bool `json:"stream,omitempty"`
} }
type DeleteRequest struct { type DeleteRequest struct {

View file

@ -410,17 +410,27 @@ func CreateModelHandler(c *gin.Context) {
return return
} }
if req.Name == "" || req.Path == "" { if req.Name == "" {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": "name and path are required"}) c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": "name is required"})
return return
} }
modelfile, err := os.Open(req.Path) if req.Path == "" && req.Modelfile == "" {
if err != nil { c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": "path or modelfile are required"})
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return return
} }
defer modelfile.Close()
var modelfile io.Reader = strings.NewReader(req.Modelfile)
if req.Path != "" && req.Modelfile == "" {
bin, err := os.Open(req.Path)
if err != nil {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("error reading modelfile: %s", err)})
return
}
defer bin.Close()
modelfile = bin
}
commands, err := parser.Parse(modelfile) commands, err := parser.Parse(modelfile)
if err != nil { if err != nil {