Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Store Chats Alongside Database

Context and Problem Statement

Chats with AI should be stored somewhere. But where and how?

Considered Options

  • Inside .bib file
  • In local user folder
  • Alongside .bib file

Decision Drivers

  • Should work when shared with OneDrive, Dropbox or similar asynchronous services
  • Should work on network drives
  • Should be “easy” for users to follow
  • Should be the same in a shared and non-shared setting (e.g., if Dropbox is used or not should make a difference)

Decision Outcome

Chosen option: “In local user folder”, because it’s very hard to work with a shared library, if two users will work simultaneously on one library, then AI chats file will be absolutely arbitrary and unmergable.

Pros and Cons of the Options

Inside .bib file

  • Good, because we already have a machinery for managing the fields and other information of BIB entries
  • Good, because chats are stored inside one file, and if the .bib file is moved, the chat history is preserved
  • Bad, because there may be lots of chats and messages and .bib file become too cluttered and too big which slows down the processing of .bib file
  • Bad, because if user shares a .bib file, they will also share chat messages, but chats are not ideal, so user may not want to share them

In local user folder

One can use %APPDATA%, where JabRef stores the Lucene index and other information. See org.jabref.gui.desktop.os.NativeDesktop#getFulltextIndexBaseDirectory for use in JabRef and https://github.com/harawata/appdirs for general information.

Concrete example for backup folder: C:\Users\${username}\AppData\Local\org.jabref\jabref\backups. Example filename: 4a070cf3--Chocolate.bib--2024-03-25--14.20.12.bak.

  • Good, because .bib file is kept clean
  • Good, because chat messages are saved locally
  • Neutral, because may be a little harder to implement
  • Bad, because chat messages cannot be easily shared
  • Bad, because when path of a .bib file is changed, the chats are lost

Alongside .bib file

  • Good, because simple implementation
  • Good, because, the user can send the chats file alongside the .bib file if they want to share the chats. If users do not want to share the messages, then they can omit the chats file
  • Good, because .bib files is kept clean
  • Bad, because user may not expect that a new file will be created alongside their .bib (or other LaTeX-related) files
  • Bad, because, it may be not convenient to share both files (.bib file and chats file) in order to share chat history.
  • Bad, because if .bib files are edited externally (meaning, not inside the JabRef), then chats file will not be updated correspondingly
  • Bad, because if user moves .bib file, they should move the chats file too
  • Bad, because if two persons work in parallel using a OneDrive share, the file is overwritten or a conflict file is generated. (Dropbox “conflicted copy”)