Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

DECO3801/7381 TeamAssessment Declaration CoverSheet

The use of the following is permitted on this course only with full disclosure of how it was used and with proper attribution, you must make clear what is your teams and/or your own work:

— Open-source code and libraries (excluding previous DECO projects).

— Open data sets.

— Royalty free, free to use icons, images.

— Use of generative AI code generation tools such as Copilot and others.

— Use of generative AI tools such as ChatGPT to assist with essay writing (but only with a complete list of the prompts used).

— Use of AI grammar checkers.

Please confirm each statement by ticking the boxes before signing the bottom of this sheet. Where required provide further information in the space provided or attached on blank pages. Please note that if a team member does not agree and

doesn’t sign off on the final submission of the assessment item, they must attach a statement explaining their reasons.

We declare that:

1.   All team members confirm and acknowledge they have signed off on the submission of this work. Each team member agrees that:

a.   The work submitted accurate represents the work of the team.

b.   Changes to the final submission have not been made without approval from the entire team.

2.   This work, except where otherwise indicated and fully attributed, is our own original work.

3.   This work has not been submitted for any degree or examination at any other university and/or for any other course at UQ (except where explicitly permitted).

4.   Third party material – code/data/tutorials/work

a.   This work does not contain any other persons’ work, open-source work, and/or generative artificial intelligence code, data, images, graphs, tables, or any other information.

b.   This work does contain work inspired by, drawn from, copied from, derived from (or similar)

other persons’ work, open-source work, and/or generative artificial intelligence (Gen-AI) code, data, images, graphs, tables, or any other information. Such instances have been indicated

below AND are appropriately disclosed and attributed in place where the work occurs (in-text citations, reference list, code comments/braces, etc). For Gen-AI, such as ChatGPT,

acknowledge below and include the full set of prompts and responses within the appendix.

5.   Third party material - writing

a.   This work does not contain other persons’ and/or Gen-AI writing.

b.   This work does contain other persons’ writing and their words have been re-written, but the  general information has been attributed and referenced to them as an in-text citation and in the reference list.

c.   This work does contain other persons’ writing and their exact words have been used within    quotation marks and has been attributed and referenced to them as an in-text citation and in the reference list.

d.   This work does contain Gen-AI work (with or without modification). Gen-AI has been used to aid writing. The sections it has been used in are listed below. Include the full set of prompts  and responses within the appendix.

e.   This work has not been refined, revised, translated, transformed, or similar by any AI tool.

f.    This work has been refined, revised, translated, transformed, or similar by any AI tool. The tools and description of use are listed below.

Team skills

Anniken has experience with software and web development through several projects and an internship, using React + Typescript in frontend and Java/Springboot in backend. She has experience with data modelling and databases (have    used SQLite, MySQL and Firebase). She also has had two courses introducing some AI concepts and a course on

Machine Learning. She knows how to set up a code base in GitHub and how to collaborate using Git.

Johanne has experience with software and web development, through several project courses, a volunteer web

developer role and an internship. She has mainly used React with Typescript in frontend and Java/Springboot in

backend and has experience with coding in team using Git. She also has some experience with databases (SQLite,

MySQL, Firebase), and a tiny bit of experience with AI from an internship this summer. She did mostly frontend but gained some insight into fine-tuning LLMs and using RAG with a vector database.

Samuel has experience with software development through coursework. He has primarily worked with Python, Java and C, as well as HTML, CSS and JavaScript through a web development course. Furthermore, he has some

experience with databases (Django) and is currently learning about React in a course.

Ihsan is currently studying Bachelor of Computer Science and has experience with software and web development and data analytics. He mainly works with python and has experience working with database (MySQL). He has experience  using GitHub as a codebase sharing and collaboration platform. He has experience using framework like Laravel and    Golang. He has a small experience in C, Java, CSS, HTML, and a bit more in C++.

Jiani is an IT student with prior experience in web design. Her core skills include Narrative Design, Front-End Web

Design (using HTML, CSS, and JavaScript), and Interaction Design. In this project, she plans to focus on shaping the overall storyline, designing a nostalgic yet functional web interface, and creating intuitive user experiences. Jiani also possesses supporting skills in MySQL, which she can use to assist her teammates in database structuring and data

management.

Zeyu is a Bachelor of Information Technology student, has experience with web development covering frontend

backend and database integration. Skilled in server-side development using Node.js. Experienced with frameworks such as Django and Next.js. In this project he is mainly working on backend development.

Team skills that need developing

Anniken and Johanne will mainly be working on the AI part of the project, since they have some AI experience. They need to learn how to set up a RAG pipeline with a vector database and an embedding model, compare different LLMs and fine tune an LLM. They plan on doing this by usingthis tutorialas a starting point and then expand it, by trying    and failing, to make it fit our solution. They will usethis fine tuning tutorialfor learning how to fine tune an LLM.

Ihsan will primarily be improving his JavaScript and React skill through Web/Mobile Programming course that he is currently taking. He is planning to relearn and enhance on his Git controls.

Samuel, Zeyu and Jiani currently lack the skills in Git to effectively collaborate within the team codebase. Their primary mode of learning will be through the Introduction to Version Control with Gittutorial.

1 Introduction

Our  interpretation  of the  assignment  is  to  create  a  single  player/multiplayer  narrative  simulator  with  game-like mechanics. The simulator encourages the player(s) to roleplay the responses of society set 50 years in the future which has recently experienced advances in neurotechnology. Yearly events, inspired by a combination of science fiction, current neurotechnology research, and HCI principles, will influence societal opinions.

The aim of the assignment is to introduce our users to the dangers of future neurotechnology. We are aiming our solution at what we see as “naive” users, in the sense that they do not understand how future neurotechnology can be manipulated, and our aim is to show how memories can be abused, and its impact on society.

2 Prototype development plan

We plan for the prototype to be a web-based simulator that uses a LLM and RAG pipelines to generate scenarios based on science fiction, technological forecasts and research on neuroscience. To realise the prototype, we need a frontend interface, a backend system, a database with data management, support for multiplayer functionality and integration for generative AI, generative art and audio.

For the frontend, we will be using HTML, CSS, JavaScript and the React framework to create an interface, with a screen that presents the scenarios and decision options to the user. The first events will be hardcoded into the solution, before integrating AI-generated scenarios later in the development. We assume two team members will be needed to work on this part of the project. We assume that the application is viewed in a modern web browser such as Chrome, Microsoft Edge, Firefox or Safari, and that users have access to a desktop or tablet with a 13-inch screen.

The backend will be developed in Python using the Django framework. The API endpoints developed here act as the communication layer between the front end, Firestore, and the generative AI. We expect two team members to focus on the backend, starting with server setup and API development, before integrating AI and multiplayer functionality in future work.

For the database and data management, we will be using Firebase Firestore to store user session data, decision histories and the branching storylines. We assume the two people working with backend will be responsible for this part as well.

The narrative events will be generated using a LLM from Hugging Face. We will investigate and compare different models based on speed, creativity and usability. We will also use a RAG pipeline to ensure the scenarios remain both imaginative and research informed. This requires an embedding model, which we will select from Hugging Face, and a vector database to store the embeddings. We plan on using Chroma for the vector database. We will create both music and images by using models from Hugging Face. To generate images, we will be using Stable Diffusion based on the current scenario. We plan on giving the LLM several different prompts. Right now we are thinking about having 9 prompts: One defining the system rules and settings, one scenario writer/creator, one choice maker (we will make 3 choices for each event), one RAG helper, one consistency keeper, one outcome and state updater that will determine what happens next, an image prompt builder that will create a Stable Diffusion prompt, an audio prompt builder and an orchestrator that will help orchestrate everything. Two team members will be focusing on this part. We plan on using Low-Rank Adaptation (LoRA), so we can focus on a small set of parameters at a time while fine-tuning, instead of the whole model. Since we have limited computing capacity, this is especially useful.

We assume the two first weeks will be dedicated to obtaining skills regarding LLMs and RAG, as well as start doing research on different LLMs and finding sources and data that can be used for creating the scenarios. Then we will start fine tuning the chosen LLM and integrate it into the system. The fine tuning will continue iteratively throughout the project to improve quality of the generated scenarios.

For the multiplayer functionality, we will make a lobby, where users can generate a code for others to join their

session. The participants will then collectively agree on what choice to make. They may discuss their thoughts through a chat which we will implement in our solution. We will use Firebase for authentication and storing of codes and

messages.

We will test the application iteratively. In the early milestones we will perform basic functional testing to make sure the core user flow works as expected. In the later milestones we will add unit tests for the backend APIs and

component and snapshot tests for the frontend.

We plan on setting up a repository on GitHub containing the whole code base and use the GitHub issue board for

managing task allocation. We are planning on using a cloud-based platform (probably AWS) for training the LLM and using UQ Cloud zones for hosting the web application.

We have not found any APIs that will benefit us yet, so for now we are not planning on using any external APIs.

3 Team Collaboration Plan

We plan to use Microsoft Teams for file sharing, and a Discord group chat for inter-team communication.

Our expectations are as follows:

•    Timeliness – teammates are expected to attend meetings on time and notify the group through the chat if they aren’t able to.

•    If teammates cannot make it to the meeting due to clashes with other priorities, but are willing to contribute, they are expected to notify the group through the chat as such.

•    Teammates are encouraged to complete their assigned tasks on time and are also encouraged to ask for help if they find that they struggle with their assigned tasks.

•    Meetings will occur twice a week – Monday 10am – 12pm and Wednesday 12 – 2pm.