| 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)