企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
以下给出java版本的示例(修改APPKEY后可直接运行体验): ~~~ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.Random; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ChatApi { private static final String AUTH_URL = "https://dev.lingju.ai/serverapi/authorize.do?appkey=%s&userid=%s&authcode=%s&userip=%s"; private static final String CHAT_URL = "https://dev.lingju.ai/serverapi/ljchat.do"; private static String token = "";//获取一次,有效期为30天// private static final String APIKEY = "62dd9f0c0e606115aede6e28d8684904";//"a776d26cfc67698b319487b78583dbf7"; private static String AUTH_CODE="1b21bb8f726bd93b90da46633a8ad4e1"; public static void getAccessToken(String userid,String userip){ try { String jsonstring=get(String.format(AUTH_URL, APIKEY,userid,AUTH_CODE,userip)); System.out.println("accessToken_json>>"+jsonstring); //请开发者使用自己熟悉的json框架解析,如java的:gson,jackson,json-org等。其它平台类似。此处为了不引入第三方jar包,直接用正则提取accessToken Pattern pt=Pattern.compile("\"accessToken\"\\:\"(\\w+)\""); Matcher mt=pt.matcher(jsonstring); if(mt.find()){ token=mt.group(1); System.out.println("token="+token); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private static String get(String url) throws IOException{ System.out.println("get>>"+url); URL u=new URL(url); HttpURLConnection conn=(HttpURLConnection) u.openConnection(); conn.setConnectTimeout(10*1000); conn.setRequestMethod("GET"); try{ InputStream in = conn.getInputStream(); if(conn.getResponseCode()==200){ int l=conn.getContentLength(); byte bytes[]=new byte[l]; in.read(bytes, 0, l); in.close(); return new String(bytes,"UTF-8"); } else in.close(); } catch(Exception e){ e.printStackTrace(); }finally{ conn.disconnect(); } return null; } static String chatJson="{"+ "\"accessToken\":\"%s\","+//必填 "\"userip\":\"%s\","+//必填 "\"input\":\"%s\","+//必填 "\"lat\":\"23.12635\","+//非必填 "\"lng\":\"113.38776\","+//非必填 "\"city\":\"广州\","+//非必填 "\"position\":\"广东广州(非必填)\""+ "}"; public static String getAnswer(String text,String ip) throws IOException{ URL u=new URL(CHAT_URL); HttpURLConnection conn=(HttpURLConnection) u.openConnection(); conn.setConnectTimeout(10*1000); conn.setDoOutput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("Connection", "Keep-Alive"); conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8"); OutputStream out= conn.getOutputStream(); try{ String json=String.format(chatJson, token,,userip,text); out.write(json.getBytes("UTF-8")); out.close(); out=null; InputStream in = conn.getInputStream(); if(conn.getResponseCode()==200){ int l=conn.getContentLength(); byte bytes[]=new byte[l]; in.read(bytes, 0, l); in.close(); conn.disconnect(); return new String(bytes,"UTF-8"); } else in.close(); }catch(Exception e){ e.printStackTrace(); } finally{ if(out!=null){ out.close(); } conn.disconnect(); } return null; } public static void main(String[] args) throws Exception { String ip = "127.0.0.1"; getAccessToken("11111111",ip); Scanner sc=new Scanner(System.in); String input; System.out.print("input>>"); while(sc.hasNext()){ input=sc.nextLine(); if("exit".equals(input)){ break; } if("test".equals(input)){ for(int i=0;i<20;i++){ new Thread(new Runnable() { @Override public void run() { try { System.out.println(getAnswer(new Random().nextInt(100)+"testtesttest")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); } } else{ System.out.println(getAnswer(input,ip)); } System.out.print("input>>"); } sc.close(); //System.out.println(getMusicUrlBy("MUSIC_157093")); } } ~~~