Module Gpt_function

this module contains code for defining and implementing gpt functions that can be made availible to gpt prompt

module type Def = sig ... end
type t = {
  1. info : Openai.Completions.tool;
  2. run : string -> string;
}
val create_function : (module Def with type input = 'a) -> ('a -> string) -> t
val functions : t list -> Openai.Completions.tool list * (Core.String.t, string -> string) Core.Hashtbl.t

takes a (t list) and returns a tuple with openai function defenitions and a hashtbl of the function implementations. Use this function to get the function definitions that need to be passed to the openai api, as well as get a hashtbl that maps function name to implementation so that you can locate the function implementation when the api returns a function call request