Safe Haskell | None |
---|---|
Language | GHC2021 |
GenAI.Client.Client
Description
Synopsis
- dispatchLbs :: forall {k} {k2} (req :: k) accept contentType (res :: k2). (Produces req accept, MimeType contentType) => Manager -> GenAIClientConfig -> ClientRequest req contentType res accept -> IO (Response ByteString)
- data MimeResult res = MimeResult {}
- data MimeError = MimeError {}
- dispatchMime :: forall {k} (req :: k) contentType res accept. (Produces req accept, MimeUnrender accept res, MimeType contentType) => Manager -> GenAIClientConfig -> ClientRequest req contentType res accept -> IO (MimeResult res)
- dispatchMime' :: forall {k} (req :: k) accept res contentType. (Produces req accept, MimeUnrender accept res, MimeType contentType) => Manager -> GenAIClientConfig -> ClientRequest req contentType res accept -> IO (Either MimeError res)
- dispatchLbsUnsafe :: forall {k} {k2} accept contentType (req :: k) (res :: k2). (MimeType accept, MimeType contentType) => Manager -> GenAIClientConfig -> ClientRequest req contentType res accept -> IO (Response ByteString)
- dispatchInitUnsafe :: forall {k1} {k2} {k3} {k4} (req :: k1) (contentType :: k2) (res :: k3) (accept :: k4). Manager -> GenAIClientConfig -> InitRequest req contentType res accept -> IO (Response ByteString)
- newtype InitRequest (req :: k) (contentType :: k1) (res :: k2) (accept :: k3) = InitRequest {}
- _toInitRequest :: forall {k1} {k2} accept contentType (req :: k1) (res :: k2). (MimeType accept, MimeType contentType) => GenAIClientConfig -> ClientRequest req contentType res accept -> IO (InitRequest req contentType res accept)
- modifyInitRequest :: forall {k1} {k2} {k3} {k4} (req :: k1) (contentType :: k2) (res :: k3) (accept :: k4). InitRequest req contentType res accept -> (Request -> Request) -> InitRequest req contentType res accept
- modifyInitRequestM :: forall {k1} {k2} {k3} {k4} m (req :: k1) (contentType :: k2) (res :: k3) (accept :: k4). Monad m => InitRequest req contentType res accept -> (Request -> m Request) -> m (InitRequest req contentType res accept)
- runConfigLog :: MonadIO m => GenAIClientConfig -> LogExec m a
- runConfigLogWithExceptions :: (MonadCatch m, MonadIO m) => Text -> GenAIClientConfig -> LogExec m a
Dispatch
Lbs
Arguments
:: forall {k} {k2} (req :: k) accept contentType (res :: k2). (Produces req accept, MimeType contentType) | |
=> Manager | http-client Connection manager |
-> GenAIClientConfig | config |
-> ClientRequest req contentType res accept | request |
-> IO (Response ByteString) | response |
send a request returning the raw http response
Mime
data MimeResult res Source #
pair of decoded http body and http response
Constructors
MimeResult | |
Fields
|
Instances
pair of unrender/parser error and http response
Constructors
MimeError | |
Fields
|
Arguments
:: forall {k} (req :: k) contentType res accept. (Produces req accept, MimeUnrender accept res, MimeType contentType) | |
=> Manager | http-client Connection manager |
-> GenAIClientConfig | config |
-> ClientRequest req contentType res accept | request |
-> IO (MimeResult res) | response |
send a request returning the MimeResult
Arguments
:: forall {k} (req :: k) accept res contentType. (Produces req accept, MimeUnrender accept res, MimeType contentType) | |
=> Manager | http-client Connection manager |
-> GenAIClientConfig | config |
-> ClientRequest req contentType res accept | request |
-> IO (Either MimeError res) | response |
like dispatchMime
, but only returns the decoded http body
Unsafe
Arguments
:: forall {k} {k2} accept contentType (req :: k) (res :: k2). (MimeType accept, MimeType contentType) | |
=> Manager | http-client Connection manager |
-> GenAIClientConfig | config |
-> ClientRequest req contentType res accept | request |
-> IO (Response ByteString) | response |
like dispatchReqLbs
, but does not validate the operation is a Producer
of the "accept" MimeType
. (Useful if the server's response is undocumented)
Arguments
:: forall {k1} {k2} {k3} {k4} (req :: k1) (contentType :: k2) (res :: k3) (accept :: k4). Manager | http-client Connection manager |
-> GenAIClientConfig | config |
-> InitRequest req contentType res accept | init request |
-> IO (Response ByteString) | response |
dispatch an InitRequest
InitRequest
newtype InitRequest (req :: k) (contentType :: k1) (res :: k2) (accept :: k3) Source #
wraps an http-client Request
with request/response type parameters
Constructors
InitRequest | |
Fields |
Instances
Show (InitRequest req contentType res accept) Source # | |
Defined in GenAI.Client.Client Methods showsPrec :: Int -> InitRequest req contentType res accept -> ShowS # show :: InitRequest req contentType res accept -> String # showList :: [InitRequest req contentType res accept] -> ShowS # |
Arguments
:: forall {k1} {k2} accept contentType (req :: k1) (res :: k2). (MimeType accept, MimeType contentType) | |
=> GenAIClientConfig | config |
-> ClientRequest req contentType res accept | request |
-> IO (InitRequest req contentType res accept) | initialized request |
Build an http-client Request
record from the supplied config and request
modifyInitRequest :: forall {k1} {k2} {k3} {k4} (req :: k1) (contentType :: k2) (res :: k3) (accept :: k4). InitRequest req contentType res accept -> (Request -> Request) -> InitRequest req contentType res accept Source #
modify the underlying Request
modifyInitRequestM :: forall {k1} {k2} {k3} {k4} m (req :: k1) (contentType :: k2) (res :: k3) (accept :: k4). Monad m => InitRequest req contentType res accept -> (Request -> m Request) -> m (InitRequest req contentType res accept) Source #
modify the underlying Request (monadic)
Logging
runConfigLog :: MonadIO m => GenAIClientConfig -> LogExec m a Source #
Run a block using the configured logger instance
runConfigLogWithExceptions :: (MonadCatch m, MonadIO m) => Text -> GenAIClientConfig -> LogExec m a Source #
Run a block using the configured logger instance (logs exceptions)