llama_index [功能请求]:允许将safety_settings通过additional_kwargs传递给Vertex Gemini,

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

功能描述

目标是通过 additional_kwargs 输入参数将 safety_settings 传递给 Gemini Vertex LLM 对象,如下所示:

from llama_index.llms.vertex import Vertex
from vertexai.generative_models._generative_models import (
    HarmCategory,
    HarmBlockThreshold,
)

safety_settings = {
	HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
	HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_LOW_AND_ABOVE,
}
llm = Vertex(
    model="gemini-pro",
    project=credentials.project_id,
    credentials=credentials,
    temperature=temperature,
    max_tokens=max_tokens,
    additional_kwargs={"safety_settings": safety_settings},
)

目前这是不可能的,会抛出错误,因为 additional_kwargs 都被添加到了 Gemini 的 GenerationConfig (即你会得到错误 ValueError: Unknown field for GenerationConfig: safety_settings )。

原因

我也尝试在查询时稍后添加 safety_settings,因为 Gemini Vertex 也只在生成时接受 safety_settings 参数。然而,当我使用聊天引擎(如 SimpleChatEngine & CondenseQuestionChatEngine)时,这也是不可能的,因为它们不支持将 **kwargs 作为 .chat() / .stream_chat() 函数的输入。
与修改所有聊天引擎以接受 **kwargs (因为我认为可能也有原因为什么不接受它们)不同,我认为在 LLM 对象示例创建时修复 safety_settings(如我上面给出的示例代码)会更方便。

功能价值

如果没有这个功能,似乎目前没有其他方法可以控制 Gemini Vertex LLM 的 safety_settings

tkqqtvp1

tkqqtvp11#

  • 🤖*

很高兴看到您对通过 additional_kwargs 参数允许传递 safety_settings 以增强 Gemini Vertex LLM 对象感兴趣。您的详细描述和示例代码清楚地表明了这个功能的价值。我们鼓励您考虑创建一个拉取请求,将此功能贡献给仓库。您的贡献将受到社区的赞赏。感谢您对改善 Gemini Vertex LLM 的兴趣!

关于 Dosu

此响应旨在提供帮助并节省您的时间。它不是精确解决方案,而是您自己研究的一个起点。
帮助我变得更有用!如果您觉得有帮助请留下一个 👍,如果不相关请留下一个 👎。
如果您想继续对话,请以 @dosu-bot 开头回复。

tvz2xvvm

tvz2xvvm2#

你好, Logan - 我也遇到了一些不想要的安全错误(无关紧要的),并希望拥有这个功能。如果我提出一个 PR 是否可以,或者我应该等待 Llama-index 的某人来处理这个问题?此外,这里的标签 p2 是什么意思(优先级 2)

66bbxpm5

66bbxpm53#

你好,dosu-bot。你能看到那条消息吗?

相关问题