langchain 在提示中添加了"Human: ",

uelo1irk  于 2个月前  发布在  其他
关注(0)|答案(2)|浏览(33)

检查其他资源

  • 为这个问题添加了一个非常描述性的标题。
  • 使用集成搜索在LangChain文档中进行了搜索。
  • 使用GitHub搜索查找类似的问题,但没有找到。
  • 我确信这是LangChain中的一个bug,而不是我的代码。
  • 通过更新到LangChain的最新稳定版本(或特定集成包)无法解决此bug。

示例代码

from langchain_openai import ChatOpenAI
from langchain_core.prompts import PromptTemplate
from langchain.globals import set_debug
set_debug(True)
prompt = PromptTemplate(template="user:{text}", input_variables=["text"])
model = ChatOpenAI(model="gpt-4o-mini")
chain = prompt | model
chain.invoke({"text": "hello"})

错误信息和堆栈跟踪(如果适用)

[llm/start] [chain:RunnableSequence > llm:ChatOpenAI] 进入LLM运行,输入:

{
 "prompts": [
 "Human: user:hello"
 ]
}

描述

问题1:即使使用自定义提示,也会在所有提示中添加“Human: ”,这弄乱了我的输出。
问题2(可能,未经验证):这让我想到在提示中添加了“
AI:”,这与我的llm的React相符。例如,如果我以“
Summary:
”结尾,有时AI会重复“summary”,除非明确告诉它不要这样做。

系统信息

langchain==0.2.10
langchain-aws==0.1.6
langchain-community==0.2.5
langchain-core==0.2.22
langchain-experimental==0.0.61
langchain-google-genai==1.0.8
langchain-openai==0.1.8
langchain-text-splitters==0.2.1
langchain-upstage==0.1.6
langchain-weaviate==0.0.2

rseugnpd

rseugnpd1#

如果你正在使用聊天模型,请使用 ChatPromptTemplate

prompt = ChatPromptTemplate.from_messages(
  [
    ('system', 'Your name is bob the assistant.'),
    ('user', '{input}')
  ]
)
model = ChatOpenAI(model="gpt-4o-mini")
chain = prompt | model
chain.invoke({"input": "hi!"})
z9gpfhce

z9gpfhce2#

问题是,我希望我的信息中没有任何前缀,但是langchain似乎在每个选项上都附加了一个前缀。有什么办法可以去掉这个前缀吗?

相关问题