Haskell AI detector quickstart
Send at least 150 characters for a more reliable signal. The response score ranges from 0 (more likely human-written) to 1 (more likely AI-generated); use it as evidence, not proof.
No language-specific SDK is required. The example uses a standard or commonly used HTTP client to call Sapling's JSON API.
Haskell
/api/v1/aidetect
This example uses http-conduit and aeson.
{-# LANGUAGE OverloadedStrings #-}
import Data.Aeson (Value, object, (.=))
import qualified Data.ByteString.Char8 as B8
import Network.HTTP.Simple
import System.Environment (getEnv)
main :: IO ()
main = do
apiKey <- getEnv "SAPLING_API_KEY"
initialRequest <- parseRequest "https://api.sapling.ai/api/v1/aidetect"
let payload = object
[ "text" .= (
"I am an artificial intelligence system designed to help people solve complex problems. " ++
"My capabilities include natural language processing, machine learning, and predictive analytics."
)
, "sent_scores" .= True
]
request =
setRequestMethod "POST" $
setRequestHeader "Authorization" [B8.pack ("Bearer " ++ apiKey)] $
setRequestBodyJSON payload initialRequest
response <- httpJSON request :: IO (Response Value)
print (getResponseBody response)
Example response
application/json
{
"score": 0.9989,
"sentence_scores": [
{
"score": 0.9764,
"sentence": "I am an artificial intelligence system designed to help people solve complex problems."
},
{
"score": 0.9812,
"sentence": "My capabilities include natural language processing, machine learning, and predictive analytics."
}
],
"text": "I am an artificial intelligence system designed to help people solve complex problems. My capabilities include natural language processing, machine learning, and predictive analytics."
}
The overall score and sentence scores use different methods and may not match exactly. Choose thresholds based on the false-positive and false-negative costs of your use case.
About Haskell
Haskell is a popular programming language in industry and academia. It is purely functional, declarative, and statically typed.