AI pro smlouvy v Team assistant

Tento návod popisuje, co je nutné udělat, aby AI nad Smlouvami správně fungovala v jakémkoliv projektu.

Je vhodný pro konzultanty i partnery, kteří řeší implementace v Team assistant.

Zajisti si Azure API Key

Nejdřív je potřeba mít funkční přístup k Azure OpenAI:

  • Endpoint
  • Model (GPT-4o / GPT-4.1)
  • API Key

Nejlepší praxe je uložit tyto hodnoty do: local.js (lokální konfigurace)

Přidej skripty do instance

Skripty (výpočty)

Používají se na úkolech, obsahují logiku promptů a hlavní AI API volání

Obsahují:

  • AI prompts – Tyto funkce tvoří prompty — tedy instrukce pro AI. Můžou se doplňovat k uživatelským dotazům nebo k automatickým analýzám.
  • AI scripts – Je to jednotná API brána pro všechny AI úkony.Podle parametru mode rozhodne, jak má AI pracovat.

Skripty (CO React) - CaseOverview v Reactu

Zobrazují AI chatovací okno v React caseoverview

Tyto skripty jsou určeny jen pro CaseOverview, nikoliv pro úkoly.

Obsahují:

  • SendButtonCO – renderuje tlačítko „Send“
  • AI ChatBox – komponenta pro zobrazení historie AI konverzace

Skripty (CO) - Dynamické podmínky

Vkládají chatovací okno do úkolu přes dynamické podmínky

Tyhle skripty slouží ke zobrazení AI okna v samotném úkolu, ne v CO.

Obsahují:

  • SendButtonDP – přidává tlačítko „Send“ do sekce úkolu
  • AI ChatBox – vykreslí chatovací okno uvnitř úkolu

Přidej potřebné proměnné do šablony

Minimální sada:

Proměnná

Popis

Typ proměnné

promptField

vstup pro dotaz uživatele

text s více řádky

_arrayOfMessages

historie chatu

text

_arrayOfMessagesEvent

historie chatu na caseoverview (chat na caseoverview se zobrazuje podle uživatele)

text

_sendButtonHolder

zobrazení tlačítka "Potvrzení" pro odeslání promptu do AI

text

responseWindow

historie chatu

text s více řádky

Přidej AI volání na šablonu

Volání AI z caseoverview

  1. Přidej událost "Ask AI about contract", mapuj do ní proměnnou promptFieldTak se zajistí, že stisk tlačítka spustí AI dotaz.
  2. Úprava Case Overview

Chatovací okno do úkolu (schvalovací úkoly)

  1. Přidej do úkolu sekci "AI" a namapuj do ně proměnné ve stavu "W" (write)
    1. responseWindow
    2. promptField
    3. _sendButtonHolder
  2. Přidej do úkolu dynamické podmínky
// AI section
//----------------------------------------------------------------------------------------------------------------------------------------------------//
//set height for WYSIWIG editor and adjust the style
setEditorFontSizeAndHeight();

//create chat window
//if (vSync('_arrayOfMessages')) {
createChatBox({
addInfoVar: 'responseWindow',
configMessages: JSON.parse(vSync('_arrayOfMessages'))
})
//}
const onSendButtonFunction = (e) => {
e.preventDefault()


const taskRecalcButton = document.querySelector(`#task-recalc-btn`);
console.log("taskRecalcButton", {
taskRecalcButton
});
taskRecalcButton.click();

};
addSendButton({
message: "Send",
addInfoVar: '_sendButtonHolder',
})

varDefOn('_sendButtonHolder', true, () => {
return {
ivar_name_cs: '',
ivar_name: '',
ivar_name_sk: '',
ivar_name_pl: '',
ivar_name_hr: '',
ivar_name_ro: '',
ivar_name_en: '',
}
})
  1. Přidej do úkolu výpočet s voláním AI

Na úkol přidej výpočet, který se spustí při události (tlačítko / přepočet) a provede samotné volání do Azure AI v režimu chat:

const response = callAzureAI({
mode: 'chat',
enteredText: vars['promptField'].getValue(),
selectedFiles: vars['contractCleanCopy'].getValue(), // smlouva
previousMessagesJson: vars['_arrayOfMessages'].getValue(),
defaultInstructionPrompt: generalContracts(),
config
});

// Uložení aktualizované konverzace
vars['_arrayOfMessages'].setValue(response.messagesJson);

// Reset vstupního pole pro další dotaz
vars['promptField'].setValue('');

// Zobrazení odpovědi v okně pro uživatele
vars['responseWindow'].setValue(response.reply);
Nezapomeň namapovat skripty výpočtu

Vyčtení smlouvy (DOCX, PDF) do proměnných (úkol "Vložit čistopis smlouvy")

  1. Přidej do úkolu výpočet s voláním AI
//** extract contract PDF in to the variables */
// 1) Call unified AI function (RAW mode)
const response = callAzureAI({
mode: 'raw',
enteredText: extractContractFile(),
selectedFiles: vars['contractCleanCopy'].getValue(),
config
});

// 2) Convert markdown → HTML (same as before)
const aiOutput = markdownToHtml(response.reply);

// 3) Clean and parse JSON (same as before)
const cleanedJson = aiOutput.replace(/<br>/g, "").trim();
const outputParsed = JSON.parse(cleanedJson);

// 4) Set variables
vars['contractTitle'].setValue(outputParsed.contractTitle);
vars['contractSubject'].setValue(outputParsed.description);
vars['supplier'].setValue(outputParsed.partyBName);
vars['supplierRepresentativeContact'].setValue(outputParsed.partyBRepresentative);
vars['totalWoVat'].setValue(outputParsed.amount);

// 5) Static defaults
vars['contractCategory'].setValue('financialPerformanceWithPO');
vars['paymentFrequency'].setValue('Monthly');
Nezapomeň namapovat skripty výpočtu

Manažerský souhrn smlouvy (úkol "Technical task - general and approval matrix")

  1. Přidej do úkolu výpočet s voláním AI
const response = callAzureAI({
mode: 'raw',
enteredText: managerialContractSummaryPrompt(),
selectedFiles: vars['contractCleanCopy'].getValue(), // array of files
config
});

// The assistant reply = response.reply
vars['aiSummary'].setValue(
markdownToHtml(response.reply)
);
Nezapomeň namapovat skripty výpočtu

Anna Gernát Updated by Anna Gernát

Contact

Team assistant (opens in a new tab)

Powered by HelpDocs (opens in a new tab)