@@ -774,7 +774,28 @@ func SysDownload(ctx context.Context, env []string, input string) (_ string, err
774
774
return params .Location , nil
775
775
}
776
776
777
- func SysPrompt (_ context.Context , _ []string , input string ) (_ string , err error ) {
777
+ func sysPromptHTTP (ctx context.Context , url , input string ) (_ string , err error ) {
778
+ req , err := http .NewRequestWithContext (ctx , http .MethodPost , url , strings .NewReader (input ))
779
+ if err != nil {
780
+ return "" , err
781
+ }
782
+ req .Header .Set ("Content-Type" , "application/json" )
783
+
784
+ resp , err := http .DefaultClient .Do (req )
785
+ if err != nil {
786
+ return "" , err
787
+ }
788
+ resp .Body .Close ()
789
+
790
+ if resp .StatusCode != 200 {
791
+ return "" , fmt .Errorf ("invalid status code [%d], expected 200" , resp .StatusCode )
792
+ }
793
+
794
+ data , err := io .ReadAll (resp .Body )
795
+ return string (data ), err
796
+ }
797
+
798
+ func SysPrompt (ctx context.Context , envs []string , input string ) (_ string , err error ) {
778
799
var params struct {
779
800
Message string `json:"message,omitempty"`
780
801
Fields string `json:"fields,omitempty"`
@@ -784,6 +805,12 @@ func SysPrompt(_ context.Context, _ []string, input string) (_ string, err error
784
805
return "" , err
785
806
}
786
807
808
+ for _ , env := range envs {
809
+ if url , ok := strings .CutPrefix (env , "GPTSCRIPT_PROMPT_URL=" ); ok {
810
+ return sysPromptHTTP (ctx , url , input )
811
+ }
812
+ }
813
+
787
814
if params .Message != "" {
788
815
_ , _ = fmt .Fprintln (os .Stderr , params .Message )
789
816
}
0 commit comments