小编Leo*_*Zyl的帖子

如何使用 Next.js 13 使用 LangChain 的路由处理程序实现流 API 端点?

我正在尝试使用 Nextjs 13 的新路由处理程序解决方案创建一个 API 端点。该 API 使用 LangChain,并将响应流式传输回前端。当调用 OpenAI 包装器类时,我传入 Streaming 属性,并提供回调函数。然后,该回调函数将流作为块(即令牌)提供。我想将这些令牌流式传输到前端,以在生成人工智能时输出其响应。

我能够使用“旧”API 路由解决方案和以下代码来完成此工作:

import { OpenAI } from "langchain/llms/openai";

export default async function handler(req, res) {
  const chat = new OpenAI({
    modelName: "gpt-3.5-turbo",
    streaming: true,
    callbacks: [
      {
        handleLLMNewToken(token) {
          res.write(token);
        },
      },
    ],
  });

  await chat.call("Write me a song about sparkling water.");

  res.end();
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试将此代码转换为新的路由处理程序解决方案,但我无法使其正常工作。

我尝试了很多不同的方法,但没有成功。

例如:

import { NextResponse } from "next/server";

import { OpenAI } from "langchain/llms/openai";

export const dynamic = "force-dynamic";
export const revalidate …
Run Code Online (Sandbox Code Playgroud)

javascript next.js

6
推荐指数
1
解决办法
3049
查看次数

Next.js Route API - Getting Body Values

我正在尝试 Next v13.2 中的新 Route API,但似乎无法弄清楚如何获取 POST 请求中的正文值。

在客户端,我调用 API 的方式如下:

      const response = await fetch("/api/bot", {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
        },
        body: JSON.stringify({ prompt: "Testing" }),
      });
Run Code Online (Sandbox Code Playgroud)

然后我在应用程序目录中创建了一个名为route.js的文件

我为 POST 请求创建了函数,并尝试以多种方式从请求对象中获取值,但没有成功。

就像是:

export async function POST(request) {
  console.log("Request", request.body.prompt);
  return new Response({ response: prompt });
}
Run Code Online (Sandbox Code Playgroud)

我尝试从请求对象中获取正文值,但似乎没有任何效果。

javascript next.js

2
推荐指数
1
解决办法
2416
查看次数

标签 统计

javascript ×2

next.js ×2