检查其他资源
- 我为这个问题添加了一个非常描述性的标题。
- 我在集成搜索中搜索了LangChain文档。
- 我使用GitHub搜索找到了一个类似的问题,但没有找到。
- 我确信这是LangChain中的一个bug,而不是我的代码。
- 通过更新到LangChain的最新稳定版本(或特定集成包)无法解决此bug。
示例代码
llm = ChatGoogleGenerativeAI(model="gemini-1.5-pro", streaming=True,max_tokens=2524)
default_chain = LLMChain(
prompt = DEFAULT_PROMPT,
llm=self.llm,
verbose=False
)
`default_chain.ainvoke({"input": rephrased_question['text']}, config={"callbacks":[callback]})`
async def on_llm_new_token(self, token: str, **kwargs: Any) -> None:
"""Rewrite on_llm_new_token to send token to client."""
await self.send(token)
错误信息和堆栈跟踪(如果适用)
- 无响应*
描述
我像上面那样启动了一个langchain链,回调是一个带有on_llm_new_token的类。要调用这个链,我使用了invoke。如果我使用Anyscale llm类或VLLMOpenAI,响应会被正确地流式传输,但是在使用谷歌时并非如此。我的代码中有bug吗?也许我应该向ChatGoogleGenerativeAI传递一些其他参数,或者谷歌不支持流式传输?
系统信息
langchain 0.1.0
langchain-community 0.0.11
langchain-core 0.1.9
langchain-google-genai 1.0.1
langchainhub 0.1.15
langsmith 0.0.92
2条答案
按热度按时间dgenwo3n1#
@dosu-bot answer this
ttisahbt2#
ChatGoogleGenerativeAI
支持同步流,但不支持异步流。这意味着您可以同步流式传输响应,但尝试使用像ainvoke
这样的异步方法进行流式传输将无法工作。要启用同步流,您应该使用
_stream
方法而不是ainvoke
。以下是如何设置同步流的示例:如果您需要异步处理令牌,您可能需要使用支持异步流的不同的 LLM 类,例如
Anyscale
或VLLMOpenAI
。有关
ChatGoogleGenerativeAI
的限制的更多详细信息,您可以参考表示不支持异步流的相关代码片段:此警告明确指出不支持异步流 1(https://github.com/langchain-ai/langchain/blob/master/libs/community/langchain_community/chat_models/vertexai.py)。