AI Copilot для користувачів веб-додатку
Вбудований AI асистент, що надає контекстну допомогу, генерацію коду, автоматизацію робочих процесів та інтелектуальні пропозиції під час взаємодії користувачів з додатком.
Архітектура
// Context manager для стану додатку
class CopilotContext {
constructor() {
this.currentPage = null;
this.userActions = [];
this.screenData = null;
}
updateContext(data) {
this.currentPage = data.page;
this.userActions.push(data);
this.screenData = data.screenState;
}
buildPrompt() {
return `Поточний стан додатку:
Сторінка: ${this.currentPage}
Останні дії: ${JSON.stringify(this.userActions.slice(-5))}
Вміст екрану: ${JSON.stringify(this.screenData)}`;
}
}
const copilot = new CopilotContext();
// Надавай пропозиції
async function suggestNextAction(context) {
const response = await openai.chat.completions.create({
model: 'gpt-4o-mini',
messages: [{
role: 'user',
content: context.buildPrompt() + '\n\nЩо користувач має робити далі?'
}],
max_tokens: 200,
});
return response.choices[0].message.content;
}
Команди & Ярлики
// Command palette з AI пропозиціями
const commands = {
'/help': (query) => generateContextualHelp(query),
'/generate': (spec) => generateCode(spec),
'/automate': (task) => automateWorkflow(task),
'/search': (query) => semanticSearch(query),
};
function handleCommand(input) {
const [cmd, ...args] = input.split(' ');
const handler = commands[cmd];
if (handler) {
return handler(args.join(' '));
}
// Fallback: запитай copilot
return askCopilot(input);
}
UI інтеграція
function Copilot() {
const [suggestions, setSuggestions] = useState([]);
const [visible, setVisible] = useState(false);
useEffect(() => {
// Моніторю взаємодію користувача
window.addEventListener('click', async (e) => {
const context = extractPageContext(e);
const sug = await suggestNextAction(context);
setSuggestions([sug]);
setVisible(true);
});
}, []);
return (
<div className={`copilot ${visible ? 'visible' : ''}`}>
<div className="copilot-icon">Асистент</div>
<div className="suggestions">
{suggestions.map(s => (
<button key={s} onClick={() => executeSuggestion(s)}>
{s}
</button>
))}
</div>
</div>
);
}
Терміни
- Базовий контекстний трекінг — 2 дні
- Інтеграція command palette — 2 дні
- Генерація контекстної допомоги — 2 дні
- Генерація коду/workflow — 3–5 днів
- Оптимізація продуктивності & UI поліш — 2–3 тижні







