eng/copilot/deepPromptFunctions.js (51 lines of code) (raw):
import { githubToken, apiBase, apiKey } from "./constants.js";
export async function getSessionAccess() {
try {
return fetch("https://data-ai.microsoft.com/deepprompt/api/v1/exchange", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
token: githubToken,
provider: "github",
}),
}).then(res => res.json());
} catch (error) {
console.error("Failed to exchange github token");
throw error;
}
}
export async function fetchDeepPromptWithQuery(query, sessionId, accessToken){
try {
const dpResponse = await fetch("https://data-ai.microsoft.com/deepprompt/api/v1/query", {
method: "POST",
headers: {
"Content-Type": "application/json",
"DeepPrompt-Session-ID": sessionId,
"Authorization": `Bearer ${accessToken}`,
"DeepPrompt-OpenAI-API-Base": apiBase,
"DeepPrompt-OpenAI-API-Key": apiKey,
"DeepPrompt-OpenAI-Deployment": "gpt-4o",
},
body: JSON.stringify({
query: query
}),
}).then((response) => response.json());
return dpResponse.response_text;
} catch (err) {
console.error("Failed to fetch deep prompt rest api:", err.message);
throw error;
}
}
export function parseResponseToJson(response) {
let trimmed = response.trim();
if (trimmed.startsWith("```json\n") && trimmed.endsWith("```")) {
trimmed = trimmed.substring(7, trimmed.length - 3);
}
trimmed = trimmed.trim();
try {
return JSON.parse(trimmed);
} catch (error) {
console.error("Failed to parse the deep prompt response to JSON:", error);
throw error;
}
}