title: $:/plugins/tiddlywiki/ai-tools/globals tags: $:/tags/Global \function default-llm-completion-server() [all[shadows+tiddlers]tag[$:/tags/AI/CompletionServer]sort[caption]first[]] \end \procedure get-llm-completion(conversationTitle,resultTitlePrefix,resultTags,statusTitle,completionServer) \procedure get-llm-completion-callback() <%if [compare:number:gteq[200]compare:number:lteq[299]] %> <$action-createtiddler $basetitle=<> tags=<> type="text/markdown" role={{{ [jsonget[choices],[0],[message],[role]] }}} text={{{ [jsonget[choices],[0],[message],[content]] }}} /> <%else%> <$action-createtiddler $basetitle=<> tags=<> type="text/markdown" role="error" text={{{ [[Error:]] [] [jsonget[error],[message]] +[join[]] }}} /> <%endif%> \end get-llm-completion-callback <$let completionServer={{{ [!is[blank]else] }}} > <$wikify name="json" text={{{ [get[text]] }}}> <$action-log message="get-llm-completion"/> <$action-log/> <$action-sendmessage $message="tm-http-request" url={{{ [get[url]addsuffix[/v1/chat/completions]] }}} body=<> header-content-type="application/json" bearer-auth-token-from-store="openai-secret-key" method="POST" oncompletion=<> bind-status=<> var-resultTitlePrefix=<> var-resultTags=<> /> \end get-llm-completion