mirror of
https://github.com/katanemo/plano.git
synced 2026-06-17 15:25:17 +02:00
Merge branch 'main' into adil/use_standard_tracing
This commit is contained in:
commit
f6bd00bb5e
12 changed files with 85 additions and 330 deletions
|
|
@ -1,68 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 28.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="STANDARD_UPDATE" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||
y="0px" viewBox="0 0 1000 141.83" style="enable-background:new 0 0 1000 141.83;" xml:space="preserve">
|
||||
<path d="M267.52,104.26c2.51,1.01,6.23,1.66,11.16,1.96v2.11h-55.64v-2.11c4.92-0.3,8.65-0.95,11.16-1.96c2.51-1,4.25-2.61,5.2-4.83
|
||||
c0.95-2.21,1.43-5.48,1.43-9.8V22.37h-0.45l-38.15,87.92h-0.45l-40.87-87.61h-0.45v66.95c0,4.32,0.5,7.59,1.51,9.8
|
||||
c1,2.21,2.74,3.82,5.2,4.83c2.46,1.01,6.16,1.66,11.08,1.96v2.11H135.8v-2.11c4.92-0.3,8.62-0.95,11.08-1.96
|
||||
c2.46-1,4.2-2.61,5.2-4.83c1-2.21,1.51-5.48,1.51-9.8V22.22c0-4.32-0.5-7.59-1.51-9.8c-1.01-2.21-2.74-3.82-5.2-4.83
|
||||
c-2.47-1-6.16-1.66-11.08-1.96V3.52h38.08l34.78,75.93l33.73-75.93h36.29v2.11c-4.93,0.3-8.65,0.96-11.16,1.96
|
||||
c-2.51,1.01-4.27,2.64-5.28,4.9c-1.01,2.26-1.51,5.5-1.51,9.73v67.41c0,4.32,0.5,7.59,1.51,9.8
|
||||
C263.25,101.65,265.01,103.25,267.52,104.26z M343.12,53.44c3.11,5.73,4.67,12.21,4.67,19.45c0,7.24-1.56,13.72-4.67,19.45
|
||||
c-3.12,5.73-7.46,10.16-13.04,13.27c-5.58,3.12-11.94,4.68-19.08,4.68c-7.14,0-13.47-1.56-19-4.68c-5.53-3.11-9.88-7.54-13.04-13.27
|
||||
c-3.17-5.73-4.75-12.21-4.75-19.45c0-7.24,1.58-13.72,4.75-19.45s7.51-10.15,13.04-13.27c5.53-3.12,11.86-4.68,19-4.68
|
||||
c7.14,0,13.5,1.56,19.08,4.68C335.66,43.29,340,47.71,343.12,53.44z M328.04,72.89c0-7.14-0.68-13.27-2.04-18.4
|
||||
c-1.36-5.13-3.32-9.02-5.88-11.69c-2.56-2.66-5.61-4-9.12-4c-3.52,0-6.56,1.33-9.12,4c-2.56,2.67-4.52,6.56-5.88,11.69
|
||||
c-1.36,5.13-2.04,11.26-2.04,18.4c0,7.14,0.68,13.27,2.04,18.4c1.36,5.13,3.32,9.02,5.88,11.69c2.56,2.67,5.6,4,9.12,4
|
||||
c3.52,0,6.56-1.33,9.12-4c2.56-2.66,4.52-6.56,5.88-11.69C327.36,86.16,328.04,80.03,328.04,72.89z M398.92,51.63
|
||||
c2.61,0,4.98,0.45,7.09,1.36V36.4c-1.31-0.6-2.86-0.9-4.67-0.9c-4.63,0-8.72,2.04-12.29,6.11c-3.57,4.07-6.35,8.75-8.93,18.07h-0.34
|
||||
V36.1h-0.6l-29.86,8.6v1.96c3.42,0,6.06,0.33,7.92,0.98c1.86,0.65,3.19,1.71,4,3.17c0.8,1.46,1.21,3.44,1.21,5.96v37.4
|
||||
c0,3.12-0.3,5.43-0.9,6.94c-0.6,1.51-1.71,2.64-3.32,3.39c-1.61,0.75-4.17,1.33-7.69,1.73v2.11h41.92v-2.11
|
||||
c-3.52-0.3-6.16-0.83-7.92-1.58c-1.76-0.75-2.99-1.91-3.69-3.47c-0.7-1.56-1.06-3.9-1.06-7.01V64.53
|
||||
C382.95,57.1,389.91,51.63,398.92,51.63z M453.56,46.52 M618.97,101.02c-0.6-1.56-0.9-3.89-0.9-7.01V59.62
|
||||
c0-16.15-8.94-24.13-20.66-24.13c-11.72,0-19.25,8.3-22.47,12.72h-0.3V36.1h-0.6l-29.86,8.6v1.96c3.32,0,5.93,0.33,7.84,0.98
|
||||
c1.91,0.65,3.27,1.68,4.07,3.09c0.8,1.41,1.21,3.37,1.21,5.88V94c0,3.12-0.3,5.46-0.9,7.01c-0.6,1.56-1.71,2.71-3.32,3.47
|
||||
c-1.61,0.75-4.17,1.33-7.69,1.73v2.11h39.21v-2.11c-2.71-0.4-4.8-0.98-6.26-1.73c-1.46-0.75-2.44-1.91-2.94-3.47
|
||||
c-0.5-1.56-0.75-3.89-0.75-7.01V53.69c3.47-4.21,7.55-8.25,14.18-8.25c9.11,0,11.91,6.87,11.91,14.63V94c0,3.12-0.28,5.46-0.83,7.01
|
||||
c-0.55,1.56-1.51,2.71-2.87,3.47c-1.36,0.75-3.44,1.33-6.26,1.73v2.11h38.76v-2.11c-3.32-0.4-5.76-0.98-7.31-1.73
|
||||
C620.65,103.73,619.58,102.58,618.97,101.02z M1000,87.52c-3.33,7.27-12.62,22.77-31.52,22.77c-17.95,0-32.87-14.68-32.87-36.79
|
||||
c0-6.94,1.51-13.32,4.52-19.15c3.02-5.83,7.11-10.43,12.29-13.8c5.18-3.37,10.88-5.05,17.12-5.05c18.11,0,27.14,12.76,27.14,26.06v3
|
||||
h-44.93c0,0.27-0.01,0.53-0.01,0.8c0,16,7.12,31.37,25.03,31.37c13.62,0,19.32-7.54,21.56-10.25L1000,87.52z M952.06,59.47h28.18
|
||||
c-0.19-10.93-3.45-20.47-12.36-20.51C959.52,38.93,953.46,46.73,952.06,59.47z M799.99,101.02c-0.6-1.56-0.9-3.89-0.9-7.01V59.62
|
||||
c0-5.23-0.88-9.65-2.64-13.27c-1.76-3.62-4.2-6.33-7.31-8.14c-3.12-1.81-6.69-2.71-10.71-2.71c-4.63,0-8.72,1.18-12.29,3.54
|
||||
c-3.57,2.36-6.96,5.76-10.18,10.18h-0.3V0h-0.6L725.2,8.6v1.96c3.32,0,5.93,0.33,7.84,0.98c1.91,0.65,3.27,1.68,4.07,3.09
|
||||
c0.8,1.41,1.21,3.37,1.21,5.88V94c0,3.12-0.3,5.46-0.9,7.01c-0.6,1.56-1.71,2.71-3.32,3.47c-1.61,0.75-4.17,1.33-7.69,1.73v2.11
|
||||
h39.21v-2.11c-2.71-0.4-4.8-0.98-6.26-1.73c-1.46-0.75-2.44-1.91-2.94-3.47c-0.5-1.56-0.75-3.89-0.75-7.01V53.69
|
||||
c3.47-4.21,7.55-8.25,14.18-8.25c3.72,0,6.63,1.23,8.75,3.69c2.11,2.46,3.17,6.11,3.17,10.93V94c0,3.12-0.28,5.46-0.83,7.01
|
||||
c-0.55,1.56-1.51,2.71-2.87,3.47c-1.36,0.75-3.44,1.33-6.26,1.73v2.11h38.76v-2.11c-3.32-0.4-5.76-0.98-7.31-1.73
|
||||
C801.67,103.73,800.6,102.58,799.99,101.02z M690.46,101.82c-22.24,0.15-39.88-17.73-39.88-46.74c0-30.66,16.43-48.54,35.22-48.54
|
||||
c18.79,0,26.85,16.93,30.96,33.56l3.01-0.05V9.45c-7.06-3.91-18.64-8.32-35.47-8.32c-32.46,0-56.96,23.75-56.96,55.46
|
||||
c0,30.21,20.44,54.1,55.61,53.95c19.39-0.15,32.91-11.72,39.37-20.59l-2.1-2.25C715.86,92.66,707.14,101.67,690.46,101.82z
|
||||
M914.35,66.41l-10.4-4.98c-6.91-3.09-10.86-7.18-10.86-12.21c0-5.7,5.22-9.6,12.52-9.6c10.63,0,16.14,5.88,18.42,18.95h3.14v-19
|
||||
c-3.12-1.21-11.36-4.07-19.75-4.07c-16.59,0-26.69,10.43-26.69,22.47c0,4.63,1.23,8.67,3.69,12.14c2.46,3.47,6.16,6.46,11.08,8.97
|
||||
l10.86,5.43c7.43,3.39,10.41,6.73,10.41,11.76c0,5.56-4.48,9.91-12.97,9.91c-12.41,0-18.31-11.77-19.93-21.22h-3.14v19.45
|
||||
c4.73,3.06,13.63,5.88,21.87,5.88c15.9,0,26.99-9.74,26.99-23.52C929.58,76.84,924.28,70.63,914.35,66.41z M90.03,62.64v26.99
|
||||
c0,4.22,0.6,7.46,1.81,9.73c1.21,2.26,3.22,3.9,6.03,4.9c2.81,1.01,7.09,1.66,12.82,1.96v2.11H52.33v-2.11
|
||||
c4.92-0.3,8.62-0.95,11.08-1.96c2.46-1,4.2-2.61,5.2-4.83c1-2.21,1.51-5.48,1.51-9.8V22.68c0-13.79-6.23-16.59-15.69-16.59
|
||||
c-10.38,0-16.73,2.79-16.73,16.14v74.91c0,16.93-11,33.03-32.72,33.03c-1.68,0-3.34-0.1-4.98-0.29v-1.81
|
||||
c5.16-0.31,9.34-2.06,12.52-5.29c3.52-3.57,5.28-9.42,5.28-17.57V22.22c0-4.22-0.5-7.47-1.51-9.73c-1.01-2.26-2.77-3.89-5.28-4.9
|
||||
c-2.51-1-6.18-1.66-11.01-1.96V3.52h103.05c23.44,0,37.95,11.72,37.95,29.41c0,20.25-19.89,29.71-37.67,29.71H90.03z M90.03,58.59
|
||||
h7.19c12.23,0,22.52-7.16,22.52-25.51c0-22.43-14.81-25.51-22.15-25.51h-7.56V58.59z M538.1,102.31c2.49,0,4.68-1.09,6.07-2.03v3.58
|
||||
c-2.78,2.6-7.94,6.38-15.7,6.38c-6.54,0-12.03-4.15-13.49-10.48h-0.39c-2.55,4.82-10.34,10.91-18.84,10.91
|
||||
c-10.2,0-17.71-6.8-17.71-17.14c0-8.08,5.53-13.46,14.73-16.72l21.82-7.86V58.82c0-9.21-6.66-13.46-13.88-13.46
|
||||
c-7.37,0-14.17,3.12-21.25,10.34l-2.12-1.98c6.23-10.06,16.15-18.28,30.46-18.28c13.6,0,24.51,8.93,24.37,23.38l-0.28,36.13
|
||||
C531.87,100.04,534,102.31,538.1,102.31z M514.59,73.67l-8.78,3.56c-6.8,2.69-11.19,5.81-11.19,13.03c0,6.09,4.25,10.34,10.2,10.34
|
||||
c3.12,0,7.65-2.41,9.78-5.1V73.67z M871.01,102.31c2.5,0,4.68-1.1,6.08-2.03v3.58c-2.78,2.6-7.94,6.39-15.71,6.39
|
||||
c-6.54,0-12.03-4.15-13.49-10.48h-0.39c-2.55,4.82-10.34,10.91-18.84,10.91c-10.2,0-17.71-6.8-17.71-17.14
|
||||
c0-8.08,5.53-13.46,14.73-16.72l21.82-7.86V58.82c0-9.21-6.66-13.46-13.88-13.46c-7.37,0-14.17,3.12-21.25,10.34l-2.13-1.98
|
||||
c6.23-10.06,16.15-18.28,30.46-18.28c13.6,0,24.51,8.93,24.37,23.38l-0.28,36.13C864.78,100.04,866.9,102.31,871.01,102.31z
|
||||
M847.49,73.67l-8.78,3.56c-6.8,2.69-11.19,5.81-11.19,13.03c0,6.09,4.25,10.34,10.2,10.34c3.12,0,7.65-2.41,9.78-5.1V73.67z
|
||||
M460.13,40.45c6.45,5.03,9.3,12.27,9.3,18.45c0,16.23-13.87,24.64-29.66,24.64c-4.16,0-8.18-0.59-11.85-1.75
|
||||
c-2.04,1.57-3.79,3.62-3.79,6.02c0,5.16,8.41,6.2,13.43,6.49l17.12,1.18c13.72,0.89,22.42,5.75,22.42,18
|
||||
c0,15.49-18.32,28.33-45,28.33c-15.49,0-26.56-5.31-26.56-14.76c0-8.21,4.52-12.91,16.14-18.49c-7.6-2.21-9.36-6.74-9.36-11.17
|
||||
c0-6.06,5.41-11.5,12.74-16.66c-8.78-3.7-14.95-11.03-14.95-21.85c0-16.23,13.87-24.64,29.66-24.64c7.26,0,13.04,1.65,17.49,4.24
|
||||
c3.32-6.67,9.87-14.43,21.61-14.43v13.85C472.6,35.96,464.95,36.97,460.13,40.45z M417.93,120.58c0,8.56,9.74,12.39,22.43,12.39
|
||||
c12.1,0,28.47-5.46,28.47-14.17c0-5.02-2.8-6.2-10.18-6.79L429,109.81c-1.74-0.13-3.31-0.33-4.72-0.6
|
||||
C420.01,112.54,417.93,115.96,417.93,120.58z M451.13,58.91c0-13.87-4.57-20.51-11.36-20.51s-11.36,6.64-11.36,20.51
|
||||
s4.57,20.51,11.36,20.51S451.13,72.78,451.13,58.91z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 7.5 KiB |
16
apps/katanemo-www/public/logos/clubcentric.svg
Normal file
16
apps/katanemo-www/public/logos/clubcentric.svg
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<svg width="803" height="105" viewBox="0 0 803 105" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M144.484 105C121.777 105 105 87.5943 105 66.3679V66.0849C105 44.8585 121.777 27.0283 144.629 27.0283C159.092 27.0283 168.059 32.2641 175.146 39.9057L164.298 51.3679C158.947 45.8491 153.306 42.0283 144.484 42.0283C131.757 42.0283 122.5 52.783 122.5 65.8019V66.0849C122.5 79.3868 131.901 90.1415 145.352 90.1415C153.596 90.1415 159.67 86.3207 165.166 80.8019L175.724 90.9906C168.203 99.1981 159.381 105 144.484 105Z" fill="black"/>
|
||||
<path d="M182.708 103.302V0H200.208V103.302H182.708Z" fill="black"/>
|
||||
<path d="M239.278 104.858C222.067 104.858 212.087 93.5377 212.087 76.1321V28.5849H229.587V71.0377C229.587 82.6415 235.517 89.2924 245.931 89.2924C256.055 89.2924 263.142 82.3585 263.142 70.7547V28.5849H280.642V103.302H263.142V91.6981C258.224 98.7736 251.137 104.858 239.278 104.858Z" fill="black"/>
|
||||
<path d="M335.907 104.858C323.325 104.858 315.37 98.6321 310.019 91.6981V103.302H292.518V0H310.019V41.0377C315.659 33.2547 323.614 27.0283 335.907 27.0283C353.986 27.0283 371.486 41.0377 371.486 65.8019V66.0849C371.486 90.849 354.131 104.858 335.907 104.858ZM331.858 90C343.862 90 353.697 80.8019 353.697 66.0849V65.8019C353.697 51.3679 343.717 41.8868 331.858 41.8868C319.998 41.8868 309.585 51.5094 309.585 65.8019V66.0849C309.585 80.5189 319.998 90 331.858 90Z" fill="black"/>
|
||||
<path d="M414.575 105C391.868 105 375.091 87.5943 375.091 66.3679V66.0849C375.091 44.8585 391.868 27.0283 414.719 27.0283C429.182 27.0283 438.149 32.2641 445.236 39.9057L434.389 51.3679C429.038 45.8491 423.397 42.0283 414.575 42.0283C401.847 42.0283 392.591 52.783 392.591 65.8019V66.0849C392.591 79.3868 401.992 90.1415 415.443 90.1415C423.686 90.1415 429.761 86.3207 435.257 80.8019L445.815 90.9906C438.294 99.1981 429.472 105 414.575 105Z" fill="black"/>
|
||||
<path d="M484.668 105C462.54 105 445.474 89.2924 445.474 66.2264V65.9434C445.474 44.5755 460.949 27.0283 482.788 27.0283C507.086 27.0283 519.38 45.7075 519.38 67.217C519.38 68.7736 519.235 70.3302 519.09 72.0283H462.974C464.854 84.1981 473.676 90.9906 484.958 90.9906C493.491 90.9906 499.565 87.8774 505.64 82.0755L515.908 90.9906C508.677 99.4811 498.697 105 484.668 105ZM462.829 60.7075H502.024C500.867 49.6698 494.214 41.0377 482.644 41.0377C471.941 41.0377 464.42 49.1038 462.829 60.7075Z" fill="black"/>
|
||||
<path d="M526.83 103.302V28.5849H544.33V40.1887C549.248 33.1132 556.335 27.0283 568.194 27.0283C585.405 27.0283 595.385 38.3491 595.385 55.7547V103.302H577.885V60.8491C577.885 49.2453 571.955 42.5943 561.541 42.5943C551.417 42.5943 544.33 49.5283 544.33 61.1321V103.302H526.83Z" fill="black"/>
|
||||
<path d="M631.993 104.575C619.121 104.575 610.009 99.0566 610.009 82.6415V43.3019H600.319V28.5849H610.009V8.06603H627.51V28.5849H648.047V43.3019H627.51V79.9528C627.51 86.6038 630.981 89.2924 636.911 89.2924C640.816 89.2924 644.287 88.4434 647.758 86.7453V100.755C643.419 103.16 638.501 104.575 631.993 104.575Z" fill="black"/>
|
||||
<path d="M655.59 103.302V28.5849H673.091V45.4245C677.863 34.2453 686.686 26.6038 700.136 27.1698V45.283H699.124C683.793 45.283 673.091 55.0472 673.091 74.8585V103.302H655.59Z" fill="black"/>
|
||||
<path d="M705.5 17.1226V0.849054H724.302V17.1226H705.5ZM706.223 103.302V28.5849H723.724V103.302H706.223Z" fill="black"/>
|
||||
<path d="M771.76 105C749.053 105 732.276 87.5943 732.276 66.3679V66.0849C732.276 44.8585 749.053 27.0283 771.905 27.0283C786.368 27.0283 795.335 32.2641 802.422 39.9057L791.574 51.3679C786.223 45.8491 780.582 42.0283 771.76 42.0283C759.033 42.0283 749.776 52.783 749.776 65.8019V66.0849C749.776 79.3868 759.177 90.1415 772.628 90.1415C780.872 90.1415 786.946 86.3207 792.442 80.8019L803 90.9906C795.479 99.1981 786.657 105 771.76 105Z" fill="black"/>
|
||||
<path d="M77.2534 17.9871H54.8247C53.5284 17.9871 52.4718 19.0436 52.4718 20.3397V27.9094C52.4718 29.2055 53.5284 30.262 54.8247 30.262H67.7656C71.5346 30.262 74.5955 33.3226 74.5955 37.0911V50.869C74.5955 52.1652 75.6522 53.2216 76.9484 53.2216H84.5191C85.8154 53.2216 86.872 52.1652 86.872 50.869V27.6044C86.872 22.2893 82.5583 17.9762 77.2425 17.9762L77.2534 17.9871ZM0 27.6153V50.8799C0 52.176 1.05662 53.2325 2.3529 53.2325H9.92356C11.2198 53.2325 12.2765 52.176 12.2765 50.8799V37.102C12.2765 33.3335 15.3374 30.2729 19.1064 30.2729H32.0473C33.3436 30.2729 34.4002 29.2164 34.4002 27.9203V20.3506C34.4002 19.0545 33.3436 17.998 32.0473 17.998H9.62945C4.31364 17.998 0 22.3111 0 27.6262V27.6153ZM74.5955 73.6435V85.7442C74.5955 89.5127 71.5346 92.5733 67.7656 92.5733H54.8247C53.5284 92.5733 52.4718 93.6298 52.4718 94.9259V102.496C52.4718 103.792 53.5284 104.848 54.8247 104.848H77.2534C82.5692 104.848 86.8829 100.535 86.8829 95.2199V73.6326C86.8829 72.3365 85.8262 71.28 84.53 71.28H76.9593C75.6631 71.28 74.6064 72.3365 74.6064 73.6326L74.5955 73.6435ZM12.2765 85.7442V73.6435C12.2765 72.3474 11.2198 71.2909 9.92356 71.2909H2.3529C1.05662 71.2909 0 72.3474 0 73.6435V95.2308C0 100.546 4.31364 104.859 9.62945 104.859H32.0582C33.3545 104.859 34.4111 103.803 34.4111 102.506V94.9368C34.4111 93.6407 33.3545 92.5842 32.0582 92.5842H19.1173C15.3483 92.5842 12.2873 89.5236 12.2873 85.7551L12.2765 85.7442Z" fill="#2E8DA1"/>
|
||||
<path d="M60.0231 42.2555C58.1359 40.3683 55.0883 40.3683 53.2011 42.2555L51.0753 44.3812L57.8973 51.2033L60.0231 49.0775C61.9103 47.1903 61.9103 44.1426 60.0231 42.2555Z" fill="black"/>
|
||||
<path d="M55.9453 53.1555L49.1233 46.3335L26.8026 68.6542C25.6746 69.7821 24.8395 71.1813 24.384 72.7214L22.9198 77.6562C22.7788 78.1443 22.9089 78.6649 23.2669 79.0228C23.6248 79.3807 24.1454 79.5108 24.6334 79.3698L29.5683 77.9057C31.1084 77.4501 32.4966 76.615 33.6355 75.487L55.9561 53.1664L55.9453 53.1555Z" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.6 KiB |
|
|
@ -562,7 +562,7 @@ export const LogoLoop = React.memo<LogoLoopProps>(
|
|||
LogoLoop.displayName = "LogoLoop";
|
||||
|
||||
const logos: LogoItem[] = [
|
||||
{ src: "/logos/chase.svg", alt: "Chase" },
|
||||
{ src: "/logos/clubcentric.svg", alt: "ClubCentric" },
|
||||
{ src: "/logos/hp.svg", alt: "HP" },
|
||||
{ src: "/logos/huggingface.svg", alt: "Hugging Face" },
|
||||
{ src: "/logos/sandisk.svg", alt: "SanDisk" },
|
||||
|
|
|
|||
16
apps/www/public/logos/clubcentric.svg
Normal file
16
apps/www/public/logos/clubcentric.svg
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
<svg width="803" height="105" viewBox="0 0 803 105" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M144.484 105C121.777 105 105 87.5943 105 66.3679V66.0849C105 44.8585 121.777 27.0283 144.629 27.0283C159.092 27.0283 168.059 32.2641 175.146 39.9057L164.298 51.3679C158.947 45.8491 153.306 42.0283 144.484 42.0283C131.757 42.0283 122.5 52.783 122.5 65.8019V66.0849C122.5 79.3868 131.901 90.1415 145.352 90.1415C153.596 90.1415 159.67 86.3207 165.166 80.8019L175.724 90.9906C168.203 99.1981 159.381 105 144.484 105Z" fill="black"/>
|
||||
<path d="M182.708 103.302V0H200.208V103.302H182.708Z" fill="black"/>
|
||||
<path d="M239.278 104.858C222.067 104.858 212.087 93.5377 212.087 76.1321V28.5849H229.587V71.0377C229.587 82.6415 235.517 89.2924 245.931 89.2924C256.055 89.2924 263.142 82.3585 263.142 70.7547V28.5849H280.642V103.302H263.142V91.6981C258.224 98.7736 251.137 104.858 239.278 104.858Z" fill="black"/>
|
||||
<path d="M335.907 104.858C323.325 104.858 315.37 98.6321 310.019 91.6981V103.302H292.518V0H310.019V41.0377C315.659 33.2547 323.614 27.0283 335.907 27.0283C353.986 27.0283 371.486 41.0377 371.486 65.8019V66.0849C371.486 90.849 354.131 104.858 335.907 104.858ZM331.858 90C343.862 90 353.697 80.8019 353.697 66.0849V65.8019C353.697 51.3679 343.717 41.8868 331.858 41.8868C319.998 41.8868 309.585 51.5094 309.585 65.8019V66.0849C309.585 80.5189 319.998 90 331.858 90Z" fill="black"/>
|
||||
<path d="M414.575 105C391.868 105 375.091 87.5943 375.091 66.3679V66.0849C375.091 44.8585 391.868 27.0283 414.719 27.0283C429.182 27.0283 438.149 32.2641 445.236 39.9057L434.389 51.3679C429.038 45.8491 423.397 42.0283 414.575 42.0283C401.847 42.0283 392.591 52.783 392.591 65.8019V66.0849C392.591 79.3868 401.992 90.1415 415.443 90.1415C423.686 90.1415 429.761 86.3207 435.257 80.8019L445.815 90.9906C438.294 99.1981 429.472 105 414.575 105Z" fill="black"/>
|
||||
<path d="M484.668 105C462.54 105 445.474 89.2924 445.474 66.2264V65.9434C445.474 44.5755 460.949 27.0283 482.788 27.0283C507.086 27.0283 519.38 45.7075 519.38 67.217C519.38 68.7736 519.235 70.3302 519.09 72.0283H462.974C464.854 84.1981 473.676 90.9906 484.958 90.9906C493.491 90.9906 499.565 87.8774 505.64 82.0755L515.908 90.9906C508.677 99.4811 498.697 105 484.668 105ZM462.829 60.7075H502.024C500.867 49.6698 494.214 41.0377 482.644 41.0377C471.941 41.0377 464.42 49.1038 462.829 60.7075Z" fill="black"/>
|
||||
<path d="M526.83 103.302V28.5849H544.33V40.1887C549.248 33.1132 556.335 27.0283 568.194 27.0283C585.405 27.0283 595.385 38.3491 595.385 55.7547V103.302H577.885V60.8491C577.885 49.2453 571.955 42.5943 561.541 42.5943C551.417 42.5943 544.33 49.5283 544.33 61.1321V103.302H526.83Z" fill="black"/>
|
||||
<path d="M631.993 104.575C619.121 104.575 610.009 99.0566 610.009 82.6415V43.3019H600.319V28.5849H610.009V8.06603H627.51V28.5849H648.047V43.3019H627.51V79.9528C627.51 86.6038 630.981 89.2924 636.911 89.2924C640.816 89.2924 644.287 88.4434 647.758 86.7453V100.755C643.419 103.16 638.501 104.575 631.993 104.575Z" fill="black"/>
|
||||
<path d="M655.59 103.302V28.5849H673.091V45.4245C677.863 34.2453 686.686 26.6038 700.136 27.1698V45.283H699.124C683.793 45.283 673.091 55.0472 673.091 74.8585V103.302H655.59Z" fill="black"/>
|
||||
<path d="M705.5 17.1226V0.849054H724.302V17.1226H705.5ZM706.223 103.302V28.5849H723.724V103.302H706.223Z" fill="black"/>
|
||||
<path d="M771.76 105C749.053 105 732.276 87.5943 732.276 66.3679V66.0849C732.276 44.8585 749.053 27.0283 771.905 27.0283C786.368 27.0283 795.335 32.2641 802.422 39.9057L791.574 51.3679C786.223 45.8491 780.582 42.0283 771.76 42.0283C759.033 42.0283 749.776 52.783 749.776 65.8019V66.0849C749.776 79.3868 759.177 90.1415 772.628 90.1415C780.872 90.1415 786.946 86.3207 792.442 80.8019L803 90.9906C795.479 99.1981 786.657 105 771.76 105Z" fill="black"/>
|
||||
<path d="M77.2534 17.9871H54.8247C53.5284 17.9871 52.4718 19.0436 52.4718 20.3397V27.9094C52.4718 29.2055 53.5284 30.262 54.8247 30.262H67.7656C71.5346 30.262 74.5955 33.3226 74.5955 37.0911V50.869C74.5955 52.1652 75.6522 53.2216 76.9484 53.2216H84.5191C85.8154 53.2216 86.872 52.1652 86.872 50.869V27.6044C86.872 22.2893 82.5583 17.9762 77.2425 17.9762L77.2534 17.9871ZM0 27.6153V50.8799C0 52.176 1.05662 53.2325 2.3529 53.2325H9.92356C11.2198 53.2325 12.2765 52.176 12.2765 50.8799V37.102C12.2765 33.3335 15.3374 30.2729 19.1064 30.2729H32.0473C33.3436 30.2729 34.4002 29.2164 34.4002 27.9203V20.3506C34.4002 19.0545 33.3436 17.998 32.0473 17.998H9.62945C4.31364 17.998 0 22.3111 0 27.6262V27.6153ZM74.5955 73.6435V85.7442C74.5955 89.5127 71.5346 92.5733 67.7656 92.5733H54.8247C53.5284 92.5733 52.4718 93.6298 52.4718 94.9259V102.496C52.4718 103.792 53.5284 104.848 54.8247 104.848H77.2534C82.5692 104.848 86.8829 100.535 86.8829 95.2199V73.6326C86.8829 72.3365 85.8262 71.28 84.53 71.28H76.9593C75.6631 71.28 74.6064 72.3365 74.6064 73.6326L74.5955 73.6435ZM12.2765 85.7442V73.6435C12.2765 72.3474 11.2198 71.2909 9.92356 71.2909H2.3529C1.05662 71.2909 0 72.3474 0 73.6435V95.2308C0 100.546 4.31364 104.859 9.62945 104.859H32.0582C33.3545 104.859 34.4111 103.803 34.4111 102.506V94.9368C34.4111 93.6407 33.3545 92.5842 32.0582 92.5842H19.1173C15.3483 92.5842 12.2873 89.5236 12.2873 85.7551L12.2765 85.7442Z" fill="#2E8DA1"/>
|
||||
<path d="M60.0231 42.2555C58.1359 40.3683 55.0883 40.3683 53.2011 42.2555L51.0753 44.3812L57.8973 51.2033L60.0231 49.0775C61.9103 47.1903 61.9103 44.1426 60.0231 42.2555Z" fill="black"/>
|
||||
<path d="M55.9453 53.1555L49.1233 46.3335L26.8026 68.6542C25.6746 69.7821 24.8395 71.1813 24.384 72.7214L22.9198 77.6562C22.7788 78.1443 22.9089 78.6649 23.2669 79.0228C23.6248 79.3807 24.1454 79.5108 24.6334 79.3698L29.5683 77.9057C31.1084 77.4501 32.4966 76.615 33.6355 75.487L55.9561 53.1664L55.9453 53.1555Z" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.6 KiB |
|
|
@ -19,8 +19,8 @@ const customerLogos = [
|
|||
src: "/logos/sandisk.svg",
|
||||
},
|
||||
{
|
||||
name: "Chase",
|
||||
src: "/logos/chase.svg",
|
||||
name: "ClubCentric",
|
||||
src: "/logos/clubcentric.svg",
|
||||
},
|
||||
];
|
||||
|
||||
|
|
@ -34,6 +34,7 @@ export function LogoCloud() {
|
|||
const isTMobile = index === 1; // T-Mobile is before HP
|
||||
const isHP = index === 2; // HP is in center
|
||||
const isSanDisk = index === 3; // SanDisk is after HP
|
||||
const isClubCentric = index === 4; // ClubCentric is after SanDisk
|
||||
|
||||
// Custom spacing for logos around HP on large screens
|
||||
let spacingClass = "lg:mx-6 xl:mx-8"; // Default spacing
|
||||
|
|
@ -42,7 +43,9 @@ export function LogoCloud() {
|
|||
} else if (isHP) {
|
||||
spacingClass = "lg:mx-3 xl:mx-4"; // Smaller gaps on both sides
|
||||
} else if (isSanDisk) {
|
||||
spacingClass = "lg:ml-3 xl:ml-4 lg:mr-6 xl:mr-8"; // Smaller gap from HP
|
||||
spacingClass = "lg:ml-3 xl:ml-5 lg:mr-6 xl:mr-14"; // Smaller gap from HP
|
||||
} else if (isClubCentric) {
|
||||
spacingClass = "lg:mx-3 xl:mx-4 mb-1"; // Smaller gaps on both sides
|
||||
}
|
||||
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -1,112 +0,0 @@
|
|||
|
||||
### Use Arch for (Model-based) LLM Routing Step 1. Create arch config file
|
||||
Create `config.yaml` file with following content:
|
||||
|
||||
```yaml
|
||||
version: v0.1.0
|
||||
|
||||
listeners:
|
||||
egress_traffic:
|
||||
address: 0.0.0.0
|
||||
port: 12000
|
||||
message_format: openai
|
||||
timeout: 30s
|
||||
|
||||
llm_providers:
|
||||
- access_key: $OPENAI_API_KEY
|
||||
model: openai/gpt-4o
|
||||
default: true
|
||||
|
||||
- access_key: $MISTRAL_API_KEY
|
||||
model: mistral/ministral-3b-latest
|
||||
```
|
||||
|
||||
### Step 2. Start arch gateway
|
||||
|
||||
Once the config file is created ensure that you have env vars setup for `MISTRAL_API_KEY` and `OPENAI_API_KEY` (or these are defined in `.env` file).
|
||||
|
||||
Start arch gateway,
|
||||
|
||||
```
|
||||
$ planoai up config.yaml
|
||||
# Or if installed with uv: uvx planoai up config.yaml
|
||||
2024-12-05 11:24:51,288 - planoai.main - INFO - Starting plano cli version: 0.4.4
|
||||
2024-12-05 11:24:51,825 - planoai.utils - INFO - Schema validation successful!
|
||||
2024-12-05 11:24:51,825 - planoai.main - INFO - Starting arch model server and arch gateway
|
||||
...
|
||||
2024-12-05 11:25:16,131 - planoai.core - INFO - Container is healthy!
|
||||
```
|
||||
|
||||
### Step 3: Interact with LLM
|
||||
|
||||
#### Step 3.1: Using OpenAI python client
|
||||
|
||||
Make outbound calls via Arch gateway
|
||||
|
||||
```python
|
||||
from openai import OpenAI
|
||||
|
||||
# Use the OpenAI client as usual
|
||||
client = OpenAI(
|
||||
# No need to set a specific openai.api_key since it's configured in Arch's gateway
|
||||
api_key = '--',
|
||||
# Set the OpenAI API base URL to the Arch gateway endpoint
|
||||
base_url = "http://127.0.0.1:12000/v1"
|
||||
)
|
||||
|
||||
response = client.chat.completions.create(
|
||||
# we select model from arch_config file
|
||||
model="None",
|
||||
messages=[{"role": "user", "content": "What is the capital of France?"}],
|
||||
)
|
||||
|
||||
print("OpenAI Response:", response.choices[0].message.content)
|
||||
|
||||
```
|
||||
|
||||
#### Step 3.2: Using curl command
|
||||
```
|
||||
$ curl --header 'Content-Type: application/json' \
|
||||
--data '{"messages": [{"role": "user","content": "What is the capital of France?"}], "model": "gpt-4o"}' \
|
||||
http://localhost:12000/v1/chat/completions
|
||||
|
||||
{
|
||||
...
|
||||
"model": "gpt-4o-2024-08-06",
|
||||
"choices": [
|
||||
{
|
||||
...
|
||||
"messages": {
|
||||
"role": "assistant",
|
||||
"content": "The capital of France is Paris.",
|
||||
},
|
||||
}
|
||||
],
|
||||
...
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
You can override model selection using `x-arch-llm-provider-hint` header. For example if you want to use mistral using following curl command,
|
||||
|
||||
```
|
||||
$ curl --header 'Content-Type: application/json' \
|
||||
--header 'x-arch-llm-provider-hint: ministral-3b' \
|
||||
--data '{"messages": [{"role": "user","content": "What is the capital of France?"}], "model": "gpt-4o"}' \
|
||||
http://localhost:12000/v1/chat/completions
|
||||
{
|
||||
...
|
||||
"model": "ministral-3b-latest",
|
||||
"choices": [
|
||||
{
|
||||
"messages": {
|
||||
"role": "assistant",
|
||||
"content": "The capital of France is Paris. It is the most populous city in France and is known for its iconic landmarks such as the Eiffel Tower, the Louvre Museum, and Notre-Dame Cathedral. Paris is also a major global center for art, fashion, gastronomy, and culture.",
|
||||
},
|
||||
...
|
||||
}
|
||||
],
|
||||
...
|
||||
}
|
||||
|
||||
```
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Travel Booking Agent Demo
|
||||
|
||||
A production-ready multi-agent travel booking system demonstrating Plano's intelligent agent routing. This demo showcases two specialized agents working together to help users plan trips with weather information and flight searches.
|
||||
A multi-agent travel booking system demonstrating Plano's intelligent agent routing and orchestration capabilities. This demo showcases two specialized agents working together to help users plan trips with weather information and flight searches. All agent interactions are fully traced with OpenTelemetry-compatible tracing for complete observability.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -9,7 +9,7 @@ This demo consists of two intelligent agents that work together seamlessly:
|
|||
- **Weather Agent** - Real-time weather conditions and multi-day forecasts for any city worldwide
|
||||
- **Flight Agent** - Live flight information between airports with real-time tracking
|
||||
|
||||
All agents use Plano's agent router to intelligently route user requests to the appropriate specialized agent based on conversation context and user intent. Both agents run as Docker containers for easy deployment.
|
||||
All agents use Plano's agent orchestration LLM to intelligently route user requests to the appropriate specialized agent based on conversation context and user intent. Both agents run as Docker containers for easy deployment.
|
||||
|
||||
## Features
|
||||
|
||||
|
|
@ -17,14 +17,17 @@ All agents use Plano's agent router to intelligently route user requests to the
|
|||
- **Conversation Context**: Agents understand follow-up questions and references
|
||||
- **Real-Time Data**: Live weather and flight data from public APIs
|
||||
- **Multi-Day Forecasts**: Weather agent supports up to 16-day forecasts
|
||||
- **LLM-Powered**: Uses GPT-4o-mini for extraction and GPT-4o for responses
|
||||
- **LLM-Powered**: Uses GPT-4o-mini for extraction and GPT-5.2 for responses
|
||||
- **Streaming Responses**: Real-time streaming for better user experience
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Docker and Docker Compose
|
||||
- [Plano CLI](https://docs.planoai.dev) installed
|
||||
- OpenAI API key
|
||||
- [Plano CLI](https://docs.planoai.dev/get_started/quickstart.html#prerequisites) installed
|
||||
- [OpenAI API key](https://platform.openai.com/api-keys)
|
||||
- [FlightAware AeroAPI key](https://www.flightaware.com/aeroapi/portal)
|
||||
|
||||
> **Note:** You'll need to obtain a FlightAware AeroAPI key for live flight data. Visit [https://www.flightaware.com/aeroapi/portal](https://www.flightaware.com/aeroapi/portal) to get your API key.
|
||||
|
||||
## Quick Start
|
||||
|
||||
|
|
@ -33,17 +36,11 @@ All agents use Plano's agent router to intelligently route user requests to the
|
|||
Create a `.env` file or export environment variables:
|
||||
|
||||
```bash
|
||||
export AEROAPI_KEY="your-flightaware-api-key" # Optional, demo key included
|
||||
export AEROAPI_KEY="your-flightaware-api-key"
|
||||
export OPENAI_API_KEY="your OpenAI api key"
|
||||
```
|
||||
|
||||
### 2. Start All Agents with Docker
|
||||
|
||||
```bash
|
||||
chmod +x start_agents.sh
|
||||
./start_agents.sh
|
||||
```
|
||||
|
||||
Or directly:
|
||||
### 2. Start All Agents & Plano with Docker
|
||||
|
||||
```bash
|
||||
docker compose up --build
|
||||
|
|
@ -52,51 +49,17 @@ docker compose up --build
|
|||
This starts:
|
||||
- Weather Agent on port 10510
|
||||
- Flight Agent on port 10520
|
||||
- AnythingLLM on port 3001
|
||||
|
||||
### 3. Start Plano Orchestrator
|
||||
|
||||
In a new terminal:
|
||||
|
||||
```bash
|
||||
cd /path/to/travel_agents
|
||||
planoai up config.yaml
|
||||
# Or if installed with uv: uvx planoai up config.yaml
|
||||
```
|
||||
|
||||
The gateway will start on port 8001 and route requests to the appropriate agents.
|
||||
- Open WebUI on port 8080
|
||||
- Plano Proxy on port 8001
|
||||
|
||||
### 4. Test the System
|
||||
|
||||
**Option 1**: Use AnythingLLM at http://localhost:3001
|
||||
Use Open WebUI at http://localhost:8080
|
||||
|
||||
**Option 2**: Send requests directly to Plano Orchestrator:
|
||||
|
||||
```bash
|
||||
curl http://localhost:8001/v1/chat/completions \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"model": "gpt-4o",
|
||||
"messages": [
|
||||
{"role": "user", "content": "What is the weather like in Paris?"}
|
||||
]
|
||||
}'
|
||||
```
|
||||
> **Note:** The Open WebUI may take a few minutes to start up and be fully ready. Please wait for the container to finish initializing before accessing the interface. Once ready, make sure to select the **gpt-5.2** model from the model dropdown menu in the UI.
|
||||
|
||||
## Example Conversations
|
||||
|
||||
### Weather Query
|
||||
```
|
||||
User: What's the weather in Istanbul?
|
||||
Assistant: [Weather Agent provides current conditions and forecast]
|
||||
```
|
||||
|
||||
### Flight Search
|
||||
```
|
||||
User: What flights go from London to Seattle?
|
||||
Assistant: [Flight Agent shows available flights with schedules and status]
|
||||
```
|
||||
|
||||
### Multi-Agent Conversation
|
||||
```
|
||||
User: What's the weather in Istanbul?
|
||||
|
|
@ -108,7 +71,7 @@ Assistant: [Flight information from Istanbul to Seattle]
|
|||
|
||||
The system understands context and pronouns, automatically routing to the right agent.
|
||||
|
||||
### Multi-Intent Queries
|
||||
### Multi-Intent Single Query
|
||||
```
|
||||
User: What's the weather in Seattle, and do any flights go direct to New York?
|
||||
Assistant: [Both weather_agent and flight_agent respond simultaneously]
|
||||
|
|
@ -116,20 +79,6 @@ Assistant: [Both weather_agent and flight_agent respond simultaneously]
|
|||
- Flight Agent: [Flight information from Seattle to New York]
|
||||
```
|
||||
|
||||
The orchestrator can select multiple agents simultaneously for queries containing multiple intents.
|
||||
|
||||
## Agent Details
|
||||
|
||||
### Weather Agent
|
||||
- **Port**: 10510
|
||||
- **API**: Open-Meteo (free, no API key)
|
||||
- **Capabilities**: Current weather, multi-day forecasts, temperature, conditions, sunrise/sunset
|
||||
|
||||
### Flight Agent
|
||||
- **Port**: 10520
|
||||
- **API**: FlightAware AeroAPI
|
||||
- **Capabilities**: Real-time flight status, schedules, delays, gates, terminals, live tracking
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
|
|
@ -138,75 +87,27 @@ The orchestrator can select multiple agents simultaneously for queries containin
|
|||
Plano (8001)
|
||||
[Orchestrator]
|
||||
|
|
||||
┌────┴────┐
|
||||
↓ ↓
|
||||
Weather Flight
|
||||
Agent Agent
|
||||
(10510) (10520)
|
||||
[Docker] [Docker]
|
||||
```
|
||||
|
||||
┌────┴──-──┐
|
||||
↓ ↓
|
||||
Weather Flight
|
||||
Agent Agent
|
||||
(10510) (10520)
|
||||
[Docker] [Docker]
|
||||
```
|
||||
|
||||
Each agent:
|
||||
1. Extracts intent using GPT-4o-mini (with OpenTelemetry tracing)
|
||||
2. Fetches real-time data from APIs
|
||||
3. Generates response using GPT-4o
|
||||
3. Generates response using GPT-5.2
|
||||
4. Streams response back to user
|
||||
|
||||
Both agents run as Docker containers and communicate with Plano via `host.docker.internal`.
|
||||
|
||||
## Project Structure
|
||||
## Observability
|
||||
|
||||
```
|
||||
travel_agents/
|
||||
├── config.yaml # Plano configuration
|
||||
├── docker-compose.yaml # Docker services orchestration
|
||||
├── Dockerfile # Multi-agent container image
|
||||
├── start_agents.sh # Quick start script
|
||||
├── pyproject.toml # Python dependencies
|
||||
└── src/
|
||||
└── travel_agents/
|
||||
├── __init__.py # CLI entry point
|
||||
├── weather_agent.py # Weather forecast agent (multi-day support)
|
||||
└── flight_agent.py # Flight information agent
|
||||
```
|
||||
This demo includes full OpenTelemetry (OTel) compatible distributed tracing to monitor and debug agent interactions:
|
||||
The tracing data provides complete visibility into the multi-agent system, making it easy to identify bottlenecks, debug issues, and optimize performance.
|
||||
|
||||
## Configuration Files
|
||||
For more details on setting up and using tracing, see the [Plano Observability documentation](https://docs.planoai.dev/guides/observability/tracing.html).
|
||||
|
||||
### config.yaml
|
||||
|
||||
Defines the two agents, their descriptions, and routing configuration. The agent router uses these descriptions to intelligently route requests.
|
||||
|
||||
### docker-compose.yaml
|
||||
|
||||
Orchestrates the deployment of:
|
||||
- Weather Agent (builds from Dockerfile)
|
||||
- Flight Agent (builds from Dockerfile)
|
||||
- AnythingLLM (for testing)
|
||||
- Jaeger (for distributed tracing)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**Docker containers won't start**
|
||||
- Verify Docker and Docker Compose are installed
|
||||
- Check that ports 10510, 10520, 3001 are available
|
||||
- Review container logs: `docker compose logs weather-agent` or `docker compose logs flight-agent`
|
||||
|
||||
**Plano won't start**
|
||||
- Verify Plano is installed: `plano --version`
|
||||
- Ensure you're in the travel_agents directory
|
||||
- Check config.yaml is valid
|
||||
|
||||
**No response from agents**
|
||||
- Verify all containers are running: `docker compose ps`
|
||||
- Check that Plano is running on port 8001
|
||||
- Review agent logs: `docker compose logs -f`
|
||||
- Verify `host.docker.internal` resolves correctly (should point to host machine)
|
||||
|
||||
## API Endpoints
|
||||
|
||||
All agents expose OpenAI-compatible chat completion endpoints:
|
||||
|
||||
- `POST /v1/chat/completions` - Chat completion endpoint
|
||||
- `GET /health` - Health check endpoint
|
||||

|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ agents:
|
|||
url: http://host.docker.internal:10520
|
||||
|
||||
model_providers:
|
||||
- model: openai/gpt-4o
|
||||
- model: openai/gpt-5.2
|
||||
access_key: $OPENAI_API_KEY
|
||||
default: true
|
||||
- model: openai/gpt-4o-mini
|
||||
|
|
|
|||
|
|
@ -40,20 +40,19 @@ services:
|
|||
command: ["uv", "run", "python", "src/travel_agents/flight_agent.py"]
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
anythingllm:
|
||||
image: mintplexlabs/anythingllm
|
||||
open-web-ui:
|
||||
image: dyrnq/open-webui:main
|
||||
restart: always
|
||||
ports:
|
||||
- "3001:3001"
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
- "8080:8080"
|
||||
environment:
|
||||
- STORAGE_DIR=/app/server/storage
|
||||
- LLM_PROVIDER=generic-openai
|
||||
- GENERIC_OPEN_AI_BASE_PATH=http://plano:8001/v1
|
||||
- GENERIC_OPEN_AI_MODEL_PREF=gpt-4o-mini
|
||||
- GENERIC_OPEN_AI_MODEL_TOKEN_LIMIT=128000
|
||||
- GENERIC_OPEN_AI_API_KEY=sk-placeholder
|
||||
- DEFAULT_MODEL=gpt-4o-mini
|
||||
- ENABLE_OPENAI_API=true
|
||||
- OPENAI_API_BASE_URL=http://host.docker.internal:8001/v1
|
||||
- ENABLE_FOLLOW_UP_GENERATION=false
|
||||
- ENABLE_TITLE_GENERATION=false
|
||||
- ENABLE_TAGS_GENERATION=false
|
||||
- ENABLE_AUTOCOMPLETE_GENERATION=false
|
||||
depends_on:
|
||||
- weather-agent
|
||||
- flight-agent
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ logger = logging.getLogger(__name__)
|
|||
LLM_GATEWAY_ENDPOINT = os.getenv(
|
||||
"LLM_GATEWAY_ENDPOINT", "http://host.docker.internal:12000/v1"
|
||||
)
|
||||
FLIGHT_MODEL = "openai/gpt-4o"
|
||||
FLIGHT_MODEL = "openai/gpt-5.2"
|
||||
EXTRACTION_MODEL = "openai/gpt-4o-mini"
|
||||
|
||||
AEROAPI_BASE_URL = "https://aeroapi.flightaware.com/aeroapi"
|
||||
|
|
@ -82,7 +82,7 @@ async def extract_flight_route(messages: list, request: Request) -> dict:
|
|||
],
|
||||
],
|
||||
temperature=0.1,
|
||||
max_tokens=100,
|
||||
max_completion_tokens=100,
|
||||
extra_headers=extra_headers or None,
|
||||
)
|
||||
|
||||
|
|
@ -124,7 +124,7 @@ async def resolve_airport_code(city_name: str, request: Request) -> Optional[str
|
|||
{"role": "user", "content": city_name},
|
||||
],
|
||||
temperature=0.1,
|
||||
max_tokens=10,
|
||||
max_completion_tokens=10,
|
||||
extra_headers=extra_headers or None,
|
||||
)
|
||||
|
||||
|
|
@ -355,7 +355,7 @@ Ask the user to check the city name or provide a different city."""
|
|||
model=FLIGHT_MODEL,
|
||||
messages=response_messages,
|
||||
temperature=request_body.get("temperature", 0.7),
|
||||
max_tokens=request_body.get("max_tokens", 1000),
|
||||
max_completion_tokens=request_body.get("max_tokens", 3000),
|
||||
stream=True,
|
||||
extra_headers=extra_headers,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ logger = logging.getLogger(__name__)
|
|||
LLM_GATEWAY_ENDPOINT = os.getenv(
|
||||
"LLM_GATEWAY_ENDPOINT", "http://host.docker.internal:12001/v1"
|
||||
)
|
||||
WEATHER_MODEL = "openai/gpt-4o"
|
||||
WEATHER_MODEL = "openai/gpt-5.2"
|
||||
LOCATION_MODEL = "openai/gpt-4o-mini"
|
||||
|
||||
# Initialize OpenAI client for plano
|
||||
|
|
@ -117,7 +117,7 @@ If no city can be found, output: NOT_FOUND"""
|
|||
],
|
||||
],
|
||||
temperature=0.1,
|
||||
max_tokens=10,
|
||||
max_completion_tokens=10,
|
||||
extra_headers=extra_headers if extra_headers else None,
|
||||
)
|
||||
|
||||
|
|
@ -372,7 +372,7 @@ Present the weather information to the user in a clear, readable format. If ther
|
|||
model=WEATHER_MODEL,
|
||||
messages=response_messages,
|
||||
temperature=request_body.get("temperature", 0.7),
|
||||
max_tokens=request_body.get("max_tokens", 1000),
|
||||
max_completion_tokens=request_body.get("max_tokens", 3000),
|
||||
stream=True,
|
||||
extra_headers=extra_headers,
|
||||
)
|
||||
|
|
|
|||
BIN
demos/use_cases/travel_agents/tracing.png
Normal file
BIN
demos/use_cases/travel_agents/tracing.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3 MiB |
Loading…
Add table
Add a link
Reference in a new issue