|
11 | 11 |
|
12 | 12 | ## Description
|
13 | 13 |
|
14 |
| -During my Google Summer of Code (GSoC) project, I was working on enhancing JabRef with AI features to assist researchers in their work. Given the current popularity of AI technologies, my mentors and I aimed to integrate LLMs that would analyze research papers, similar to features seen on many other AI platforms. |
| 14 | +During my Google Summer of Code (GSoC) project, I was working on enhancing JabRef with AI features to assist researchers in their work. |
| 15 | +Given the current popularity of AI technologies, my mentors and I aimed to integrate LLMs that would analyze research papers, similar to features seen on many other AI platforms. |
15 | 16 |
|
16 | 17 | To achieve this, the project introduced three core AI features:
|
17 | 18 |
|
18 | 19 | - **Chatting with Library Entries**. This feature allows users to interact with their library entries through a chat interface. Users can ask questions about specific papers, and the AI will provide relevant answers, making it easier to find information without manually searching through the text.
|
19 | 20 | - **Generating Summaries**. The summarization feature provides a concise overview of research papers. This helps researchers quickly understand the content of a paper before deciding whether to read it in full, saving time and effort.
|
20 | 21 | - **Supporting Multiple AI Providers**. To ensure flexibility and robustness, I integrated support for multiple AI providers. This allows users to choose the AI model that best suits their needs and preferences.
|
21 | 22 |
|
22 |
| -The implementation was primarily done in Java using JavaFX, with the integration of the langchain4j library (a Java counterpart to the Python-based LangChain). However, there were instances where langchain4j was not sufficient for our needs. In such cases, we employed various other libraries to ensure the functionality and performance of the AI features. |
| 23 | +The implementation was primarily done in Java using JavaFX, with the integration of the langchain4j library (a Java counterpart to the Python-based LangChain). |
| 24 | + |
| 25 | +The AI features developed in this project have the potential to significantly improve the workflow of researchers by providing them with an AI assistant capable of answering questions and generating summaries. This not only saves time but also enhances the overall research process. |
| 26 | + |
| 27 | +## Challenges and important things you learned during the project |
| 28 | + |
| 29 | +There were many challanges during the development of this project, and I developed a lot of skills and knowledge by overcoming them: |
| 30 | +- [langchain4j was not easily usable in the JabRef development]((https://github.com/langchain4j/langchain4j/issues/1066)) due to JabRef making use of JDK's modularization features. However, with the [0.33 release](https://github.com/langchain4j/langchain4j/releases/tag/0.33.0) the problem was solved. Nevertheless, I learned a lot about Java build systems, when we were trying to develop JabRef with older versions of langchain4j. |
| 31 | +- At the beginning, it was not possible to debug JabRef on Windows, because the command line generated by gradle grew too large. This issue is related to previous one with split packages. Patching modules introduced a lot of CLI arguments, so Windows couldn't handle them properly. |
| 32 | +- There were instances where langchain4j was not sufficient for our needs. In such cases, we employed various other libraries to ensure the functionality and performance of the AI features. |
| 33 | +- On the frontend side, there is a long standing issue in JavaFX about [Text of labels should be selectable/copyable](https://bugs.openjdk.org/browse/JDK-8091644). This severely affects how we develop chat UI, because, on one hand, users need a comfortable UI (which can be made with `Label` or `Text` element), but, on the other hand, users will want a copy feature (which is only available in `TextField` or `TextArea` components). [We still have many issues with the chat UI and scrolling down the messsages](https://github.com/InAnYan/jabref/issues/172). |
23 | 34 |
|
24 | 35 | Initially, understanding the existing code base and integrating JavaFX and other libraries was challenging. However, with time and guidance from mentors, I became more proficient. Integrating AI features into the existing application required overcoming numerous bugs and architectural challenges. Most issues were resolved, but there is still work to be done. We faced limitations with available AI libraries for Java, particularly with langchain4j. These issues required additional time and effort to resolve.
|
25 | 36 |
|
26 | 37 | Throughout the development process, I gained valuable insights into software engineering. I identified and fixed several small bugs in the original JabRef codebase and discovered many bugs in other libraries. These experiences have significantly enhanced my problem-solving skills and, especially, understanding of AI integration in software applications.
|
27 | 38 |
|
28 |
| -The AI features developed in this project have the potential to significantly improve the workflow of researchers by providing them with an AI assistant capable of answering questions and generating summaries. This not only saves time but also enhances the overall research process. |
29 |
| - |
30 | 39 | ## Work done
|
31 | 40 |
|
32 | 41 | **Privacy notice**:
|
|
0 commit comments