vercel / ai

Build AI-powered applications with React, Svelte, Vue, and Solid
https://sdk.vercel.ai/docs
Other
9.5k stars 1.39k forks source link

langchain stop() will cause error handleLLMNewToken: undefined #285

Closed fjun99 closed 4 months ago

fjun99 commented 1 year ago

use langchain stream.

when call stop(), an error occurs:

Error in handler Handler, handleLLMNewToken: undefined Error in handler Handler, handleLLMNewToken: undefined Error in handler Handler, handleLLMNewToken: undefined Error in handler Handler, handleLLMNewToken: undefined Error in handler Handler, handleLLMNewToken: undefined Error in handler Handler, handleLLMNewToken: undefined Error in handler Handler, handleLLMEnd: undefined

this is defined in https://github.com/vercel-labs/ai/blob/main/packages/core/streams/langchain-stream.ts

return {
    stream: stream.readable.pipeThrough(createCallbacksTransformer(callbacks)),
    handlers: {
      handleLLMNewToken: async (token: string) => {
        await writer.ready
        await writer.write(token)
      },

how to fix it?

thanks.

jaredpalmer commented 1 year ago

where is .stop() defined?

fjun99 commented 1 year ago

where is .stop() defined?

https://sdk.vercel.ai/docs/api-reference/use-chat

defined in the react page:

  /**
   * useChat
   */
  const { messages,setMessages, 
          input, handleInputChange, append,
          isLoading, stop,
        } = useChat({...})

and in the react route.ts

  const { stream, handlers } = LangChainStream()
...

  llm.call(
    langmessages,
    {},
    [handlers],
  ).catch(console.error)

thanks

fjun99 commented 1 year ago

should we deal with AbortError at LangChainStream

this https://github.com/vercel-labs/ai/blob/main/packages/core/streams/langchain-stream.ts

fjun99 commented 1 year ago

or we should send signal to langchain?

signal? signal: AbortSignal

Abort signal for this call. If provided, the call will be aborted when the signal is aborted.

https://js.langchain.com/docs/api/chat_models_openai/interfaces/ChatOpenAICallOptions#signal

VGraupera commented 5 months ago

I noticed the same problem

lgrammel commented 4 months ago

Outdated with the new langchain integration https://sdk.vercel.ai/providers/adapters/langchain