Query-bibliotheek
Query-bibliotheekHerschrijf meerdere zinnen met Claude (Anthropic)

Herschrijf meerdere zinnen met Claude (Anthropic)

Deze query haalt de inhoud van meerdere posts op en herschrijft die teksten om ze te verbeteren met behulp van Claude van Anthropic.

Om verbinding te maken met de Anthropic API, moet je de variabele $apiKey opgeven met de API-sleutel.

Je kunt de invoer voor Claude overschrijven via variabelen:

  • $model met elk ondersteund Claude-model (standaard "claude-3-5-haiku-latest")
  • $prompt
  • $maxTokens
query GetPostContent($limit: Int! = 5, $offset: Int! = 0) {
  posts(pagination: {limit: $limit, offset: $offset}, sort: {by: ID, order: ASC}) {
    content
      @export(
        as: "contentItems",
        type: LIST
      )
  }
}
 
query RewriteContentWithClaude(
  $apiKey: String!
  $maxTokens: Int! = 1024
  $prompt: String! = "You are an English Content rewriter and a grammar checker. I have a JSON with text in English. Please rewrite them, by changing the simple A0-level words and sentences with more beautiful and elegant upper-level English words and sentences, while maintaining the original meaning. If the text contains HTML, do not modify the HTML tags."
  $model: String! = "claude-3-5-haiku-latest"
)
  @depends(on: "GetPostContent")
{
  contentItems: _echo(value: $contentItems)
  encodedContentItems: _arrayEncodeAsJSONString(array: $contentItems)
  prompt: _strAppend(
    after: $prompt,
    append: """
 
Output in JSON format with key: "rewritten".
 
Do not explain why you do what you do. Simply return the JSON.
"""
  )
  jsonPrompt: _strReplaceMultiple(
    search: ["{$encodedContentItems}"],
    replaceWith: [$__encodedContentItems],
    in: """
This is the JSON:
 
{$encodedContentItems}
"""
  )
  claudeResponse: _sendJSONObjectItemHTTPRequest(input: {
    url: "https://api.anthropic.com/v1/messages",
    method: POST,
    options: {
      headers: [
        {
          name: "x-api-key",
          value: $apiKey
        },
        {
          name: "anthropic-version",
          value: "2023-06-01"
        }
      ],
      json: {
        model: $model,
        max_tokens: $maxTokens,
        messages: [
          {
            role: "user",
            content: $__prompt
          },
          {
            role: "assistant",
            content: """{
  "rewritten": ["Salutations, magnificent global landscape!", "Greetings to the expansive realm of existence!"],
}"""
          },
          {
            role: "user",
            content: $__jsonPrompt
          },
          {
            role: "assistant",
            content:  "Here is the JSON requested:"
          },
        ],
      }
    }
  })
    @underJSONObjectProperty(by: { key: "content" })
      @underArrayItem(index: 0)
        @underJSONObjectProperty(by: { path: "text" })
          @export(as: "jsonEncodedRewrittenContent")
}
 
query ExtractRewrittenContent
  @depends(on: "RewriteContentWithClaude")
{
  jsonEncodedRewrittenContent: _echo(value: $jsonEncodedRewrittenContent)
    @remove
  decodedRewrittenContent: _strDecodeJSONObject(string: $jsonEncodedRewrittenContent)
    @remove
  rewrittenContent: _objectProperty(
    object: $__decodedRewrittenContent,
    by: { key: "rewritten" }
  )
}