Skip to content

Commit fd80c79

Browse files
committed
manage queued
1 parent fd0cfd6 commit fd80c79

File tree

2 files changed

+48
-29
lines changed

2 files changed

+48
-29
lines changed

assistantweb/src/App.tsx

+44-25
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function App() {
5050

5151
const createThreadAndRun = async (): Promise<string | null> => {
5252
if (!apiKey || !assistantId) return null;
53-
53+
5454
setIsLoading(true); // Start loading
5555
try {
5656
const response = await axios.post(
@@ -69,16 +69,22 @@ function App() {
6969
},
7070
}
7171
);
72-
72+
7373
console.log("Response from thread creation:", response.data); // Debugging log
74-
7574
const newThreadId = response.data.thread_id;
7675
const newRunId = response.data.id;
77-
76+
7877
if (newThreadId && newRunId) {
79-
setThreadId(newThreadId);
80-
setRunId(newRunId);
81-
checkRunStatus(newRunId); // Check the status without awaiting it
78+
// Utiliser la valeur immédiatement dans les logs ou autres fonctions
79+
console.log("new threadId:", newThreadId);
80+
console.log("new runId:", newRunId);
81+
82+
setThreadId(newThreadId); // Ceci est toujours asynchrone
83+
setRunId(newRunId); // Ceci est toujours asynchrone
84+
85+
// Passer directement newThreadId ici, au lieu de threadId qui n'est pas encore à jour
86+
checkRunStatus(newRunId, newThreadId);
87+
8288
return newThreadId;
8389
} else {
8490
console.error("Thread ID or Run ID is missing in the response");
@@ -90,52 +96,62 @@ function App() {
9096
error
9197
);
9298
return null;
99+
} finally {
100+
setIsLoading(false); // Stop loading
93101
}
94102
};
103+
95104

96105
const handleFilesUpdate = (
97106
files: { id: string; created_at: number; vector_store_id: string }[]
98107
) => {
99108
console.log("Files updated:", files);
100109
};
101110

102-
const checkRunStatus = async (runId: string) => {
103-
if (!apiKey || !threadId) return;
104-
111+
const checkRunStatus = async (runId: string, passedThreadId?: string) => {
112+
const currentThreadId = passedThreadId || threadId; // Si threadId n'est pas encore mis à jour, utilisez passedThreadId
113+
console.log("Checking run status...");
114+
console.log("threadId:", currentThreadId); // Cela devrait maintenant afficher la bonne valeur
115+
116+
if (!apiKey || !currentThreadId) return;
117+
105118
try {
106119
const response = await axios.get(
107-
`https://api.openai.com/v1/threads/${threadId}/runs/${runId}`,
120+
`https://api.openai.com/v1/threads/${currentThreadId}/runs/${runId}`,
108121
{
109122
headers: {
110123
"Content-Type": "application/json",
111124
"OpenAI-Beta": "assistants=v2",
112125
Authorization: `Bearer ${apiKey}`,
113-
},
126+
}
114127
}
115128
);
116-
129+
117130
const runStatus = response.data.status;
118-
131+
console.log("Run status:", runStatus);
132+
119133
if (runStatus === "completed") {
120-
await fetchMessages(); // Fetch messages only once when completed
121-
} else if (runStatus === "failed" || runStatus === "expired") {
122-
console.error("Le run a échoué ou a expiré.");
123-
} else {
124-
setTimeout(() => checkRunStatus(runId), 1000); // Retry checking every second
134+
console.log("The run has completed successfully.");
135+
await fetchMessages(currentThreadId); // Utiliser le threadId correct
136+
} else if (runStatus === "failed") {
137+
console.error("The run has failed");
138+
} else if (runStatus === "queued" || runStatus === "in_progress") {
139+
console.log("Retrying to check run status...");
140+
setTimeout(() => checkRunStatus(runId, currentThreadId), 50000); // Réessayez en passant le bon threadId
125141
}
126142
} catch (error) {
127-
console.error("Erreur lors de la vérification du statut du run:", error);
128-
} finally {
129-
setIsLoading(false); // Always stop loading after check
143+
console.error("Error while checking run status:", error);
130144
}
131145
};
146+
147+
132148

133149
const handleSubmitConfig = async () => {
134150
setFormVisible(false);
135151
const newThreadId = await createThreadAndRun(); // Await and receive newThreadId
136152
if (newThreadId !== null) {
137153
setIsLoading(true);
138-
await new Promise((resolve) => setTimeout(resolve, 3000));
154+
await new Promise((resolve) => setTimeout(resolve, 5000));
139155
console.log("Thread ID créé:", newThreadId);
140156
setThreadId(newThreadId);
141157
fetchMessages(newThreadId);
@@ -160,6 +176,7 @@ function App() {
160176
}
161177
}
162178
);
179+
console.log("Messages fetched:", response.data.data); // Add a log here
163180

164181
const filteredMessages = response.data.data.filter(
165182
(message: { role: string }) =>
@@ -168,12 +185,13 @@ function App() {
168185

169186
setMessages(filteredMessages.reverse());
170187
} catch (error) {
171-
console.error("Erreur lors de la récupération des messages:", error);
188+
console.error("Error while fetching messages:", error);
172189
} finally {
173190
setIsLoading(false);
174191
setIsAssistantTyping(false); // Hide typing indicator once message is received
175192
}
176193
};
194+
177195

178196
//afficher les messages
179197
const formatMessageContent = (content: string) => {
@@ -450,8 +468,9 @@ function App() {
450468
}}
451469
>
452470
<NorthIcon />
453-
</Button>
471+
</Button>
454472
</Box>
473+
455474
)}
456475
</>
457476
)}

assistantweb/src/ConfigForm.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -159,12 +159,12 @@ const ConfigForm: React.FC<ConfigFormProps> = ({
159159
</button>
160160
</form>
161161
</div>
162-
{/* {selectedVectorId && (
162+
{selectedVectorId && (
163163
<div className="files-container">
164164
<h2>Files for Vector Store ID: {selectedVectorId}</h2>
165165
<ul>
166-
{files.length > 0 ? (
167-
[...files].reverse().map((file, index) => (
166+
{_files.length > 0 ? (
167+
[..._files].reverse().map((file, index) => (
168168
<li key={file.id}>
169169
{index}:{file.id}
170170
</li>
@@ -174,7 +174,7 @@ const ConfigForm: React.FC<ConfigFormProps> = ({
174174
)}
175175
</ul>
176176
</div>
177-
)} */}
177+
)}
178178
</div>
179179

180180
</>

0 commit comments

Comments
 (0)