检查其他资源
- 我为这个问题添加了一个非常描述性的标题。
- 我在LangChain文档中使用集成搜索进行搜索。
- 我使用GitHub搜索查找类似的问题,但没有找到。
- 我确信这是LangChain中的一个bug,而不是我的代码。
- 通过更新到LangChain的最新稳定版本(或特定集成包)无法解决此bug。
示例代码
在https://chat.langchain.com/上有一个问题。
问题描述
在使用Chat LangChain( https://chat.langchain.com/ )中的IME输入日语提示时,按下Enter键以确认日语字符转换会导致提示过早发送。这个问题可能也影响到使用IME的其他语言。(与#24231的问题类型相同,但解决方案略有不同)
重现问题的步骤:
使用IME输入一个日语提示。
按Enter键确认字符转换。
预期行为:
输入应该正确地转换为日语。
提示不应被发送。
实际行为:
提示在仍在编写时过早发送。
建议的解决方案:
在我本地环境中,在Chrome控制台中运行以下代码可以解决这个问题。我建议将类似的解决方案纳入Chat LangChain中:
(function() {
'use strict';
var parent_element = document.querySelector("body");
var isComposing = false;
// Start of Japanese input
parent_element.addEventListener('compositionstart', function(){
if (event.target.tagName === 'TEXTAREA') {
isComposing = true;
}
});
// End of Japanese input
parent_element.addEventListener('compositionend', function(){
if (event.target.tagName === 'TEXTAREA') {
isComposing = false;
}
});
// Modified handleIMEEnter function
function handleIMEEnter(event) {
if (event.target.tagName === 'TEXTAREA') {
if (event.code == "Enter" && isComposing) {
event.stopPropagation();
}
}
}
// Register handleIMEEnter function as a keydown event listener
parent_element.addEventListener('keydown', handleIMEEnter);
})();
其他注意事项
与IME Input Handling Issue in LangChain Chat Playground的区别在于,在Chat LangChain中,每个提示提交都会动态添加一个新的TextArea。因此,有必要确保从新添加的TextArea触发事件。具体来说,这是通过捕获并处理冒泡到body元素的事件来实现的。
系统信息
操作系统:Darwin
操作系统版本:Darwin Kernel Version 21.6.0: Thu Jun 8 23:57:12 PDT 2023; root:xnu-8020.240.18.701.6~1/RELEASE_X86_64
浏览器:Google Chrome Version 126.0.6478.127 (Official Build) (x86_64)
2条答案
按热度按时间u4vypkhs1#
这是Langchain Python的Repo。你应该在Langchain JS repo中提出这个问题。
7kjnsjlb2#
好的,我刚刚在这里发布了:langchain-ai/chat-langchainjs#31