# aliyun-tpp-solution-demo
**Repository Path**: aliyun/aliyun-tpp-solution-demo
## Basic Information
- **Project Name**: aliyun-tpp-solution-demo
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-05-08
- **Last Updated**: 2025-06-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# aliyun-tpp-solution-demo 推荐方案的demo
包含多个demo,可以直接修改使用,上线前请充分测试,如有雷同实属巧合。
## 环境
* 代码仓库codeup
* jdk使用 1.8
* maven 3.3+
* [maven settings.xml](#本地使用的settings.xml)
## 目录结构
* src
* main
* java 包含多个demo,可以直接修改使用
* ABFS使用demo
* BE使用demo
* HTTP使用demo
* dubbo使用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
com.aliyun.tpp
solution-protocol
1.0
比如:context、result、solution
### 常用的服务 ai-service-sdk
提供一些常用的jar,这类jar不是所有人都需要,但比较常用
com.aliyun.tpp
ai-service-sdk
1.1
比如:abfs、be、eas、redis之类的
### 本地测试 ai-service-sdk-testing
提供一些测试必须的jar
com.aliyun.tpp
ai-service-sdk-testing
1.1
test
## 常见问题
### 本地使用的settings.xml
修改3个地方mirrors profiles activeProfiles
* mirrors修改
```xml
maven-mirror
central
maven public mirror
https://repo1.maven.org/maven2/
```
* profiles修改
```xml
aliyun
aliyun
https://maven.aliyun.com/repository/public
true
false
aliyun
https://maven.aliyun.com/repository/public
true
false
```
* activeProfiles修改
```xml
aliyun
```
### 连通redis
* TPP不允许调用公网,只能使用VPC地址调用,将TPP实例使用的交换机网段添加到redis白名单
* * 本地测试可以使用公网地址调用,但用完最好关闭,以免出现安全问题
### 连通pai-eas
* TPP不允许调用公网,只能使用VPC地址调用
* 本地测试可以使用公网地址调用,但用完最好关闭,以免出现安全问题
### 连通dubbo
* TPP不允许调用公网,只能使用VPC地址调用
* 本地测试可以使用公网地址调用,但用完最好关闭,以免出现安全问题