From 5cabcf87cc9b163688d2d33503581383038ac906 Mon Sep 17 00:00:00 2001 From: Yanyutin753 <3254822118@qq.com> Date: Fri, 16 Feb 2024 19:04:58 +0800 Subject: [PATCH] add --- config.json | 2 + .../copilot/controller/chatController.java | 76 ++++++++++++++---- .../com/gpt4/copilot/copilotApplication.java | 2 + .../com/gpt4/copilot/pojo/systemSetting.java | 11 +++ src/main/resources/application.properties | 12 --- .../copilot/controller/chatController$1.class | Bin 1530 -> 1380 bytes .../copilot/controller/chatController.class | Bin 38806 -> 39495 bytes .../com/gpt4/copilot/copilotApplication.class | Bin 6820 -> 6980 bytes .../com/gpt4/copilot/pojo/systemSetting.class | Bin 4526 -> 5601 bytes 9 files changed, 75 insertions(+), 28 deletions(-) diff --git a/config.json b/config.json index e4b57e0..199bb6f 100644 --- a/config.json +++ b/config.json @@ -3,6 +3,8 @@ "password": "2602c0f5-7e73-4586-a788-2c856d2eb748", "get_token_url": "http:\/\/124.220.157.23:8800\/copilot_internal\/v2\/token", "prefix": "\/tokensTool", + "vscode_version": "vscode\/1.85.2", "serverPort": 8081, + "maxPoolSize": 250, "gpt4_sleepTime": 110 } \ No newline at end of file diff --git a/src/main/java/com/gpt4/copilot/controller/chatController.java b/src/main/java/com/gpt4/copilot/controller/chatController.java index 1db91a7..08c7bac 100644 --- a/src/main/java/com/gpt4/copilot/controller/chatController.java +++ b/src/main/java/com/gpt4/copilot/controller/chatController.java @@ -58,17 +58,17 @@ public class chatController { private static final String models = "{\"data\":[{\"id\":\"text-search-babbage-doc-001\",\"object\":\"model\",\"created\":1651172509,\"owned_by\":\"openai-dev\"},{\"id\":\"gpt-4\",\"object\":\"model\",\"created\":1687882411,\"owned_by\":\"openai\"},{\"id\":\"babbage\",\"object\":\"model\",\"created\":1649358449,\"owned_by\":\"openai\"},{\"id\":\"gpt-3.5-turbo-0613\",\"object\":\"model\",\"created\":1686587434,\"owned_by\":\"openai\"},{\"id\":\"text-babbage-001\",\"object\":\"model\",\"created\":1649364043,\"owned_by\":\"openai\"},{\"id\":\"gpt-3.5-turbo\",\"object\":\"model\",\"created\":1677610602,\"owned_by\":\"openai\"},{\"id\":\"gpt-3.5-turbo-1106\",\"object\":\"model\",\"created\":1698959748,\"owned_by\":\"system\"},{\"id\":\"curie-instruct-beta\",\"object\":\"model\",\"created\":1649364042,\"owned_by\":\"openai\"},{\"id\":\"gpt-3.5-turbo-0301\",\"object\":\"model\",\"created\":1677649963,\"owned_by\":\"openai\"},{\"id\":\"gpt-3.5-turbo-16k-0613\",\"object\":\"model\",\"created\":1685474247,\"owned_by\":\"openai\"},{\"id\":\"text-embedding-ada-002\",\"object\":\"model\",\"created\":1671217299,\"owned_by\":\"openai-internal\"},{\"id\":\"davinci-similarity\",\"object\":\"model\",\"created\":1651172509,\"owned_by\":\"openai-dev\"},{\"id\":\"curie-similarity\",\"object\":\"model\",\"created\":1651172510,\"owned_by\":\"openai-dev\"},{\"id\":\"babbage-search-document\",\"object\":\"model\",\"created\":1651172510,\"owned_by\":\"openai-dev\"},{\"id\":\"curie-search-document\",\"object\":\"model\",\"created\":1651172508,\"owned_by\":\"openai-dev\"},{\"id\":\"babbage-code-search-code\",\"object\":\"model\",\"created\":1651172509,\"owned_by\":\"openai-dev\"},{\"id\":\"ada-code-search-text\",\"object\":\"model\",\"created\":1651172510,\"owned_by\":\"openai-dev\"},{\"id\":\"text-search-curie-query-001\",\"object\":\"model\",\"created\":1651172509,\"owned_by\":\"openai-dev\"},{\"id\":\"text-davinci-002\",\"object\":\"model\",\"created\":1649880484,\"owned_by\":\"openai\"},{\"id\":\"ada\",\"object\":\"model\",\"created\":1649357491,\"owned_by\":\"openai\"},{\"id\":\"text-ada-001\",\"object\":\"model\",\"created\":1649364042,\"owned_by\":\"openai\"},{\"id\":\"ada-similarity\",\"object\":\"model\",\"created\":1651172507,\"owned_by\":\"openai-dev\"},{\"id\":\"code-search-ada-code-001\",\"object\":\"model\",\"created\":1651172507,\"owned_by\":\"openai-dev\"},{\"id\":\"text-similarity-ada-001\",\"object\":\"model\",\"created\":1651172505,\"owned_by\":\"openai-dev\"},{\"id\":\"text-davinci-edit-001\",\"object\":\"model\",\"created\":1649809179,\"owned_by\":\"openai\"},{\"id\":\"code-davinci-edit-001\",\"object\":\"model\",\"created\":1649880484,\"owned_by\":\"openai\"},{\"id\":\"text-search-curie-doc-001\",\"object\":\"model\",\"created\":1651172509,\"owned_by\":\"openai-dev\"},{\"id\":\"text-curie-001\",\"object\":\"model\",\"created\":1649364043,\"owned_by\":\"openai\"},{\"id\":\"curie\",\"object\":\"model\",\"created\":1649359874,\"owned_by\":\"openai\"},{\"id\":\"davinci\",\"object\":\"model\",\"created\":1649359874,\"owned_by\":\"openai\"}]}"; private static final String machineId; private final static String get_cocopilotToken_url = "https://api.cocopilot.org/copilot_internal/v2/token"; - + private final static String github_get_token_url = "https://api.github.com/copilot_internal/v2/token"; + private final static String github_chat = "https://api.githubcopilot.com/chat/completions"; + private final static String github_embaddings = "https://api.githubcopilot.com/embeddings"; /** * gpt4单字符睡眠时间 */ private static Integer gpt4_sleepTime; - /** * gpt3单字符睡眠时间 */ private static Integer gpt3_sleepTime; - /** * 修改睡眠时间密码 */ @@ -77,6 +77,24 @@ public class chatController { * 自定义获取token_url */ private static String get_token_url; + /** + * 自定义vscode_version + */ + private static String vscode_version; + /** + * 自定义maxPoolSize + */ + private static Integer maxPoolSize; + private static OkHttpClient client = new OkHttpClient.Builder().connectTimeout(3, TimeUnit.MINUTES).readTimeout(5, TimeUnit.MINUTES).writeTimeout(5, TimeUnit.MINUTES).build(); + private static ThreadFactory threadFactory = new ThreadFactory() { + private final AtomicInteger counter = new AtomicInteger(0); + + @Override + public Thread newThread(Runnable r) { + return new Thread(r, "chatThreadPool-" + counter.getAndIncrement()); + } + }; + private static ExecutorService executor; static { selfTokenList = new HashMap<>(); @@ -88,22 +106,30 @@ public class chatController { setGpt3_sleepTime(systemSetting.getGpt3_sleepTime()); setPassword(systemSetting.getPassword()); setGet_token_url(systemSetting.getGet_token_url()); + setVscode_version(systemSetting.getVscode_version()); + setMaxPoolSize(systemSetting.getMaxPoolSize()); + setExecutor(systemSetting.getMaxPoolSize()); } - private final OkHttpClient client = new OkHttpClient.Builder().connectTimeout(3, TimeUnit.MINUTES).readTimeout(5, TimeUnit.MINUTES).writeTimeout(5, TimeUnit.MINUTES).build(); - private final ThreadFactory threadFactory = new ThreadFactory() { - private final AtomicInteger counter = new AtomicInteger(0); + public static String getVscode_version() { + return vscode_version; + } - @Override - public Thread newThread(Runnable r) { - return new Thread(r, "chatThreadPool-" + counter.getAndIncrement()); - } - }; - private final ExecutorService executor = new ThreadPoolExecutor(0, 300, 60L, TimeUnit.SECONDS, new SynchronousQueue<>(), threadFactory); - private final String github_get_token_url = "https://api.github.com/copilot_internal/v2/token"; - private final String github_chat = "https://api.githubcopilot.com/chat/completions"; - private final String github_embaddings = "https://api.githubcopilot.com/embeddings"; - private final String vscode_version = "vscode/1.85.2"; + public static void setVscode_version(String vscode_version) { + chatController.vscode_version = vscode_version; + } + + public static Integer getMaxPoolSize() { + return maxPoolSize; + } + + public static void setMaxPoolSize(Integer maxPoolSize) { + chatController.maxPoolSize = maxPoolSize; + } + + public static void setExecutor(Integer maxPoolSize) { + chatController.executor = new ThreadPoolExecutor(0, maxPoolSize, 60L, TimeUnit.SECONDS, new SynchronousQueue<>(), threadFactory); + } public static Integer getGpt4_sleepTime() { return gpt4_sleepTime; @@ -201,12 +227,30 @@ public class chatController { exist = false; } + try { + jsonObject.getString("vscode_version"); + } catch (JSONException e) { + jsonObject.put("vscode_version", "vscode/1.85.2"); + log.info("config.json没有新增vscode_version参数,现已增加!"); + exist = false; + } + + try { + jsonObject.getInt("maxPoolSize"); + } catch (JSONException e) { + jsonObject.put("maxPoolSize", 300); + log.info("config.json没有新增maxPoolSize参数,现已增加!"); + exist = false; + } + // 将 JSONObject 转换为 Config 类的实例 systemSetting config = new systemSetting(); config.setGpt4_sleepTime(jsonObject.optInt("gpt4_sleepTime")); config.setGpt3_sleepTime(jsonObject.optInt("gpt3_sleepTime")); config.setPassword(jsonObject.optString("password")); config.setGet_token_url(jsonObject.optString("get_token_url")); + config.setVscode_version(jsonObject.optString("vscode_version")); + config.setMaxPoolSize(jsonObject.optInt("maxPoolSize")); if (exist == false) { // 将修改后的 JSONObject 转换为格式化的 JSON 字符串 diff --git a/src/main/java/com/gpt4/copilot/copilotApplication.java b/src/main/java/com/gpt4/copilot/copilotApplication.java index bd82bcd..a5893e4 100644 --- a/src/main/java/com/gpt4/copilot/copilotApplication.java +++ b/src/main/java/com/gpt4/copilot/copilotApplication.java @@ -124,6 +124,8 @@ public class copilotApplication { System.out.println("gpt3_sleepTime:" + chatController.getGpt3_sleepTime()); System.out.println("gpt4_sleepTime:" + chatController.getGpt4_sleepTime()); System.out.println("get_token_url:" + chatController.getGet_token_url()); + System.out.println("vscode_version:" + chatController.getVscode_version()); + System.out.println("maxPoolSize:" + chatController.getMaxPoolSize()); System.out.println("password:" + chatController.getPassword()); System.out.println("gpt4-copilot-java-native初始化接口成功!"); System.out.println("-------------------------------------------------------"); diff --git a/src/main/java/com/gpt4/copilot/pojo/systemSetting.java b/src/main/java/com/gpt4/copilot/pojo/systemSetting.java index 369cc1c..6c451b3 100644 --- a/src/main/java/com/gpt4/copilot/pojo/systemSetting.java +++ b/src/main/java/com/gpt4/copilot/pojo/systemSetting.java @@ -40,4 +40,15 @@ public class systemSetting { * self-define get_token_url */ private String get_token_url; + + /** + * vscode_version + */ + private String vscode_version; + + /** + * maxPoolSize + */ + private Integer maxPoolSize; + } \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index a41c724..21bca46 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,15 +1,3 @@ management.endpoints.web.exposure.include=metrics,health,info,prometheus -# server.port -server.port=8080 -# SpringBoot 2.* prefix -server.servlet.context-path=/ -# gpt4 sleep time -gpt4_sleepTime=100 -# gpt3 sleep time -gpt3_sleepTime=0 -# changeSleepTime's password -password=gpt4-copilot-java -# self-define get_token_url -get_token_url=https://api.cocopilot.org/copilot_internal/v2/token diff --git a/target/classes/com/gpt4/copilot/controller/chatController$1.class b/target/classes/com/gpt4/copilot/controller/chatController$1.class index 024e0623e5824aa1ff2f30608e574be02a8096c6..a49a3537c7c0832fe086bafd8ff65b8c128891bf 100644 GIT binary patch delta 490 zcmXX@%PvDv6kYrF=xwiC+R}R0tF&&b^{O{DH4q{~Y9P6xh!jzck)$7BROdSg37TkP zWFWr5&_75F8vC?Pvfpd3efBxOjo(JwXZ7_Bz!FvrXmIEdCK})@-Gs?idPwx@FjS(E zAfl@y+irN!q@&q{7d}E<=CpX}XFk+I@SfOLb~0z59VNGp^I7}AfR2EPAll?Qbvrvu zbfQaM(3H!M9z`0Gca)$$`9%?#(hlXlw(0Y(WedmW2ODVW<-);@hD5~ zJNla@4NM`WV_Ff;$Xmxd&B+}RrbT%zEU`>XTofVsA7C_|=VhQ;mfeYY%IJRJiU!4~h68&wwqU*EpN)GF#R%6eMl=uy>b5b~8sZpbE0AD4R?8$X a&ep~736@#RbL3~FhpjpbPX5?5I{pBcXG5|8 delta 565 zcmYk2&ubG=5XV1ncavZ{By9na{lWmiy_HzWh4;2&{5Hi-DQJa!HYn zUoAN4sQ+}oIxm>ph+l_=P7a%FhMbFo8<(o05U(`Lc|0AM5LmVK`j+l;(&ZFEJX#i| z_(x#pDZ8BEtjvqa^f{Lb=VeQ@?IP2J9hhtg$KI7)w@L5UNc1-Iy+1&vAq03?0o{krnf^ zxGBGyRdHL|R%qQ7RHS274g~3q!C?3K9#d*+8^HzTeLXyQp5B96jiJn8R{4wS^$078 z6vM^{5st}(N94E7F(*d&?~?pW>dqxu1G4NiI`}*AC4)-Yk26MnojsO4v diff --git a/target/classes/com/gpt4/copilot/controller/chatController.class b/target/classes/com/gpt4/copilot/controller/chatController.class index f24b04fc19466726a768b90b6c860289a9e253d4..f558f3058c9712cad92cab0f7c7d828153f2422a 100644 GIT binary patch literal 39495 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 D;cN^L diff --git a/target/classes/com/gpt4/copilot/copilotApplication.class b/target/classes/com/gpt4/copilot/copilotApplication.class index ffd7272e9299fa2caf5a3ce8c7ba14b82b325bb4..a414b479036cd45f74ad111a09e8d503f928dbfd 100644 GIT binary patch delta 1555 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 literal 4526 zcmb7IU2ogw6@Ffs6!k&LvK>3+lBI5|IJW$urR_dS$6Z=4slC~$S7+(gc1szVu@%dr zO3~@E+ujWW)?Kw2c2f*!ZUSrr<`gK3VY}&oUG8eYu6DIQkuH1Qmy|@x?BD^GczDip z4&U=l`EURE^iKd*@UuKJ7%`xk(2*5*rr{mbcRRuJ^@i7Jw!EO;@$Pu_?!9i{9&Eco z&}{Dt6uPc|*Y&qNKMMf_eTVHPn?yl=EORG5(c@zY)9pAm({Hefr47eTm zw4`vRiIRMDSw8k=x8=H>>&*jKniw@v>4~08ipEV$Nb9+d)9t?N`8yInX<|w;OS^7x zGw}A^_RT}TRiNYv6BfQgc*AL5dFRk+2~5t$&hzT6J8mObo_j-r&zkru&V^>SW1ddV z&c#%Ez7{Zzrwlx8;u-mb${-q{QAWU(PwYz5=S|E=(_=j0D+zz4bk@XNOd4}pO6N^1 zU{N4X-K{95rxHhsqAJ046JL|yq69}FlKf{)JSX`Td4Ob;rtx(X-@rE+r9G#+x9aV< z0wc3?>*Fky7fje#7C3$2?7OR8yWs?{Hv@v&-N0!FU4i%F@$3aB7O&`VF-{67g>_sn z;>45D_k0>FCSJt18TCueb~AWUxo|^33;h}0Xtv#JhX=P@|GIOlMGwa}yoS@d;rLB? zA2GFHuSuWIZ=9eX7?o1j4dRtDl@^ORo}#kp27BJlmg74IZs7WSMxMI8bS7%D=O)$0 zh)I@9pBF0CQ9Z@5>RssR$yeM!zQ*3QeG7jy&P>4X*A9nIpPfHph>9XSi$ z5vUGEU9)|cMGU#q0Mv zZVLR(n1$X%kFg>Xt4^!6-3;929N2!h6W-4bDt|>ROoz#oR5JAuCzg7JjtWsp;|X68 za{}giyY2d`ErQ&xfxDb8$Ksb376aU!=l(a8H5XyWrYYY6cwZ*@p zXlb8g>^{szOM8eXdx)y76H>LamM$^b&oO=uB0)>GX%!{Nj6kGfpo?~ipo@0dDoIc|0+pLVO;uk{s`CbDg!x*e`AZICW9*ef$x(yf*Ssg*GOsXf+K8`(y@u(;X0`-T6iBn zAZ5VE&vAoP4!^=aUMH2u2XOI2QUyF@IsS-L5udSj-XLY-pPZy`k}Ba}ID@xHmGNVq zcLS3~?h(ocGGAcIz%>7I;tM8I8cpPB=;O-rC2d6&)!EAO9!n}$nZFNX@gbgnTk@;6CIyxj zNpiB#LeT|VS0dJ!Qp#C+PgJwBN|f!3Sb3q=l5Hpvi!RbKdZLSVPKk1T5lfL;XVVMg zt*EV#hch6l|_JOnS5Co zzr<