You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 satır
4.0KB

  1. <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
  3. xmlns:viewmodels="clr-namespace:MaUI"
  4. x:Class="MaUI.ChatRoomPage"
  5. BackgroundColor="#FFF0F0F0">
  6. <ContentPage.BindingContext>
  7. <viewmodels:ChatRoom_VM />
  8. </ContentPage.BindingContext>
  9. <Grid RowDefinitions="Auto,*">
  10. <!-- Barre supérieure -->
  11. <HorizontalStackLayout Padding="10" Spacing="20">
  12. <Button Text="🗑" WidthRequest="74" Command="{Binding DeleteConversationCommand}" />
  13. <Button Text="Nouvelle conversation" WidthRequest="138" Command="{Binding NewConversationCommand}" />
  14. <Picker ItemsSource="{Binding InstalledModels}"
  15. ItemDisplayBinding="{Binding Name}"
  16. SelectedItem="{Binding SelectedModel}" WidthRequest="300" />
  17. </HorizontalStackLayout>
  18. <!-- Contenu principal -->
  19. <Grid Row="1" ColumnDefinitions="200,*" Padding="5">
  20. <!-- Colonne gauche -->
  21. <VerticalStackLayout>
  22. <CollectionView ItemsSource="{Binding Conversations}" SelectionMode="Single"
  23. SelectedItem="{Binding SelectedConversation}">
  24. <CollectionView.ItemTemplate>
  25. <DataTemplate>
  26. <Label Text="{Binding Title}" />
  27. </DataTemplate>
  28. </CollectionView.ItemTemplate>
  29. </CollectionView>
  30. <Button Text="Ajout de documents" Command="{Binding AddDocumentsCommand}" />
  31. <CollectionView ItemsSource="{Binding SelectedDocumentsListe}" />
  32. <Button Text="🗑" Command="{Binding ClearDocumentsCommand}" />
  33. </VerticalStackLayout>
  34. <!-- Colonne droite : chat -->
  35. <Grid Grid.Column="1" RowDefinitions="*,Auto">
  36. <!-- Historique -->
  37. <ScrollView>
  38. <VerticalStackLayout BindableLayout.ItemsSource="{Binding CurrentMessages}">
  39. <BindableLayout.ItemTemplate>
  40. <DataTemplate>
  41. <Frame Padding="10" CornerRadius="10" Margin="5"
  42. BackgroundColor="{Binding Role, Converter={StaticResource RoleToColorConverter}}">
  43. <Label Text="{Binding Content}" LineBreakMode="WordWrap" />
  44. </Frame>
  45. </DataTemplate>
  46. </BindableLayout.ItemTemplate>
  47. </VerticalStackLayout>
  48. </ScrollView>
  49. <!-- Saisie -->
  50. <VerticalStackLayout Grid.Row="1" Padding="5">
  51. <Editor Text="{Binding NewMessage}" AutoSize="TextChanges" HeightRequest="70" />
  52. <HorizontalStackLayout Spacing="10">
  53. <CheckBox IsChecked="{Binding IsApiExterne}" />
  54. <Label Text="API Externe" VerticalOptions="Center" />
  55. </HorizontalStackLayout>
  56. <HorizontalStackLayout Spacing="10">
  57. <CheckBox IsChecked="{Binding IsRAG}" />
  58. <Label Text="RAG ?" VerticalOptions="Center" />
  59. </HorizontalStackLayout>
  60. <HorizontalStackLayout Spacing="10">
  61. <CheckBox IsChecked="{Binding IsGenerateImg}" />
  62. <Label Text="Générer une image ?" VerticalOptions="Center" />
  63. </HorizontalStackLayout>
  64. <HorizontalStackLayout Spacing="10">
  65. <CheckBox IsChecked="{Binding IsWithAssistant}" />
  66. <Label Text="Assistant IA ?" VerticalOptions="Center" />
  67. </HorizontalStackLayout>
  68. <Button Text="Envoyer" Command="{Binding SendMessageCommand}" />
  69. </VerticalStackLayout>
  70. </Grid>
  71. </Grid>
  72. </Grid>
  73. </ContentPage>