@lastbrain/module-ai 0.1.19 → 0.1.20
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-image.d.ts","sourceRoot":"","sources":["../../../src/api/auth/generate-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-image.d.ts","sourceRoot":"","sources":["../../../src/api/auth/generate-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiDxD,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW;;;;;;;;IA0L9C"}
|
|
@@ -2,9 +2,15 @@ import { NextResponse } from "next/server";
|
|
|
2
2
|
import { getSupabaseServerClient } from "@lastbrain/core/server";
|
|
3
3
|
import { deductTokens, getTokenBalance } from "../../server";
|
|
4
4
|
import OpenAI from "openai";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
let openai = null;
|
|
6
|
+
function getOpenAIClient() {
|
|
7
|
+
if (!openai) {
|
|
8
|
+
openai = new OpenAI({
|
|
9
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
return openai;
|
|
13
|
+
}
|
|
8
14
|
// Coûts des images selon le modèle et la taille
|
|
9
15
|
const IMAGE_COSTS = {
|
|
10
16
|
"dall-e-2-256x256": 0.016,
|
|
@@ -80,7 +86,8 @@ export async function POST(request) {
|
|
|
80
86
|
};
|
|
81
87
|
}
|
|
82
88
|
// Appeler OpenAI
|
|
83
|
-
const
|
|
89
|
+
const openaiClient = getOpenAIClient();
|
|
90
|
+
const response = await openaiClient.images.generate(imageParams);
|
|
84
91
|
const imageUrl = response.data?.[0]?.url;
|
|
85
92
|
let supabaseImageUrl = null;
|
|
86
93
|
if (imageUrl && uploadPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-text.d.ts","sourceRoot":"","sources":["../../../src/api/auth/generate-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-text.d.ts","sourceRoot":"","sources":["../../../src/api/auth/generate-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAwBxD,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW;;;;;;;;IAqI9C"}
|
|
@@ -2,9 +2,15 @@ import { NextResponse } from "next/server";
|
|
|
2
2
|
import { getSupabaseServerClient } from "@lastbrain/core/server";
|
|
3
3
|
import { deductTokens, getTokenBalance } from "../../server";
|
|
4
4
|
import OpenAI from "openai";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
let openai = null;
|
|
6
|
+
function getOpenAIClient() {
|
|
7
|
+
if (!openai) {
|
|
8
|
+
openai = new OpenAI({
|
|
9
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
return openai;
|
|
13
|
+
}
|
|
8
14
|
export async function POST(request) {
|
|
9
15
|
try {
|
|
10
16
|
const supabase = await getSupabaseServerClient();
|
|
@@ -42,7 +48,8 @@ export async function POST(request) {
|
|
|
42
48
|
content: prompt,
|
|
43
49
|
});
|
|
44
50
|
// Appeler OpenAI
|
|
45
|
-
const
|
|
51
|
+
const openaiClient = getOpenAIClient();
|
|
52
|
+
const completion = await openaiClient.chat.completions.create({
|
|
46
53
|
model,
|
|
47
54
|
messages,
|
|
48
55
|
temperature,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lastbrain/module-ai",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.20",
|
|
4
4
|
"description": "Module de génération IA (texte et images) avec gestion de tokens pour LastBrain",
|
|
5
5
|
"private": false,
|
|
6
6
|
"release": {
|
|
@@ -39,10 +39,10 @@
|
|
|
39
39
|
"@lastbrain/core": "^0.1.0",
|
|
40
40
|
"@lastbrain/ui": "^0.1.0",
|
|
41
41
|
"lucide-react": "^0.554.0",
|
|
42
|
-
"next": "^16.0.
|
|
42
|
+
"next": "^16.0.7",
|
|
43
43
|
"openai": "^6.9.1",
|
|
44
|
-
"react": "^19.
|
|
45
|
-
"react-dom": "^19.
|
|
44
|
+
"react": "^19.2.1",
|
|
45
|
+
"react-dom": "^19.2.1",
|
|
46
46
|
"zod": "^3.23.8"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|