开发TPP方案代码

方案即业务代码,即业务场景需要使用的业务代码,在创建场景前需要完成方案的开发和发布。

创建方案前准备

准备内容

1.新建自己的codeup代码仓库并且设置权限。(目前个性化算法开发平台代码仓库暂时只支持云效代码管理codeup,后续考虑扩展其他仓库类型)

2.下载tpp推荐方案代码模板并且开发业务代码。

3.上传到codeup代码仓库。

新建Codeup仓库

操作步骤

1.登录云效代码管理Codeup控制台(目前可免费使用)。

2.在左侧导航栏,单击“代码库”

3.在右边页面单击“新建代码库”。

4.在弹出的页面中填写基础信息,基础信息说明参见下表:

参数

说明

代码库名称

代码库的名称,用于代码库命名

代码库路径

代码库目录路径,代码分组用于分开管理多个相关的代码库。

公开性

设置代码库是否为公开仓库,企业公开库对企业内成员(不包含外部成员)可见,私有仓库仅限代码库成员可见。

5.完成仓库基础信息填写后,单击“确定”完成代码库创建。

授权TPP访问Codeup仓库

操作步骤

1.完成本地Git环境准备

2.登录云效代码管理Codeup控制台

3.在个人工作台右上角单击个人信息图标。

image

4.在弹出的菜单中,单击“个人设置”。

5.在弹出的页面中,设置SSH密钥。

6.配置通过HTTP方式克隆的鉴权账号和密码

注意:TPP需要使用该方式访问您的代码库,请牢记该账号和密码。

下载TPP方案模版并本地开发代码

操作步骤

2022-03-28 开源代码模板【推荐】具体操作请参考README

# 推荐方案的demo
包含多个demo,可以直接修改使用,上线前请充分测试。
免责声明:本代码只是为了示例,不对任何业务效果负责。

## 环境
* 代码仓库codeup
* jdk使用 1.8
* maven 3.3+
* [maven settings.xml](#本地使用的settings.xml) 

## 目录结构
* src
* main 
* java 包含多个demo,可以直接修改使用
* ABFS使用demo
* BE使用demo
* HTTP使用demo
* Predict使用demo
* Redis使用demo
* hello最简单的demo
* demo完整的推荐demo
* 入口:DemoSolution
* match:BE和redis(x2i)
* feature:user-abfs,context-noting,item-redis
* rank:pai-eas(multi_tower)
* rerank:倒序+过滤+打散
* test 测试用例
非常推荐写测试用例,先在本地测试用例通过后,再发布到tpp
* pom.xml不要修改,加了新的也不会生效

## 关于dependency
总所周知,java依赖包纷繁复杂,一不小心就会出现冲突、漏洞、安全隐患。所以tpp的方案代码不支持用户随便使用jar包,我们会严格控制,尽量保障代码安全可靠。
控制方案:
* 1、采用定制sdk
* 2、采用定制插件
所以pom.xml里写出来的依赖就是可以用的,加了新的dependency最终也不会生效

### 基础的SDK solution-protocol
提供必要的jar
<dependency>
  <groupId>com.aliyun.tpp</groupId>
  <artifactId>solution-protocol</artifactId>
  <version>1.0</version>
</dependency>
比如:context、result、solution

### 常用的服务 ai-service-sdk
提供一些常用的jar,这类jar不是所有人都需要,但比较常用
<dependency>
  <groupId>com.aliyun.tpp</groupId>
  <artifactId>ai-service-sdk</artifactId>
  <version>1.0</version>
</dependency>
比如:abfs、be、eas、redis之类的

### 本地测试 ai-service-sdk-testing
提供一些测试必须的jar
<dependency>
  <groupId>com.aliyun.tpp</groupId>
  <artifactId>ai-service-sdk-testing</artifactId>
  <version>1.0</version>
  <scope>test</scope>
</dependency>

## 常见问题
### 本地使用的settings.xml
修改3个地方mirrors profiles activeProfiles
* mirrors修改
```xml

<mirrors>
  <mirror>
    <id>maven-mirror</id>
    <mirrorOf>central</mirrorOf>
    <name>maven public mirror</name>
    <url>https://repo1.maven.org/maven2/</url>
  </mirror>
</mirrors>

```
* profiles修改
```xml
<profiles>
  <profile>
    <id>aliyun</id>
    <repositories>
      <repository>
        <id>aliyun</id>
        <url>https://maven.aliyun.com/repository/public</url>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
      </repository>
      
    </repositories>
    <pluginRepositories>
      <pluginRepository>
        <id>aliyun</id>
        <url>https://maven.aliyun.com/repository/public</url>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
      </pluginRepository>
    </pluginRepositories>
  </profile>
</profiles>
```
* activeProfiles修改
```xml
<activeProfiles>
  <activeProfile>aliyun</activeProfile>
</activeProfiles>
```

注意:一定要本地单测,请参考demo中的test例子,单测通过后起码没有逻辑问题。线上环境和本地的差异主要是网络差别,一些用到http/redis/eas之类的远程网络调用需要填写正确的host!

提交代码

操作步骤

1.登录云效代码管理Codeup控制台

2.在个人工作台单击对应代码库。

3.进行编辑后,单击保存,完成代码提交。

image

创建方案

操作步骤

1.登录个性化算法开发平台控制台

2.在左侧导航栏,单击“个性化算法开发平台->实例列表”

3.在顶部菜单栏,选择要查看的实例所在的目标区域。

4.单击实例ID链接,单击方案管理菜单,在右侧对话框中单击“创建方案”。

5.在弹出的页面中,填充方案基础信息,基础信息说明参见下表:

参数

说明

基于现有方案克隆

即支持您基于一个已有方案快速克隆,会同时克隆方案基础信息以及方案配置。

如果您是首次创建方案,请勿勾选。

方案名称

方案展示名称。

代码源

暂时只支持阿里云云效Codeup,后续考虑支持更多的代码源

仓库地址

即代码库地址。

分支

分支名称。

Git账号

即云效个人设置中填写的HTTPS密码的账号

Git密码

即云效个人设置中填写的HTTPS密码的密码

方案目录名称

代码库中的方案代码所在的子目录。

6.单击确定,完成方案创建。