``` ollama tool input: 带有换行符( )的字符串被截断 ```

1sbrub3j  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(121)

从问题描述来看,当你使用 Groq API 而不是 Ollama 时,字符串没有被截断,你得到了完整的字符串。这可能是由于 Ollama 在处理字符串时存在一些问题。为了解决这个问题,你可以尝试以下方法:

  1. 确保你的输入字符串是正确的。检查是否有任何特殊字符或编码问题。

  2. 更新 Ollama 到最新版本。可能在新版本中已经修复了这个问题。

  3. 如果问题仍然存在,你可以考虑在 Ollama 的 GitHub 仓库中提交一个 issue,详细描述你遇到的问题。这样,开发者可能会帮助你解决问题。

t1rydlwq

t1rydlwq1#

你能描述一下上述函数的输入和输出吗?因为它读给我听这是LLM的输出,也是create_draft的输入:

Entering new CrewAgentExecutor chain...
Action: Create Draft
Action Input: {"email": "[solaiman.arisaftech@gmail.com](mailto:solaiman.arisaftech@gmail.com)", "message": "Dear Solaiman Ovi,\n\nThank you for reaching out to schedule a meeting. I'd be happy to discuss the upcoming project with you. I'll send over some availability options and we can schedule something that works best for both of us.\n\nBest regards,\nMd. Rakibul Haque", "subject": "Re: Meeting to Discuss Upcoming Project

此时,LLM和Ollama不再在循环中。相反,你正在使用的框架(crewAI?)完全负责将LLM的输出传递给工具,而框架将是截断LLM输出的一方。

huus2vyu

huus2vyu2#

是的,llm的输出是create_draft工具的输入,该工具基本上接收这些输入并起草一封电子邮件。
动作:创建草稿
动作输入:{"email": " solaiman.arisaftech@gmail.com ", "message": "亲爱的Solaiman Ovi,

感谢您联系安排会议。我很乐意与您讨论即将进行的项目。我会发送一些可用性选项,我们可以为双方安排最佳时间。

此致敬礼,
Md. Rakibul Haque", "subject": "关于讨论即将进行的项目的新邮件"}
在这里,email、message和subject被传递给这个函数。

class CreateDraftTool():
  @tool("Create Draft")
  def create_draft(email,message,subject):
    """
 		Useful to create an email draft.
    """
    print('email: ',email.strip("\""))
    print('subject: ',subject.strip("\""))
    print('message: ',message.strip("\""))
    gmail = GmailToolkit()
    draft = GmailCreateDraft(api_resource=gmail.api_resource)
    result = draft.run({
				'to': [email.strip("\"")],
				'subject': subject.strip("\""),
				'message': message.strip("\"")
		})
    return f"\nDraft created: {result}\n"

是的,我正在使用creai,但是当我使用groq API而不是ollama并使用相同的模型llama3.1时,字符串没有被截断,我得到了完整的字符串。如果creai正在截断传递给工具的字符串,那么在使用具有相同模型llama3.1的groq API时也应该被截断,但只有在我使用llama3.1和ollama时才发生这种情况。
请问我在使用ollama时为什么会遇到这种情况?
提前谢谢

是的,llm的输出是create_draft工具的输入,该工具基本上接收这些输入并起草一封电子邮件。
动作:创建草稿
 动作输入:{"email": " [solaiman.arisaftech@gmail.com](mailto:solaiman.arisaftech@gmail.com) ", "message": "亲爱的Solaiman Ovi,

感谢您联系安排会议。我很乐意与您讨论即将进行的项目。我会发送一些可用性选项,我们可以为双方安排最佳时间。

此致敬礼,
Md. Rakibul Haque", "subject": "关于讨论即将进行的项目的新邮件"}
在这里,email、message和subject被传递给这个函数。

class CreateDraftTool():
@tool("Create Draft")
def create_draft(email,message,subject):
"""
Useful to create an email draft.
"""
print('email: ',email.strip("""))
print('subject: ',subject.strip("""))
print('message: ',message.strip("""))
gmail = GmailToolkit()
draft = GmailCreateDraft(api_resource=gmail.api_resource)
result = draft.run({
'to': [email.strip(""")],
'subject': subject.strip("""),
'message': message.strip(""")
})
return f"\nDraft created: {result}\n"


是的,我正在使用creai,但是当我使用groq API而不是ollama并使用相同的模型llama3.1时,字符串没有被截断,我得到了完整的字符串。如果creai正在截断传递给工具的字符串,那么在使用具有相同模型llama3.1的groq API时也应该被截断,但只有在我使用llama3.1和ollama时才发生这种情况。
请问我在使用ollama时为什么会遇到这种情况?
提前谢谢

相关问题