Simple view
Full metadata view
Authors
Statistics
Aplikacja wspomagająca tworzenie serwerów urządzeń w środowisku Tango Controls
Application supporting the creation of device servers in the Tango Controls system
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.
Tango Controls, Large Language Models, LLM, Code generation, PyTango, Retrieval-Augmented Generation, RAG, Prompt engineering, Web application, Embeddings, Vector databases, LangChain, Automation
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.
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.en | 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. | pl |
dc.abstract.pl | 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. | pl |
dc.affiliation | Uniwersytet Jagielloński w Krakowie | pl |
dc.contributor.advisor | Białas, Piotr - 127296 | pl |
dc.contributor.author | Klimczyk, Krzysztof - USOS322179 | pl |
dc.contributor.departmentbycode | UJK/UJK | pl |
dc.contributor.reviewer | Białas, Piotr - 127296 | pl |
dc.contributor.reviewer | Witaszczyk, Przemysław - 173687 | pl |
dc.date.accessioned | 2024-11-25T00:55:21Z | |
dc.date.available | 2024-11-25T00:55:21Z | |
dc.date.submitted | 2024-10-18 | pl |
dc.fieldofstudy | informatyka stosowana | pl |
dc.identifier.apd | diploma-178508-322179 | pl |
dc.identifier.uri | https://ruj.uj.edu.pl/handle/item/477215 | |
dc.language | pol | pl |
dc.subject.en | Tango Controls, Large Language Models, LLM, Code generation, PyTango, Retrieval-Augmented Generation, RAG, Prompt engineering, Web application, Embeddings, Vector databases, LangChain, Automation | pl |
dc.subject.pl | 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. | pl |
dc.title | Aplikacja wspomagająca tworzenie serwerów urządzeń w środowisku Tango Controls | pl |
dc.title.alternative | Application supporting the creation of device servers in the Tango Controls system | pl |
dc.type | master | pl |
dspace.entity.type | Publication |