Biblioteca de queries
Biblioteca de queriesReescribir múltiples frases usando Claude (Anthropic)

Reescribir múltiples frases usando Claude (Anthropic)

Esta consulta obtiene el contenido de múltiples posts, y reescribe esas cadenas para mejorarlas utilizando Claude de Anthropic.

Para conectarte a la API de Anthropic, debes proporcionar la variable $apiKey con la clave API.

Puedes sobrescribir las entradas a Claude mediante variables:

  • $model con cualquier modelo Claude soportado ("claude-3-5-haiku-latest" por defecto)
  • $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" }
  )
}