Aplikacja wspomagająca tworzenie serwerów urządzeń w środowisku Tango Controls

master
dc.abstract.enThis thesis presents an application that assists in creating device servers in the Tango Controls environment using Large Language Models (LLMs). The main objective is to automate the process of generating device server code, aiming to accelerate and simplify programmers' work. The application consists of a user interface and a backend. The interface allows for inputting device data such as attributes, commands, device properties, communication protocol, as well as uploading device documentation that will be used to generate detailed method implementations. The backend processes this information and generates device server code using a selected LLM (GPT, Claude, or Gemini). The thesis discusses the system architecture, utilized technologies (including LangChain), and the code generation process. Special attention is given to the Retrieval-Augmented Generation (RAG) technique, which enables the use of device documentation to improve the quality of generated code. Tests were conducted on various cases, including simple devices without documentation and more complex ones with documentation. The results show that LLMs are capable of generating functional code, but there are differences between models in terms of accuracy and creativity. Conclusions from the work indicate the potential of using LLMs in automating device server creation, while emphasizing the need for precise instruction formulation and verification of generated code. Directions for further application development are also proposed, such as a test code generator and extended support for other programming languages.pl
dc.abstract.plPraca przedstawia aplikację wspomagającą tworzenie serwerów urządzeń w środowisku Tango Controls z wykorzystaniem modeli językowych (LLM). Głównym celem jest automatyzacja procesu generowania kodu serwerów urządzeń, co ma przyspieszyć i ułatwić pracę programistów. Aplikacja składa się z interfejsu użytkownika i backendu. Interfejs umożliwia wprowadzanie danych o urządzeniu, takich jak atrybuty, komendy, właściwości, protokół komunikacyjny, a także przesłanie dokumentacji urządzenia, która zostanie wykorzystana do wygenerowania szczegółowej implementacji metod. Backend przetwarza te informacje i generuje kod serwera urządzenia przy użyciu wybranego modelu LLM (GPT, Claude lub Gemini). W pracy omówiono architekturę systemu, wykorzystane technologie (m.in. LangChain) oraz proces generowania kodu. Szczególną uwagę poświęcono technice Retrieval-Augmented Generation (RAG), która pozwala na wykorzystanie dokumentacji urządzenia do poprawy jakości generowanego kodu. Przeprowadzono testy na różnych przypadkach, w tym prostych urządzeniach bez dokumentacji oraz bardziej złożonych z dokumentacją. Wyniki pokazują, że modele LLM są w stanie generować funkcjonalny kod, ale występują różnice między modelami w zakresie dokładności i kreatywności. Wnioski z pracy wskazują na potencjał wykorzystania LLM w automatyzacji tworzenia serwerów urządzeń, jednocześnie podkreślając potrzebę precyzyjnego formułowania instrukcji i weryfikacji wygenerowanego kodu. Zaproponowano również kierunki dalszego rozwoju aplikacji, takie jak generator kodu testującego czy rozszerzenie wsparcia dla innych języków programowania.pl
dc.affiliationUniwersytet Jagielloński w Krakowiepl
dc.contributor.advisorBiałas, Piotr - 127296 pl
dc.contributor.authorKlimczyk, Krzysztof - USOS322179 pl
dc.contributor.departmentbycodeUJK/UJKpl
dc.contributor.reviewerBiałas, Piotr - 127296 pl
dc.contributor.reviewerWitaszczyk, Przemysław - 173687 pl
dc.date.accessioned2024-11-25T00:55:21Z
dc.date.available2024-11-25T00:55:21Z
dc.date.submitted2024-10-18pl
dc.fieldofstudyinformatyka stosowanapl
dc.identifier.apddiploma-178508-322179pl
dc.identifier.urihttps://ruj.uj.edu.pl/handle/item/477215
dc.languagepolpl
dc.subject.enTango Controls, Large Language Models, LLM, Code generation, PyTango, Retrieval-Augmented Generation, RAG, Prompt engineering, Web application, Embeddings, Vector databases, LangChain, Automationpl
dc.subject.plTango Controls, Duże modele językowe, LLM, Generowanie kodu, PyTango, Retrieval-Augmented Generation, RAG, Inżynieria podpowiedzi, Aplikacja internetowa, Osadzenia, Bazy wektorowe, LangChain, Automatyzacja.pl
dc.titleAplikacja wspomagająca tworzenie serwerów urządzeń w środowisku Tango Controlspl
dc.title.alternativeApplication supporting the creation of device servers in the Tango Controls systempl
dc.typemasterpl
dspace.entity.typePublication
dc.abstract.enpl
This thesis presents an application that assists in creating device servers in the Tango Controls environment using Large Language Models (LLMs). The main objective is to automate the process of generating device server code, aiming to accelerate and simplify programmers' work. The application consists of a user interface and a backend. The interface allows for inputting device data such as attributes, commands, device properties, communication protocol, as well as uploading device documentation that will be used to generate detailed method implementations. The backend processes this information and generates device server code using a selected LLM (GPT, Claude, or Gemini). The thesis discusses the system architecture, utilized technologies (including LangChain), and the code generation process. Special attention is given to the Retrieval-Augmented Generation (RAG) technique, which enables the use of device documentation to improve the quality of generated code. Tests were conducted on various cases, including simple devices without documentation and more complex ones with documentation. The results show that LLMs are capable of generating functional code, but there are differences between models in terms of accuracy and creativity. Conclusions from the work indicate the potential of using LLMs in automating device server creation, while emphasizing the need for precise instruction formulation and verification of generated code. Directions for further application development are also proposed, such as a test code generator and extended support for other programming languages.
dc.abstract.plpl
Praca przedstawia aplikację wspomagającą tworzenie serwerów urządzeń w środowisku Tango Controls z wykorzystaniem modeli językowych (LLM). Głównym celem jest automatyzacja procesu generowania kodu serwerów urządzeń, co ma przyspieszyć i ułatwić pracę programistów. Aplikacja składa się z interfejsu użytkownika i backendu. Interfejs umożliwia wprowadzanie danych o urządzeniu, takich jak atrybuty, komendy, właściwości, protokół komunikacyjny, a także przesłanie dokumentacji urządzenia, która zostanie wykorzystana do wygenerowania szczegółowej implementacji metod. Backend przetwarza te informacje i generuje kod serwera urządzenia przy użyciu wybranego modelu LLM (GPT, Claude lub Gemini). W pracy omówiono architekturę systemu, wykorzystane technologie (m.in. LangChain) oraz proces generowania kodu. Szczególną uwagę poświęcono technice Retrieval-Augmented Generation (RAG), która pozwala na wykorzystanie dokumentacji urządzenia do poprawy jakości generowanego kodu. Przeprowadzono testy na różnych przypadkach, w tym prostych urządzeniach bez dokumentacji oraz bardziej złożonych z dokumentacją. Wyniki pokazują, że modele LLM są w stanie generować funkcjonalny kod, ale występują różnice między modelami w zakresie dokładności i kreatywności. Wnioski z pracy wskazują na potencjał wykorzystania LLM w automatyzacji tworzenia serwerów urządzeń, jednocześnie podkreślając potrzebę precyzyjnego formułowania instrukcji i weryfikacji wygenerowanego kodu. Zaproponowano również kierunki dalszego rozwoju aplikacji, takie jak generator kodu testującego czy rozszerzenie wsparcia dla innych języków programowania.
dc.affiliationpl
Uniwersytet Jagielloński w Krakowie
dc.contributor.advisorpl
Białas, Piotr - 127296
dc.contributor.authorpl
Klimczyk, Krzysztof - USOS322179
dc.contributor.departmentbycodepl
UJK/UJK
dc.contributor.reviewerpl
Białas, Piotr - 127296
dc.contributor.reviewerpl
Witaszczyk, Przemysław - 173687
dc.date.accessioned
2024-11-25T00:55:21Z
dc.date.available
2024-11-25T00:55:21Z
dc.date.submittedpl
2024-10-18
dc.fieldofstudypl
informatyka stosowana
dc.identifier.apdpl
diploma-178508-322179
dc.identifier.uri
https://ruj.uj.edu.pl/handle/item/477215
dc.languagepl
pol
dc.subject.enpl
Tango Controls, Large Language Models, LLM, Code generation, PyTango, Retrieval-Augmented Generation, RAG, Prompt engineering, Web application, Embeddings, Vector databases, LangChain, Automation
dc.subject.plpl
Tango Controls, Duże modele językowe, LLM, Generowanie kodu, PyTango, Retrieval-Augmented Generation, RAG, Inżynieria podpowiedzi, Aplikacja internetowa, Osadzenia, Bazy wektorowe, LangChain, Automatyzacja.
dc.titlepl
Aplikacja wspomagająca tworzenie serwerów urządzeń w środowisku Tango Controls
dc.title.alternativepl
Application supporting the creation of device servers in the Tango Controls system
dc.typepl
master
dspace.entity.type
Publication
Affiliations

* The migration of download and view statistics prior to the date of April 8, 2024 is in progress.

Views
38
Views per month
Views per city
Krakow
9
Gdansk
3
Lodz
3
Poznan
3
Warsaw
2
Wroclaw
2
Bialystok
1
Bieruń
1
Bochnia
1
Chojnów
1

No access

No Thumbnail Available
Collections