Java接入通义千问
前言
通义千问是阿里巴巴达摩院研发的预训练语言模型,提供了一系列的API和SDK可以方便地进行接入。本文将介绍如何使用SpringBoot接入通义千问,并实现搜索功能。
引入依赖
首先,我们需要在pom.xml文件中添加以下依赖项:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-open-api-core</artifactId>
<version>4.2.6</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-open-api-common</artifactId>
<version>4.2.6</version>
</dependency>
配置API Key与主机名
在application.properties文件中,配置以下内容,设置通义千问的API key和主机名:
aliyun.openapi.endpoint=https://ai.aliyun.com/openapi/v4/appid/[your_app_id]/[your_endpoint]
aliyun.openapi.private_key=your_private_key
aliyun.openapi.host=[your_host]
其中,[your_app_id]和[your_endpoint]分别代表通义千问的应用ID和请求端点,需要根据实际情况进行填写。
Java代码调用
在Controller类中,添加以下方法来调用通义千问的API:
@RestController
@RequestMapping("/api")
public class MyController {
@Autowired
private MyService myService;
@GetMapping("/search")
public String search(@RequestParam String query) {
List<Hello> helloList = myService.search(query);
String helloString = String.format("{%s}", helloList);
return helloString;
}
}
其中,MyService是自定义的服务类,需要根据实际情况进行编写。
在myService类中,添加以下方法来调用通义千问的API:
public List<Hello> search(String query) {
String url = "https://ai.aliyun.com/openapi/v4/appid/[your_app_id]/[your_endpoint]?query=" query;
List<Hello> helloList = null;
try {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
if (con.getResponseCode() != 200) {
return null;
}
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
helloList = new Gson().fromJson(response.toString(), new TypeToken<List<Hello>>() {
}.getType());
} catch (Exception e) {
e.printStackTrace();
}
return helloList;
}
其中,[your_app_id]和[your_endpoint]分别代表通义千问的应用ID和请求端点,需要根据实际情况进行填写。
接下来,我们可以在SpringBoot应用程序中,启动HTTP服务器并打开浏览器访问http://localhost:8080/api/search,即可看到通义千问的搜索结果。
@Configuration
public class ApplicationConfig {
@Bean
public EmbeddedServletContainer servletContainer() {
TomcatEmbeddedServletContainer container = new TomcatEmbeddedServletContainer();
container.setPort(8080);
return container;
}
@Bean
public AnnotationConfigServletWebMvcConfigurer mvcConfigurer() {
AnnotationConfigServletWebMvcConfigurer c = new AnnotationConfigServletWebMvcConfigurer();
c.addInterceptors(new LoggingInterceptor());
return c;
}
}
@RestController
@RequestMapping("/api")
public class MyController {
@Autowired
private MyService myService;
@GetMapping("/search")
public String search(@RequestParam String query) {
List<Hello> helloList = myService.search(query);
String helloString = String.format("{%s}", helloList);
return helloString;
}
}
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoggingInterceptor());
}
}
在SpringBoot应用程序中,启动HTTP服务器并打开浏览器访问http://localhost:8080/api/search,即可看到通义千问的搜索结果。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhiebhai
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信提示登录环境异常是什么意思原因
PHP中文网 04-09 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
微信人名旁边有个图标有什么用
PHP中文网 03-11