方案即业务代码,即业务场景需要使用的业务代码,在创建场景前需要完成方案的开发和发布。
创建方案前准备
准备内容
1.新建自己的codeup代码仓库并且设置权限。(目前个性化算法开发平台代码仓库暂时只支持云效代码管理codeup,后续考虑扩展其他仓库类型)
2.下载tpp推荐方案代码模板并且开发业务代码。
3.上传到codeup代码仓库。
新建Codeup仓库
操作步骤
1.登录云效代码管理Codeup控制台(目前可免费使用)。
2.在左侧导航栏,单击“代码库”。
3.在右边页面单击“新建代码库”。
4.在弹出的页面中填写基础信息,基础信息说明参见下表:
参数 | 说明 |
代码库名称 | 代码库的名称,用于代码库命名 |
代码库路径 | 代码库目录路径,代码分组用于分开管理多个相关的代码库。 |
公开性 | 设置代码库是否为公开仓库,企业公开库对企业内成员(不包含外部成员)可见,私有仓库仅限代码库成员可见。 |
5.完成仓库基础信息填写后,单击“确定”完成代码库创建。
授权TPP访问Codeup仓库
操作步骤
1.完成本地Git环境准备;
2.登录云效代码管理Codeup控制台。
3.在个人工作台右上角单击个人信息图标。
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.进行编辑后,单击保存,完成代码提交。
创建方案
操作步骤
1.登录个性化算法开发平台控制台。
2.在左侧导航栏,单击“个性化算法开发平台->实例列表”。
3.在顶部菜单栏,选择要查看的实例所在的目标区域。
4.单击实例ID链接,单击方案管理菜单,在右侧对话框中单击“创建方案”。
5.在弹出的页面中,填充方案基础信息,基础信息说明参见下表:
参数 | 说明 |
基于现有方案克隆 | 即支持您基于一个已有方案快速克隆,会同时克隆方案基础信息以及方案配置。 如果您是首次创建方案,请勿勾选。 |
方案名称 | 方案展示名称。 |
代码源 | 暂时只支持阿里云云效Codeup,后续考虑支持更多的代码源 |
仓库地址 | 即代码库地址。 |
分支 | 分支名称。 |
Git账号 | 即云效个人设置中填写的HTTPS密码的账号 |
Git密码 | 即云效个人设置中填写的HTTPS密码的密码 |
方案目录名称 | 代码库中的方案代码所在的子目录。 |
6.单击确定,完成方案创建。