samuele-martini/module-openai-gpt

OpenAI GPT 模型语言集成

安装: 90

依赖项: 0

建议者: 0

安全: 0

星星: 27

关注者: 8

分支: 4

开放问题: 0

类型:magento2-module

1.2.0 2023-07-11 09:05 UTC

This package is auto-updated.

Last update: 2024-09-11 11:44:06 UTC


README

以下模块将一些 OpenAI GPT 模型语言特性集成到 Magento 中

安装

composer require samuele-martini/module-openai-gpt

管理面板使用

主要功能是可以从管理面板自动生成产品和类别的描述。只需进入产品或类别的修改页面,然后点击相应的按钮。描述是通过 GPT 模型语言生成的,从产品或类别名称开始,直接翻译成所选商店视图的语言。生成的描述只是一个预览,需要修改,并且需要保存产品或类别以使其巩固。 img_1.png img_2.png

配置

为了模块正常工作,您需要从管理面板正确配置参数: img.png

开发者

一些对开发者有意义的笔记

提供的 Magento 模型

模块提供了 3 个 Magento 模型

  • 产品自动语言描述生成器
  • 类别自动语言描述生成器
  • 自动图像生成器

提供的服务

模块提供了 2 个服务

  • 对于产品,使用相应的 Magento 模型,该服务提供了 3 个方法
    • 基于任意文本和语言的描述生成
    • 基于 SKU 和商店视图的描述生成,从这两个参数中获取产品名称和商店视图的语言,并生成翻译成该语言的连贯文本
    • 基于产品 ID 和商店视图的描述生成,从这两个参数中获取产品名称和商店视图的语言,并生成翻译成该语言的连贯文本
  • 对于类别,使用相应的 Magento 模型,该服务提供了 2 个方法
    • 基于任意文本和语言的描述生成
    • 基于类别 ID 和商店视图的描述生成,从这两个参数中获取类别名称和商店视图的语言,并生成翻译成该语言的连贯文本

尚未为图像创建服务。由于生成一致图像所需的指令复杂性和精确性,无法从简单的产品或分类名称开始生成。您可以通过提供精确的指令直接使用Magento模型。

实施和开发

Magento模型和模块提供的服务与其他功能完全透明,因此它们可用于第三方模块或通过依赖注入进行开发,用于其他用途。

例如,服务和图像模型可以在系统集成的开发中使用,在目录导入阶段自动生成产品和分类的图像和起始描述,如果ERP中的主数据没有这些内容。

另一个例子:提供的Magento模型可用于开发CMS页面或博客文章的自动生成文本,如果已安装管理它的模块。

public function __construct(
        ...
        \SamueleMartini\GPT\Api\GenerateProductDescriptionInterface $generateProductDescription,
        ...
    ) {
        ...
        $this->generateProductDescription = $generateProductDescription;
        ...
    }

    ...
    ...
    ...
    $description = $this->generateProductDescription->getProductDescription($productName, $language);   
    $description = $this->generateProductDescription->getProductDescriptionBySku($sku, $storeId);
    $description = $this->generateProductDescription->getProductDescriptionById($productId, $storeId);
    ...
    ...
    ...
    $product->setDescription($description);
    $this->productRepository->save($product);
    ...
    ...
    ...

控制台命令

提供了一些控制台命令,可以从CLI执行。它们仅用于测试功能,生成的文本和图像未分配给产品和分类,也不决定它们的实际修改。

SamueleMartini_GPT模块

以下模块将OpenAI的GPT语言模型的一些功能集成到Magento中。

安装

composer require samuele-martini/module-openai-gpt

通过管理面板使用

主要功能是能够从管理面板自动生成产品和分类的描述。只需进入产品或分类的修改页面,然后点击相应的按钮。描述将通过GPT语言模型从产品或分类的名称生成,并直接翻译成所选的商店视图语言。生成的描述只是一个预览,必须进行审查,并且必须保存产品或分类以将其巩固。img_1.png img_2.png

配置

为了使模块正常运行,需要从管理面板适当地配置参数:img.png

  • 启用模块:用于启用/禁用模块提供的功能
  • Open AI组织ID:您的Open AI账户ID,在免费注册账户后可在以下链接找到:[https://beta.openai.com/account/org-settings](https://beta.openai.com/account/org-settings)
  • Open AI API密钥:用于认证模块向Open AI发出的请求的API密钥,在免费注册账户后可在以下链接找到:[https://beta.openai.com/account/api-keys](https://beta.openai.com/account/api-keys)
  • OpenAI GPT模型语言:GPT生成文本时应使用的自然语言模型。列表仅在填写并保存前一个参数后显示,因为每个账户的列表可能不同。要了解不同模型之间的差异并选择最合适的模型,请参考文档:[https://platform.openai.com/docs/models/overview](https://platform.openai.com/docs/models/overview)

针对开发者的说明

一些针对开发者的有用注释

提供的Magento模型

该模块提供了3个Magento模型

  • 产品自动生成多语言描述
  • 分类自动生成多语言描述
  • 自动生成图像

提供的Service

该模块提供了2个Service

  • 产品服务,此服务使用相应的Magento模型,提供了3个方法
    • 基于任意文本和语言生成描述
    • 基于sku和店铺视图生成描述,通过这两个参数获取产品名称和店铺视图的语言,并生成翻译后的连贯文本
    • 基于产品ID和店铺视图生成描述,通过这两个参数获取产品名称和店铺视图的语言,并生成翻译后的连贯文本
  • 类别,此服务使用相应的Magento模型,提供了2个方法
    • 基于任意文本和语言生成描述
    • 基于类别ID和店铺视图生成描述,通过这两个参数获取类别名称和店铺视图的语言,并生成翻译后的连贯文本

对于图像,尚未创建服务。由于生成连贯图像所需的复杂性和精确性,无法仅从产品或类别的简单名称中生成图像。可以直接使用Magento模型,并给出精确的指令。

实施和开发

无论是Magento模型还是提供的服务,都对其他功能完全透明,因此可以通过依赖注入在模块或第三方开发中使用,以实现其他用途。

例如,图像服务及其Magento模型可以用于系统集成开发,在导入目录阶段自动生成产品和类别的图像和描述,如果ERP中的数据没有提供这些。

另一个例子:提供的服务模型可以用于开发自动生成文本的功能,甚至用于CMS页面或已安装模块的博客文章。

public function __construct(
        ...
        \SamueleMartini\GPT\Api\GenerateProductDescriptionInterface $generateProductDescription,
        ...
    ) {
        ...
        $this->generateProductDescription = $generateProductDescription;
        ...
    }

    ...
    ...
    ...
    $description = $this->generateProductDescription->getProductDescription($productName, $language);   
    $description = $this->generateProductDescription->getProductDescriptionBySku($sku, $storeId);
    $description = $this->generateProductDescription->getProductDescriptionById($productId, $storeId);
    ...
    ...
    ...
    $product->setDescription($description);
    $this->productRepository->save($product);
    ...
    ...
    ...

控制台命令

提供了一些可从CLI执行的console命令。这些命令仅用于测试功能、文本和图像,生成的文本和图像不会分配给产品或类别,也不会导致实际的修改。