llama_index [Bug]:在Llama Index(AzureOpenAIMultiModal)中支持"gpt-4"模型,

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

你好,
我目前正在使用Llama Index进行一个项目,该项目需要使用Azure OpenAI服务进行多模态生成。我已经在Azure上部署了名为"gpt-4-turbo-2024-04-09"的模型,该模型显示在Azure门户中,模型名称为"gpt-4",版本为"2024-04-09"。
当我尝试使用这个模型与Llama Index一起使用时,遇到了以下错误:
ValueError: 无效的模型 gpt-4。可用模型有:['gpt-4-vision-preview', 'gpt-4-turbo-2024-04-09', 'gpt-4-turbo', 'gpt-4o', 'gpt-4o-2024-05-13']
看起来Llama Index库没有将"gpt-4"识别为有效的模型名称,尽管这是在Azure门户中如何标识该模型的方式。为了解决这个问题,我恳请将"gpt-4"模型名称添加到Llama Index的默认模型中。
详情:
Azure 模型名称:gpt-4
Azure 版本:turbo-2024-04-09
实际部署的模型:gpt-4-turbo-2024-04-09
感谢您的支持和协助。

版本

0.10.38

重现步骤

mm_llm = AzureOpenAIMultiModal(
model = "gpt-4",
deployment_name = "gpt-4-turbo-vision",
response_img = mm_llm.complete(
prompt="Can you describe the image",
image_documents=image_path_
)

相关日志/回溯

ValueError: Invalid model gpt-4. Available models are: ['gpt-4-vision-preview', 'gpt-4-turbo-2024-04-09', 'gpt-4-turbo', 'gpt-4o', 'gpt-4o-2024-05-13']
bqucvtff

bqucvtff1#

要解决在使用Llama Index中的AzureOpenAIMultiModal类与"gpt-4"模型时遇到的ValueError问题,您可以修改模型名称验证过程,将"gpt-4"添加到已识别模型的列表中。以下是操作步骤:

  1. 定位AzureOpenAIMultiModal:该类在llama-index-legacy/llama_index/legacy/multi_modal_llms/azure_openai.py文件中定义。
  2. 修改模型名称验证:更新验证逻辑,将"gpt-4"添加到已识别模型的列表中。
    以下是如何修改AzureOpenAIMultiModal类的示例:
class `CustomAzureOpenAIMultiModal`(`AzureOpenAIMultiModal`):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.valid_models.append("gpt-4")

    def `_is_valid_engine`(self, *args, **kwargs):
        # 在这里添加检查"gpt-4"是否在已识别模型列表中的代码

在这个示例中,CustomAzureOpenAIMultiModal类继承了原始的AzureOpenAIMultiModal类,并将"gpt-4"添加到了有效模型的列表中。然后重写了_is_valid_engine方法,以便检查此更新后的列表。这应该通过确保"gpt-4"被识别为有效模型名称来解决ValueError问题。请确保将endpointkeyimage_path_替换为您的实际Azure端点、API密钥和图像路径。
如果您需要进一步的帮助或有其他要求,请告诉我!

详细信息

来源

此响应旨在节省您的时间并提供帮助。它不是精确解决方案,而是您自己研究的起点。
帮助我变得更有用!如果这有帮助,请留下一个👍;如果无关紧要,请留下一个👎。

  • 要继续对话,请提及@dosu。*
rfbsl7qr

rfbsl7qr2#

@dosu 它不起作用。

wztqucjr

wztqucjr3#

要解决在使用 "gpt-4" 模型与 AzureOpenAIMultiModal 类时出现的 ValueError 问题,请确保 engine 参数与 Azure 中的部署名称相匹配,并确保模型名称验证包含 "gpt-4"。
这是您自定义类和使用示例的更新版本:

from llama_index.llms.azure_openai import AzureOpenAIMultiModal

class CustomAzureOpenAIMultiModal(AzureOpenAIMultiModal):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.valid_models = [
            "gpt-4-vision-preview",
            "gpt-4-turbo-2024-04-09",
            "gpt-4-turbo",
            "gpt-4o",
            "gpt-4o-2024-05-13",
            "gpt-4"  # Added this line
        ]

    def _is_valid_engine(self, engine: Optional[str]) -> bool:
        return engine in self.valid_models

# Use the custom class
mm_llm = CustomAzureOpenAIMultiModal(
    model="gpt-4",
    engine="gpt-4-turbo-vision",  # Ensure this matches your Azure deployment name
    azure_endpoint="https://YOUR_RESOURCE_NAME.openai.azure.com/",
    api_key="your_api_key",  # Replace with your actual API key
    openai_api_type="azure",
    openai_api_version='2023-05-15',
    temperature=0
)

response_img = mm_llm.complete(
    prompt="Can you describe the image",
    image_documents=image_path_
)

需要检查的关键点:

  1. 引擎参数:确保 engine 参数与 Azure 中的部署名称相匹配。
  2. 模型名称验证:确保 "gpt-4" 包含在有效模型列表中。
  3. 环境变量:确保正确设置必要的环境变量。
    如果问题仍然存在,请添加调试打印以检查传递的参数值:
class CustomAzureOpenAIMultiModal(AzureOpenAIMultiModal):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.valid_models = [
            "gpt-4-vision-preview",
            "gpt-4-turbo-2024-04-09",
            "gpt-4-turbo",
            "gpt-4o",
            "gpt-4o-2024-05-13",
            "gpt-4"  # Added this line
        ]
        print(f"Valid models: {self.valid_models}")

    def _is_valid_engine(self, engine: Optional[str]) -> bool:
        print(f"Checking engine: {engine}")
        return engine in self.valid_models

# Use the custom class
mm_llm = CustomAzureOpenAIMultiModal(
    model="gpt-4",
    engine="gpt-4-turbo-vision",  # Ensure this matches your Azure deployment name
    azure_endpoint="https://YOUR_RESOURCE_NAME.openai.azure.com/",
    api_key="your_api_key",  # Replace with your actual API key
    openai_api_type="azure",
    openai_api_version='2023-05-15',
    temperature=0
)

response_img = mm_llm.complete(
    prompt="Can you describe the image",
    image_documents=image_path_
)

这应该有助于确定 engine 参数是否被正确识别,以及模型名称验证是否按预期工作。

详细信息

来源

此响应旨在帮助您节省时间并提高效率。它不是精确的解决方案,而是您自己研究的起点。
帮助我变得更有用!如果您觉得有帮助,请留下一个 👍,如果不相关,请留下一个 👎。

  • 要继续对话,请提及 @dosu。*

相关问题