# Користите Beeuni као инфраструктуру за агенте у свом производу

Повежите свој производ са агентом који прегледа веб-сајтове добављача, чита изворе којима је одобрен приступ, упоређује податке и враћа резултате преко Beeuni SDK-а.

Canonical page: https://beeuni.ai/blog/sr/use-beeuni-as-your-agent-backend

Користите Beeuni API или TypeScript SDK да бисте из своје апликације креирали сесије агента. Ваш производ управља интерфејсом и корисницима, док Beeuni покреће алате агента и враћа поруке и датотеке.

Замислите алатку за набавку која упоређује добављаче. Корисник бира производе и одобрене добављаче; агент посећује њихове јавне странице каталога, чита ценовнике из повезане услуге за документе и саставља упоредну табелу. Ваша апликација управља пријављивањем и прегледом, док Beeuni сесија прикупља материјале и обавља поређење.

## Дефинишите задатак који интерфејс шаље

Наведите улазе, дозвољене радње, формат излаза и случајеве неуспеха. За пример са каталозима доставите одобрене странице добављача, референце на повезане документе каталога и поља која треба упоредити. Захтевајте по један ред за сваки производ, његову понуђену цену и валуту, као и референцу на извор. Ако недостају подаци о димензијама, означите их као непознате. Задатак не треба да доводи до наручивања.

- **Одговорности апликације:** аутентификујте кориснике, одредите ко сме да приступи сваком задатку, проверите улазне податке и прикажите резултат.
- **Конфигурација пројекта:** изаберите агента, модел, вештине и овлашћене алате потребне за ову врсту посла.
- **Рад у сесији:** пошаљите захтев, пратите напредак и прегледајте враћене поруке и излазне датотеке.

## Омогућите сесији приступ потребним изворима

Конфигуришите пројекат помоћу алата за прегледање веба и повезивање који су потребни за задатак. За приватну услугу за документе повежите налог и одобрите агенту приступ одговарајућем конектору. Сама веза у захтеву не омогућава приступ. Изабрани налог и дозвољене изворе ускладите са корисником који је послао задатак; у [водичу за конекторе](/docs/sr/connect/connectors) објашњен је приступ налозима.

Агент затим може да чита изабране документе помоћу тих алата, посећује јавне странице производа и напише скрипту за усклађивање шифара производа и величина паковања. Затражите да уз резултат сачува преузете вредности, локације извора и време преузимања. Ако каталог не може да се прочита или је за страницу потребна додатна пријава, нека апликација прикаже ту празнину уместо да агент измишља цену.

## Чувајте акредитиве на свом серверу

У [водичу за SDK](/docs/sr/sdk) приказано је како да инсталирате `@beeuni/sdk`, направите клијент и аутентификујете захтеве. API кључ чувајте на серверу, изван кода прегледача.

Одредите којим Beeuni пројектима може да приступи сваки корисник. По потреби раздвојте њихове датотеке и повезане налоге и проверите приступ на свом серверу пре прослеђивања захтева. У [водичу за аутентификацију](/docs/sr/sdk/auth) објашњени су доступни начини пријављивања.

## Прикажите напредак и омогућите поновно повезивање

SDK подржава креирање сесија, чекање да буду спремне и слање захтева. У [потпуном примеру](/docs/sr/sdk/example) објашњено је како да примате догађаје и читате одговор. Користите те догађаје да бисте приказали стварни напредак. Статуси „Отварање страница добављача“, „Поређење производа“ и „Резултат је спреман“ треба да одговарају радњама или стањима које можете да проверите.

У апликацији доделите сваком поређењу запис о задатку. Сачувајте изабране референце на изворе, тражене колоне, ID-ове Beeuni пројекта и сесије, као и локацију резултата када постане доступан. Тај запис повезује екран за преглед са послом који је већ у току.

```
Application task record — illustrative fields, not an SDK payload
app_task_id
approved_source_references
requested_columns
beeuni_project_id
beeuni_session_id
output_reference
review_status
```

Замислите корисника који изабере три каталога добављача, а затим освежи страницу. Освежени интерфејс проналази задатак у апликацији и одговарајућу постојећу Beeuni сесију. Чита сачувани напредак и наставља да прати тај посао. Креирањем нове сесије при сваком учитавању странице задатак би се дуплирао.

Веза може да се прекине и пре него што ваш сервер добије потврду да је захтев послат. То је неизвестан исход, а не доказ да се ништа није догодило. Проверите сесију пре него што поново пошаљете захтев. Ако и даље не можете да утврдите да ли је прихваћен, прикажите ту неизвесност уместо да аутоматски покренете ново поређење.

## Проверите резултат у својој апликацији

Код поређења каталога проверите обавезне колоне, читљивост датотека, референце на изворе и производе које није било могуће упарити. Различите величине паковања често доводе до грешака: цена кутије од дванаест комада не може се непосредно упоредити са ценом по комаду. Сачувајте наведену цену и јединицу мере, а нормализовану цену додајте само ако је извор подржава.

Екран за преглед треба да омогући кориснику да отвори извор иза наведене цене и види неразрешена подударања. Датотека може бити спремна иако неки редови још захтевају преглед; у апликацији држите та стања раздвојена.

## Омогућите корисницима да исправе резултат без губитка контекста

Претпоставимо да два добављача користе различите називе за исту столицу. Агент их остави као засебне производе, а рецензент препозна да се ради о истом производу. Корисна исправка наводи два изворна реда и жељени однос: „Упоредите их као исти производ, али задржите одвојене податке о понуђеној завршној обради и величини паковања.“ Ако пошаљете само „покушајте поново“, агент мора да нагађа шта није било у реду.

Забележите ту исправку уз задатак и оставите претходни резултат доступним. У следећем резултату подударање производа може бити исправљено, а неки други ред измењен. Прикажите нову и претходну верзију поређења како би рецензент могао да провери обе. Одредите коју верзију дугме за преузимање нуди и забележите која је одобрена.

Одобрење може да објави поређење на интерном екрану за набавку. Слање поруџбине добављачу је засебна радња, са сопственим дозволама и потврдом. Дефинишите ту границу у апликацији пре него што агенту омогућите приступ алатима за набавку. Завршетак табеле не треба аутоматски да покрене наруџбину.

## Одредите колико посла може да покрене један захтев

Поставите практична ограничења за слање захтева, на пример број каталога и обим посла у једном захтеву. Поређење три кратка ценовника разликује се од усклађивања целокупне архиве производа. Пре почетка прикажите прихваћени обим како би корисник могао да смањи захтев или изабере позадински задатак.

Када су доступни, податке о коришћењу и трошковима преузмите са платформе уместо да коначни рачун израчунавате на основу дужине порука. Ако ваш производ захтева строг лимит потрошње или гаранцију отказивања, проверите како их интеграција примењује. Само одбројавање или дугме „Заустави“ не гарантују да су рад и трошкови заиста обустављени.

## Испробајте интеграцију на случајевима које можете ручно да проверите

Припремите мали скуп каталога са унапред познатим тумачењима: читљив ценовник, нечитљив скенирани документ, две валуте, неусклађене величине паковања и производ без јасног подударања. Користите их при промени модела, упутстава или конфигурације пројекта. Упоредите резултујуће редове и референце на изворе, укључујући и оно што агент није разрешио.

Такође напустите страницу док је обрада у току, вратите се и по завршетку пошаљите исправку. Проверите која се верзија преузима и да ли друга пријављена особа може да приступи задатку. Каталог може бити исправно протумачен, док ваша апликација приказује погрешну верзију или је открива погрешном налогу. Тестирајте и резултат агента и интерфејс око њега.
