GASでClaude3のAPI(ANTHROPIC API)をStreaming表示させる方法

 function Claude() {

  const url = 'https://api.anthropic.com/v1/messages';
  const payload = {
    model: "claude-3-haiku-20240307",
    max_tokens: 4096,
    messages: [{"role": "user", "content": "ラーメンについて語って"}],
    stream: true
  };
  
  const options = {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': CLAUDE_API_KEY,
      'anthropic-version': '2023-06-01',
    },
    payload: JSON.stringify(payload),
  };

    const response = UrlFetchApp.fetch(url, options);
    const reader = response.getContentText()

    var text = "";
    var getNextLine = response.getContentText().split("\n").filter(function(line) {
      if (line.startsWith("data: ")) {
        try {
          var data = JSON.parse(line.substring(6));
          if (data.type === "content_block_delta") {
            console.log(data.delta.text);
            text += data.delta.text;
          }
        } catch (e) {}
      }
    });

    console.log(text);
}

この記事が気に入ったらサポートをしてみませんか?