spryker-community/product-management-ai-translator 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

spryker-community/product-management-ai-translator

Composer 安装命令:

composer require spryker-community/product-management-ai-translator

包简介

The ProductManagementAiTranslator module provides product-related AI translation functionality

README 文档

README

This module provides product-related AI translation functionality.

Installation

Install the required modules using Composer

composer require spryker-community/product-management-ai-translator spryker-community/open-ai-translator --no-interaction

This command will install 5 modules in total:

  • spryker-community/product-management-ai-translator
  • spryker-community/ai-translator
  • spryker-community/open-ai-translator
  • spryker-community/open-ai-client
  • openai-php/client

Configuration

Add new SprykerCommunity namespace to configuration

# config/Shared/config_default.php

$config[KernelConstants::CORE_NAMESPACES] = [
    ...
    'SprykerCommunity',
];

Configure OpenAI API token and cache control

# config/Shared/config_default.php

use SprykerCommunity\Shared\AiTranslator\AiTranslatorConstants;
use SprykerCommunity\Shared\OpenAiClient\OpenAiClientConstants;

$config[OpenAiClientConstants::API_TOKEN] = 'OpenAI API token'; // Sets private OpenAI API token
$config[AiTranslatorConstants::ENABLE_CACHE] = true; // Controls Redis caching for translations

Configure Router

# src/Pyz/Zed/Router/RouterConfig.php

public function getControllerDirectories(): array
{
    ...
    $controllerDirectories[] = sprintf('%s/spryker-community/*/src/*/Zed/*/Communication/Controller/', APPLICATION_VENDOR_DIR);
    ...
}

Configure frontend builder for Zed

Create a new javascript file:

# frontend/zed/build.js

const { mergeWithCustomize, customizeObject } = require('webpack-merge');
const oryxForZed = require('@spryker/oryx-for-zed');
const path = require('path');

const mergeWithStrategy = mergeWithCustomize({
    customizeObject: customizeObject({
        plugins: 'prepend'
    })
});

const myCustomZedSettings = mergeWithStrategy(oryxForZed.settings, {
    entry: {
        dirs: [path.resolve('./vendor/spryker-community/')], // Path for SprykerCommunity entry points
    }
});

oryxForZed.getConfiguration(myCustomZedSettings)
    .then(configuration => oryxForZed.build(configuration, oryxForZed.copyAssets))
    .catch(error => console.error('An error occurred while creating configuration', error));

Adjust the root package.json in the following way:

"scripts": {
    ...
    "zed": "node ./frontend/zed/build",
    ...
},

Integration

Adjust the following Twig templates on the project level:

# src/Pyz/Zed/ProductManagement/Presentation/Add/index.twig

{% block head_css %}
    ...
    <link rel="stylesheet" href="{{ assetsPath('css/spryker-zed-product-management-ai-translator.css') }}" />
{% endblock %}

{% block footer_js %}
    ...
    <script src="{{ assetsPath('js/spryker-zed-product-management-ai-translator.js') }}"></script>
{% endblock %}
# src/Pyz/Zed/ProductManagement/Presentation/AddVariant/index.twig

{% block head_css %}
    ...
    <link rel="stylesheet" href="{{ assetsPath('css/spryker-zed-product-management-ai-translator.css') }}" />
{% endblock %}

{% block footer_js %}
    ...
    <script src="{{ assetsPath('js/spryker-zed-product-management-ai-translator.js') }}"></script>
{% endblock %}
# src/Pyz/Zed/ProductManagement/Presentation/Edit/variant.twig

{% block head_css %}
    ...
    <link rel="stylesheet" href="{{ assetsPath('css/spryker-zed-product-management-ai-translator.css') }}" />
{% endblock %}

{% block footer_js %}
    ...
    <script src="{{ assetsPath('js/spryker-zed-product-management-ai-translator.js') }}"></script>
{% endblock %}

Wire the plugins

<?php

namespace Pyz\Client\AiTranslator;

use SprykerCommunity\Client\AiTranslator\AiTranslatorDependencyProvider as SprykerCommunityAiTranslatorDependencyProviderAlias;
use SprykerCommunity\Client\AiTranslator\Dependency\Plugin\TranslatorEnginePluginInterface;
use SprykerCommunity\Client\OpenAiTranslator\Plugin\AiTranslator\OpenAiTranslatorEnginePlugin;

class AiTranslatorDependencyProvider extends SprykerCommunityAiTranslatorDependencyProviderAlias
{
    /**
     * @return \SprykerCommunity\Client\AiTranslator\Dependency\Plugin\TranslatorEnginePluginInterface
     */
    protected function getTranslatorEnginePlugin(): TranslatorEnginePluginInterface
    {
        return new OpenAiTranslatorEnginePlugin();
    }
}

Generate transfers and build frontend

vendor/bin/console transfer:generate
vendor/bin/console frontend:zed:build

spryker-community/product-management-ai-translator 适用场景与选型建议

spryker-community/product-management-ai-translator 是一款 基于 JavaScript 开发的 Composer 扩展包,目前已累计 11.68k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2024 年 04 月 03 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「translations」 「ai」 「spryker」 「product-management」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 spryker-community/product-management-ai-translator 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 spryker-community/product-management-ai-translator 我们能提供哪些服务?
定制开发 / 二次开发

基于 spryker-community/product-management-ai-translator 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 11.68k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 15
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • 开发语言: JavaScript

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-04-03