loz 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.js +8 -0
- package/dist/api/index.js.map +1 -0
- package/dist/app-cli.js +30 -0
- package/dist/app-cli.js.map +1 -0
- package/dist/app.js +24 -0
- package/dist/app.js.map +1 -0
- package/dist/hello-test.js +9 -0
- package/dist/hello-test.js.map +1 -0
- package/dist/index.js +155 -0
- package/dist/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPost = void 0;
|
|
4
|
+
let getPost = () => {
|
|
5
|
+
return { status: "success", message: "Post retrieved successfully" };
|
|
6
|
+
};
|
|
7
|
+
exports.getPost = getPost;
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;AAAO,IAAI,OAAO,GAAG,GAAG,EAAE;IACxB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;AACvE,CAAC,CAAC;AAFS,QAAA,OAAO,WAEhB"}
|
package/dist/app-cli.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
const yargs = require("yargs");
|
|
14
|
+
const postAPI = require("./api");
|
|
15
|
+
// node dist/app-cli.js --help
|
|
16
|
+
// node dist/app-cli.js --api getPost
|
|
17
|
+
const parser = yargs(process.argv.slice(2)).options({
|
|
18
|
+
natural: {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "Make the given sentence sound natural",
|
|
21
|
+
},
|
|
22
|
+
}).argv;
|
|
23
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
24
|
+
const argv = yield parser;
|
|
25
|
+
if (argv.api) {
|
|
26
|
+
if (argv.api == "eng")
|
|
27
|
+
console.log(postAPI.getPost());
|
|
28
|
+
}
|
|
29
|
+
}))();
|
|
30
|
+
//# sourceMappingURL=app-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-cli.js","sourceRoot":"","sources":["../src/app-cli.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,+BAA+B;AAC/B,iCAAiC;AAEjC,8BAA8B;AAC9B,qCAAqC;AACrC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClD,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uCAAuC;KACrD;CACF,CAAC,CAAC,IAAI,CAAC;AAER,CAAC,GAAS,EAAE;IACV,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC;IAE1B,IAAI,IAAI,CAAC,GAAG,EAAE;QACZ,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;KACvD;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
|
package/dist/app.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const express = require("express");
|
|
4
|
+
const postAPI = require("./api");
|
|
5
|
+
class App {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.express = express();
|
|
8
|
+
this.mountRoutes();
|
|
9
|
+
}
|
|
10
|
+
mountRoutes() {
|
|
11
|
+
const router = express.Router();
|
|
12
|
+
router.get("/", (req, res) => {
|
|
13
|
+
res.json({
|
|
14
|
+
message: "Hello World!",
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
router.get("/posts", (req, res) => {
|
|
18
|
+
res.json(postAPI.getPost());
|
|
19
|
+
});
|
|
20
|
+
this.express.use("/", router);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.default = new App().express;
|
|
24
|
+
//# sourceMappingURL=app.js.map
|
package/dist/app.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AACnC,iCAAiC;AAEjC,MAAM,GAAG;IAGP;QACE,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC3B,GAAG,CAAC,IAAI,CAAC;gBACP,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAChC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;CACF;AAED,kBAAe,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hello-test.js","sourceRoot":"","sources":["../src/hello-test.ts"],"names":[],"mappings":";;;AAAA,SAAgB,KAAK;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAFD,sBAEC;AAED,kBAAe,KAAK,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const yargs = require("yargs");
|
|
13
|
+
const readline = require("readline");
|
|
14
|
+
const { Configuration, OpenAIApi } = require("openai");
|
|
15
|
+
require("dotenv").config();
|
|
16
|
+
const DEBUG = process.env.DEBUG === "true" ? true : false;
|
|
17
|
+
if (process.env.OPENAI_API_KEY === undefined) {
|
|
18
|
+
console.error("Please set OPENAI_API_KEY in your environment variables");
|
|
19
|
+
// system end
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
const configuration = new Configuration({
|
|
23
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
24
|
+
});
|
|
25
|
+
const openai = new OpenAIApi(configuration);
|
|
26
|
+
function runCompletion(settings, rl) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const res = yield openai.createCompletion(settings, {
|
|
29
|
+
responseType: "stream",
|
|
30
|
+
});
|
|
31
|
+
if (DEBUG === true)
|
|
32
|
+
console.log(res.data);
|
|
33
|
+
try {
|
|
34
|
+
res.data.on("data", (data) => {
|
|
35
|
+
const lines = data
|
|
36
|
+
.toString()
|
|
37
|
+
.split("\n")
|
|
38
|
+
.filter((line) => line.trim() !== "");
|
|
39
|
+
for (const line of lines) {
|
|
40
|
+
const message = line.replace(/^data: /, "");
|
|
41
|
+
if (message === "[DONE]") {
|
|
42
|
+
process.stdout.write("\n");
|
|
43
|
+
process.stdout.write("\n");
|
|
44
|
+
if (rl !== undefined) {
|
|
45
|
+
rl.prompt();
|
|
46
|
+
}
|
|
47
|
+
return; // Stream finished
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
const parsed = JSON.parse(message);
|
|
51
|
+
process.stdout.write(parsed.choices[0].text);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
console.error("Could not JSON parse stream message", message, error);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
console.error("An error occurred during OpenAI request: ", error);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
function handlePrompt(settings) {
|
|
65
|
+
const rl = readline.createInterface({
|
|
66
|
+
input: process.stdin,
|
|
67
|
+
output: process.stdout,
|
|
68
|
+
});
|
|
69
|
+
// Set the prompt to display before each input
|
|
70
|
+
rl.setPrompt("> ");
|
|
71
|
+
// Show the cursor and prompt the user for input
|
|
72
|
+
rl.prompt();
|
|
73
|
+
// Set the terminal to raw mode to allow for cursor manipulation
|
|
74
|
+
process.stdin.setRawMode(true);
|
|
75
|
+
// Display a blinking cursor
|
|
76
|
+
setInterval(() => {
|
|
77
|
+
process.stdout.write("\x1B[?25h");
|
|
78
|
+
setTimeout(() => {
|
|
79
|
+
process.stdout.write("\x1B[?25l");
|
|
80
|
+
}, 500);
|
|
81
|
+
}, 1000);
|
|
82
|
+
// Listen for user input
|
|
83
|
+
rl.on("line", (input) => {
|
|
84
|
+
if (input === "exit" || input === "quit") {
|
|
85
|
+
console.log("Goodbye!");
|
|
86
|
+
process.exit(0);
|
|
87
|
+
}
|
|
88
|
+
if (input.length !== 0) {
|
|
89
|
+
settings.prompt = input;
|
|
90
|
+
settings.max_tokens = 4000;
|
|
91
|
+
runCompletion(settings, rl);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
// Handle CTRL+C to exit the program
|
|
95
|
+
rl.on("SIGINT", () => {
|
|
96
|
+
rl.close();
|
|
97
|
+
console.log("Goodbye!");
|
|
98
|
+
process.exit(0);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
const args = yargs
|
|
102
|
+
.wrap(null)
|
|
103
|
+
.command("$0 [service] [sentence]", "Specify a ChatGPT service", (yargs) => {
|
|
104
|
+
yargs.positional("service", {
|
|
105
|
+
description: "ChatGPT service",
|
|
106
|
+
type: "string",
|
|
107
|
+
});
|
|
108
|
+
yargs.positional("sentence", {
|
|
109
|
+
description: "Sentence to be rephrased",
|
|
110
|
+
type: "string",
|
|
111
|
+
});
|
|
112
|
+
})
|
|
113
|
+
.options({
|
|
114
|
+
interactive: {
|
|
115
|
+
alias: "i",
|
|
116
|
+
describe: "interactive mode",
|
|
117
|
+
},
|
|
118
|
+
})
|
|
119
|
+
.help()
|
|
120
|
+
.parseSync();
|
|
121
|
+
let defaultSettings = {
|
|
122
|
+
model: "text-davinci-003",
|
|
123
|
+
prompt: "",
|
|
124
|
+
temperature: 0,
|
|
125
|
+
max_tokens: 60,
|
|
126
|
+
top_p: 1.0,
|
|
127
|
+
stream: true,
|
|
128
|
+
frequency_penalty: 0.0,
|
|
129
|
+
presence_penalty: 0.0,
|
|
130
|
+
};
|
|
131
|
+
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
132
|
+
switch (args.service) {
|
|
133
|
+
case "natural": {
|
|
134
|
+
const prompt = "Could you please rephrase the following sentence to make it sound more natural?: " +
|
|
135
|
+
args.sentence;
|
|
136
|
+
defaultSettings.prompt = prompt;
|
|
137
|
+
yield runCompletion(defaultSettings, undefined);
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
case "git": {
|
|
141
|
+
const prompt = "Please rephrase the following sentence to make it sound more like a git commit title?: " +
|
|
142
|
+
args.sentence;
|
|
143
|
+
defaultSettings.prompt = prompt;
|
|
144
|
+
yield runCompletion(defaultSettings, undefined);
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
default: {
|
|
148
|
+
// Interactive mode
|
|
149
|
+
if (args.sentence === undefined && args.service == undefined) {
|
|
150
|
+
handlePrompt(defaultSettings);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}))();
|
|
155
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|