java简单访问chatapt

java简单调用 gpt-3 api

引入依赖

  1. 进入官方推荐的 java sdk
    • 文档介绍使用openai可以使用api、client和service三种包,service最简单,本次只使用service。
  2. 找到依赖信息.
    implementation ‘com.theokanning.openai-gpt3-java:<api|client|service>:’
  3. 在maven库中找到所需版本,在浏览器搜索
    mvn com.theokanning.openai-gpt3-java
  4. 找到service包的所需配置代码
    • gradle
     implementation 'com.theokanning.openai-gpt3-java:service:0.10.0'
     
     //https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core  
     implementation 'com.fasterxml.jackson.core:jackson-core:2.13.4'
    
     //https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
     implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.4.2'
    
    //https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations
    implementation 'com.fasterxml.jackson.core:jackson-annotations:2.13.4'
    
    • maven
        <dependency>
           <groupId>com.theokanning.openai-gpt3-java</groupId>
           <artifactId>service</artifactId>
           <version>0.10.0</version>
        </dependency> 
    
     <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
        <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-core</artifactId>
           <version>2.13.4</version>
        </dependency>
     
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
        <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-databind</artifactId>
           <version>2.13.4.2</version>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
        <dependency>
           <groupId>com.fasterxml.jackson.core</groupId>
           <artifactId>jackson-annotations</artifactId>
           <version>2.13.4</version>
        </dependency>
    

创建项目

  1. 创建普通java项目,创建main方法。
public static void main(String[] args) {
   ObjectMapper mapper = defaultObjectMapper();
   // 主机地址,端口号
   Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", port));
   //        设置token(需自行申请),增加timeout字段,修改默认超时时间
   OkHttpClient client = defaultClient("your_token", Duration.ofSeconds(100))
                .newBuilder()
                .proxy(proxy)
                .build();
   Retrofit retrofit = defaultRetrofit(client, mapper);
   OpenAiApi api = retrofit.create(OpenAiApi.class);
   OpenAiService service = new OpenAiService(api);
        CompletionRequest completionRequest = CompletionRequest.builder()
      //   设置提示
                .prompt("Somebody once told me the world is gonna roll me")
//                把ada模型修改为davinci模型,davinci模型功能更强大
                .model("text-davinci-003")
                .echo(true)
//               增加maxTokens字段,默认tokens数不够用
                .maxTokens(1000)
                .build();
        System.out.println("--------");
        service.createCompletion(completionRequest).getChoices().forEach(System.out::println);
        System.out.println("--------");
    }

  1. 运行,在控制台窗口中显示
   CompletionChoice(text=Somebody once told me the world is gonna roll me

    I ain't the sharpest tool in the shed

    She was looking kind of dumb with her finger and her thumb
    In the shape of an "L" on her forehead,index=0, logprobs=null, finish_reason=stop)

注意(下方地址都需要魔法上网):

  1. 需要CompletionRequest请求参数设置maxTokens()字段,默认token数只能显示一部分返回文本(token:英文字母≈1:3~4,汉字:token≈2:1)。
    文本转token数地址,其他参数详情.
  2. 须在调用的类OpenAiService里加上timeout参数即 Duration.ofSeconds(100)(Duration.ofSeconds( )的参数类型为long,单位为秒),否则可能会超时。
    OpenAiService service = new OpenAiService("your_token", Duration.ofSeconds(100));
    
  3. 选择模型.text-davinci-003模型更好,想要了解其它模型可以访问https://platform.openai.com/docs/models/gpt-3

修改

 问题:connect timed out
 解决方案:配置代理
  1. 增加依赖包
  2. 增加配置代码
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值