描述你的问题
我正在查看 api/db/services/dialog_service
中的 chat()
函数的代码。我注意到 max_tokens
被用来限制输入大小到 LLM,检查是在 message_fit_in
中完成的。但是下面的代码紧接着 message_fit_in
:
if "max_tokens" in gen_conf:
gen_conf["max_tokens"] = min(
gen_conf["max_tokens"],
max_tokens - used_token_count)
然后这个 gen_conf["max_tokens"]
后面又被用在了 rag/llm/chat_model.py
中,在 chat()
函数的 OllamaChat
类里:
if "max_tokens" in gen_conf: options["num_predict"] = gen_conf["max_tokens"]
这意味着现在 max_tokens 是用来限制输出大小的。如果真是这样,为什么还要从 max_tokens
中提取输入消息(由 used_token_count
表示)的长度呢?
感谢你的帮助!
1条答案
按热度按时间flseospp1#
在Ollama中,max_tokens的定义确实与其他地方不同。顺便说一下,你可以开始这个项目来跟进。谢谢!