├── docker-webhook
├── .example.env
├── docker-compose.yml
└── webhook
│ └── webhook.ts
├── banner.png
├── static
├── intro.mp3
├── logo.png
├── favicon.ico
├── intro-en.mp3
├── styles.css
└── lines.svg
├── docker-compose
├── caddy
│ └── .example.Caddyfile
├── docker-rebuild.sh
├── .example.env
└── docker-compose.yml
├── fresh.config.ts
├── dev.ts
├── .example.env
├── main.ts
├── .gitignore
├── routes
├── _app.tsx
├── _404.tsx
├── index.tsx
├── api
│ ├── stt.ts
│ ├── wikipedia.ts
│ ├── bildungsplan.ts
│ ├── papers.ts
│ ├── tts.ts
│ └── chat.ts
└── about.tsx
├── tailwind.config.ts
├── islands
├── ChatAgreementOrIsland.tsx
├── Header.tsx
├── Menu.tsx
└── ChatAgreement.tsx
├── components
├── Warning.tsx
├── ChatSubmitButton.tsx
├── ImageUploadButton.tsx
├── VoiceRecordButton.tsx
├── ChatTemplate.tsx
└── Settings.tsx
├── License.txt
├── deno.json
├── fresh.gen.ts
├── types.d.ts
├── README.md
└── internalization
├── agreement-content.ts
└── content.ts
/docker-webhook/.example.env:
--------------------------------------------------------------------------------
1 | WEBHOOK_SECRET=abcdef123456
--------------------------------------------------------------------------------
/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LAION-AI/school-bud-e-frontend-old/HEAD/banner.png
--------------------------------------------------------------------------------
/static/intro.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LAION-AI/school-bud-e-frontend-old/HEAD/static/intro.mp3
--------------------------------------------------------------------------------
/static/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LAION-AI/school-bud-e-frontend-old/HEAD/static/logo.png
--------------------------------------------------------------------------------
/docker-compose/caddy/.example.Caddyfile:
--------------------------------------------------------------------------------
1 | mywebsite.com {
2 | reverse_proxy school-bud-e-frontend:8000
3 | }
--------------------------------------------------------------------------------
/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LAION-AI/school-bud-e-frontend-old/HEAD/static/favicon.ico
--------------------------------------------------------------------------------
/static/intro-en.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LAION-AI/school-bud-e-frontend-old/HEAD/static/intro-en.mp3
--------------------------------------------------------------------------------
/static/styles.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | html, body {
6 | background-color: #f4eecf;
7 | }
8 |
--------------------------------------------------------------------------------
/fresh.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "$fresh/server.ts";
2 | import tailwind from "$fresh/plugins/tailwind.ts";
3 |
4 | export default defineConfig({
5 | plugins: [tailwind()],
6 | });
7 |
--------------------------------------------------------------------------------
/dev.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env -S deno run -A --watch=static/,routes/
2 |
3 | import dev from "$fresh/dev.ts";
4 | import config from "./fresh.config.ts";
5 |
6 | import "$std/dotenv/load.ts";
7 |
8 | await dev(import.meta.url, "./main.ts", config);
9 |
--------------------------------------------------------------------------------
/docker-compose/docker-rebuild.sh:
--------------------------------------------------------------------------------
1 |
2 | #!/bin/bash
3 |
4 | cd "$(dirname "$0")"
5 |
6 | echo "Pulling latest changes..."
7 | docker compose pull school-bud-e-frontend
8 |
9 | echo "Rebuilding and restarting frontend service..."
10 | docker compose up -d --build --force-recreate school-bud-e-frontend
--------------------------------------------------------------------------------
/.example.env:
--------------------------------------------------------------------------------
1 | ### SERVER URL
2 | SERVER_URL="http://...:8001"
3 | SERVER_API_KEY="..."
4 |
5 | ### SPEECH TO TEXT
6 | GROQ_API_KEY="gsk_..."
7 | GROQ_API_MODEL="whisper-large-v3"
8 |
9 | ### LARGE LANGUAGE MODELS
10 | API_URL="https://.../v1/chat/completions"
11 | API_KEY="api-key"
12 | API_MODEL="gpt-4o"
--------------------------------------------------------------------------------
/docker-compose/.example.env:
--------------------------------------------------------------------------------
1 | ### Rename to .env and fill in the variables
2 |
3 | GROQ_API_KEY="gsk_XXXX"
4 | GROQ_API_MODEL="whisper-large-v3"
5 |
6 | TTS_API=...
7 | TTS_URL=https://api.fish.audio/v1/tts
8 | TTS_MODEL=61561f50f41046e0b267aa4cb30e4957
9 |
10 | API_URL="https://api.sambanova.ai/v1/chat/completions"
11 | API_KEY="..."
12 | API_MODEL="Meta-Llama-3.1-405B-Instruct"
--------------------------------------------------------------------------------
/main.ts:
--------------------------------------------------------------------------------
1 | ///
20 | The page you were looking for doesn't exist. 21 |
22 | Go back home 23 |{warningContent[lang]["title"]}
17 |18 | {warningContent[lang]["content"]} 19 |
20 | 26 |
32 |
33 | {agreementContent[lang].content}
28 |29 | 30 | {agreementContent[lang].terms} 31 | 32 |
33 | 37 |17 | {aboutContent[lang]["partOneOne"]}{" "} 18 | 19 | LAION 20 | {" "} 21 | {aboutContent[lang]["partOneTwo"]} 22 |
23 | 24 |28 | {aboutContent[lang]["partTwoOne"]} 29 |
52 | {aboutContent[lang]["partThreeOne"]} 53 |
54 | 55 |56 | {aboutContent[lang]["partThreeTwo"]} 57 |
58 | 59 |63 | {aboutContent[lang]["partFourOne"]} 64 |
65 | 66 |67 | {aboutContent[lang]["partFourTwo"]}{" "} 68 | 72 | Discord Server 73 | {" "} 74 | {aboutContent[lang]["partFourThree"]}{" "} 75 | 79 | contact@laion.ai 80 | . 81 |
82 |Portal: the website at https://school.bud-e.ai/ including all services available there
12 |Language Model: an algorithm trained on text data analysis to understand and generate human-like language
13 |Chatbot: an AI-powered, language model-based text dialogue system
14 |Prompt: refers to the input request sent by a user to the chatbot to trigger a specific response or text generation.
15 |User: Any natural person who uses the offered service.
16 |These terms of use govern the contractual relationship between LAION e.V., Herman-Lange-Weg 26, 21035 Hamburg (hereinafter referred to as "LAION") and the users of the services on the website at https://school.bud-e.ai/. They apply in their current version at the time of contract conclusion.
23 |LAION reserves the right to modify these terms of use at any time - including for existing users - particularly in case of legal changes, changes in supreme court jurisprudence, or changes in LAION's offerings. Existing users will be informed of any changes to the terms of use when accessing the website.
24 |32 | 1. LAION aims to advance self-learning algorithms in artificial intelligence and make training datasets and AI models available to the general public. LAION provides users with a portal at https://school.bud-e.ai where users can utilize a school assistant for students. School Bud-E is a chatbot specialized in educational purposes that can be used via both prompts and voice input to provide students with individualized assistance for various school activities. 33 |
34 | 35 | 36 |37 | 2. The usage contract between LAION and the user is concluded by accessing the portal and accepting these terms of use. 38 |
39 | 40 | 41 |42 | 3. School Bud-E may only be used by users who are 16 years of age or older. Users who have not yet reached the age of 16 require the express consent of a legal guardian. The provider reserves the right to request proof of this consent. 43 |
44 | 45 | 46 |47 | 4. The use of the chatbot is only permitted for educational purposes. Any misuse, particularly for illegal or non-educational purposes, is prohibited. 48 |
49 | 50 |51 | 5. The use of the portal is free of charge. Users have no legal claim to use the portal against LAION. Within the scope of contractual freedom, LAION is entitled to exclude individual users from use without giving reasons, to restrict the offer, or to discontinue it entirely. 52 |
53 | 54 | 55 |LAION's language model is still under development and may therefore be faulty in function and content - it is a demo or test version.
59 |LAION therefore assumes no guarantee for the correctness, currentness and/or completeness of the content.
60 |1. The user agrees not to misuse the Portal. The user is prohibited from making false or misleading statements on the Portal. The user must refrain from all activities in connection with the Portal that constitute a violation of:
67 |2. Furthermore, the user agrees not to enter or upload any content to the Portal that:
76 |3. The user further agrees not to submit prompts or language inputs that violate these terms of use and could particularly result in potential liability. The user also agrees to refrain from creating content that has no educational connection or is clearly intended to harm a third party.
93 | 94 |4. The use of School Bud-E is permitted exclusively for educational purposes.
95 | 96 |5. LAION expressly reserves the right to report violations of these terms of use to the appropriate authorities, particularly law enforcement agencies, when such violations become known.
97 | 98 |6. The user is obligated to immediately report any obvious errors or misuse of the Portal to the provider. This serves to protect other users and improve the Portal.
99 |1. The user agreement begins when the user accepts these terms of use and is concluded for an indefinite period. The agreement may be terminated by either party at any time without notice.
106 | 107 |2. The right to extraordinary termination for good cause remains unaffected.
108 | 109 |3. The user agreement automatically terminates when LAION discontinues the services on the Portal.
110 | 111 |4. In the event of loss of school-related status, the user is obligated to inform the provider. The agreement automatically terminates as soon as the user loses their school status.
112 |1. The Portal and its contents regularly constitute protected intellectual property. In particular, all logos, layouts, graphics, texts, images, and videos are protected by copyright and trademark law.
119 | 120 |2. LAION grants the user a simple, non-transferable right to use the Portal and its contents. This right of use is temporally limited to the duration of the user agreement. In terms of content, the right of use is limited to uses appropriate for the intended use of the Portal.
121 | 122 |3. The user is specifically prohibited from reproducing, modifying, decompiling, or making the Portal, in whole or in part, accessible to unauthorized third parties.
123 | 124 |4. The user grants LAION a simple, temporally and spatially unlimited right to use the content uploaded by them to the Portal – particularly texts. In terms of content, the right of use is limited to the purpose of operating the Portal and the (further) development of language models and training datasets. The right of use specifically includes:
125 |5. The user assures that the content uploaded by them to the Portal is free from third-party rights and that they are authorized to grant rights to the content. Should the operator be held liable by third parties due to the infringement of intellectual property rights and if this claim is based on culpable conduct by the user, the user shall indemnify the operator against these claims and bear the reimbursable costs of the operator's legal defense according to the German Lawyers' Remuneration Act (RVG).
132 |1. Users may not enter any personal data concerning themselves when using the services for improving the language model and using the chatbot.
139 | 140 |2. Personal data processed in the context of using the chatbot includes data entered by the user and metadata used to improve the language model. The provider stores this data exclusively for the duration of the Portal use and deletes it as soon as the purpose of processing ceases, unless legal retention obligations prevent this.
141 | 142 |3. LAION processes the user's personal data in accordance with data protection regulations, particularly the European General Data Protection Regulation (GDPR). Detailed information can be found in the Privacy Policy, available at: https://laion.ai/privacy-policy/
143 |1. LAION assumes unlimited liability for intent and gross negligence. For simple negligence, LAION is only liable for damages resulting from:
148 |2. In the case of simple negligent breach of essential contractual obligations, LAION's liability is limited in amount to the foreseeable, typically occurring damage.
157 | 158 |3. In all other respects, LAION's liability is excluded.
159 | 160 |4. The above limitations of liability also apply in favor of LAION's legal representatives and agents.
161 | 162 |5. LAION assumes no liability for the prompts or language inputs entered by users, or for incorrect application of the chatbot. Furthermore, LAION assumes no liability for damages resulting from incorrect or improper use of content generated by the chatbot.
163 |1. The contractual relationship is exclusively governed by the law of the Federal Republic of Germany, excluding the UN Convention on Contracts for the International Sale of Goods.
168 | 169 |2. Should individual provisions of these Terms of Use, including this provision, be or become invalid in whole or in part, the validity of the remaining provisions shall remain unaffected. The respective statutory provisions shall take the place of the invalid or missing provisions.
170 | 171 |3. If the customer is a merchant, a legal entity under public law, or a special fund under public law, the place of jurisdiction for all disputes arising from and in connection with contracts concluded under these Terms of Use shall be LAION's registered office.
172 | 173 |4. These Terms of Use were drafted in German and subsequently translated into English. In case of contradictions or doubts about the interpretation, the German original version shall always prevail.
174 |Portal: die Website unter https://school.bud-e.ai/ mitsamt der dort zur Verfügung stehenden Dienste
189 |Sprachmodell: ein Algorithmus, der auf der Analyse von Textdaten trainiert wird, um menschenähnliche Sprache zu verstehen und zu generieren
190 |Chatbot: ein KI-gestütztes, auf einem Sprachmodell basierendes, textbasiertes Dialogsystem
191 |Prompt: bezeichnet die Eingabeaufforderung, die von einem Nutzer an den Chatbot gesendet wird, um eine bestimmte Antwort oder Texterzeugung auszulösen.
192 |Nutzer: Jede natürliche Person, die den angebotenen Dienst nutzt.
193 |Die vorliegenden Nutzungsbedingungen regeln das Vertragsverhältnis zwischen dem LAION e.V., Herman-Lange-Weg 26, 21035 Hamburg (nachfolgend bezeichnet als „LAION") und den Nutzern der Dienste auf der Website unter https://school.bud-e.ai/. Sie gelten in ihrer jeweils zum Zeitpunkt des Vertragsschlusses aktuellen Fassung.
200 |LAION behält sich vor, diese Nutzungsbedingungen jederzeit - auch gegenüber bestehenden Nutzern - zu ändern, insbesondere bei Gesetzesänderungen, Änderungen der höchstrichterlichen Rechtsprechung sowie bei Veränderungen des Angebots von LAION. Bei Änderungen der Nutzungsbedingungen werden bestehende Nutzer hierüber beim Aufruf der Website informiert.
201 |210 | 1. LAION hat sich zum Ziel gesetzt, selbstlernende Algorithmen im Sinne der künstlichen Intelligenz weiterzuentwickeln und Trainingsdatensätze sowie KI-Modelle der breiten Öffentlichkeit zur Verfügung zu stellen. LAION stellt dem Nutzer unter https://school.bud-e.ai/ ein Portal zur Verfügung, innerhalb dessen der Nutzer einen Schul-Assistenten für Schüler nutzen kann. School Bud-E ist ein auf schulische Zwecke spezialisierter Chatbot, welcher sowohl mittels Prompts als auch Spracheingabe verwendet werden kann, um Schülern eine individuelle Hilfestellung für verschiedene schulische Aktivitäten zu bieten. 211 |
212 | 213 |214 | 2. Der Nutzungsvertrag zwischen LAION und dem Nutzer kommt durch Aufruf des Portals und das Akzeptieren der vorliegenden Nutzungsbedingungen zustande. 215 |
216 |217 | 3. School Bud-E darf nur von Nutzern verwendet werden, die das 16. Lebensjahr vollendet haben. Nutzer, die das 16. Lebensjahr noch nicht vollendet haben, benötigen die ausdrückliche Zustimmung eines Erziehungsberechtigten. Der Anbieter behält sich das Recht vor, den Nachweis dieser Zustimmung zu verlangen. 218 |
219 | 220 |221 | 4. Die Nutzung des Chatbots ist nur zu schulischen Zwecken erlaubt. Jede missbräuchliche Verwendung, insbesondere für rechtswidrige oder nicht bildungsbezogene Zwecke, ist verboten. 222 |
223 | 224 |225 | 5. Die Nutzung des Portals ist kostenlos. Es besteht kein Rechtsanspruch auf Nutzung des Portals seitens des Nutzers gegenüber LAION. LAION ist im Rahmen der Vertragsfreiheit berechtigt einzelne Nutzer, ohne Angabe von Gründen, von der Nutzung auszuschließen, das Angebot einzuschränken oder gänzlich einzustellen. 226 |
227 | 228 | 229 |Das Sprachmodell von LAION befindet sich noch in der Entwicklung und kann daher fehlerhaft in Funktion und Inhalt sein - es handelt sich um eine Demo- bzw. Testversion.
233 |LAION übernimmt daher insbesondere keinerlei Gewähr für die Richtigkeit, Aktualität und/oder Vollständigkeit der Inhalte.
234 |1. Der Nutzer verpflichtet sich, das Portal nicht missbräuchlich zu verwenden. Es ist dem Nutzer untersagt, auf dem Portal falsche oder irreführende Angaben zu machen. Der Nutzer hat alle Aktivitäten in Zusammenhang mit dem Portal zu unterlassen, die eine Verletzung:
241 |2. Der Nutzer verpflichtet sich darüber hinaus, keine Inhalte im Portal einzugeben oder über das Portal hochzuladen, die:
250 |3. Der Nutzer verpflichtet sich weiterhin keine Prompts oder Spracheingaben vorzunehmen, die gegen diese Nutzungspflichten verstoßen und insbesondere eine potenzielle Haftung nach sich ziehen können. Der Nutzer verpflichtet sich zudem, die Erstellung von Inhalten zu unterlassen, die keinen schulischen Bezug aufweisen oder erkennbar einem Dritten schaden sollen.
267 | 268 |4. Die Nutzung von School Bud-E ist ausschließlich zu schulischen Zwecken erlaubt.
269 | 270 |5. LAION behält sich ausdrücklich das Recht vor, bei Kenntnis über eine Nutzung des Portals entgegen dieser Nutzungsbedingungen Verstöße den zuständigen Behörden, insbesondere Strafverfolgungsbehörden, zur Kenntnis zu bringen.
271 | 272 |6. Der Nutzer ist verpflichtet, offensichtliche Fehler oder missbräuchliche Nutzung des Portals unverzüglich dem Anbieter zu melden. Dies dient dem Schutz der weiteren Nutzer und der Verbesserung des Portals.
273 |1. Der Nutzungsvertrag beginnt mit dem Akzeptieren der vorliegenden Nutzungsbedingungen durch den Nutzer und wird auf unbestimmte Zeit geschlossen. Der Vertrag kann von beiden Parteien jederzeit ohne Einhaltung einer Frist gekündigt werden.
280 | 281 |2. Das Recht zur außerordentlichen Kündigung aus wichtigem Grund bleibt unberührt.
282 | 283 |3. Der Nutzungsvertrag endet automatisch, wenn LAION die Dienste auf dem Portal einstellt.
284 | 285 |4. Bei Verlust des schulbezogenen Status ist der Nutzer verpflichtet, den Anbieter darüber zu informieren. Eine automatische Beendigung des Vertrags tritt ein, sobald der Nutzer seinen schulischen Status verliert.
286 |1. Das Portal und seine Inhalte stellen regelmäßig geschütztes geistiges Eigentum dar. Insbesondere sind alle Logos, Layouts, Grafiken, Texte, Bilder und Videos durch das Urheber- und Markenrecht geschützt.
293 | 294 |2. LAION räumt dem Nutzer ein einfaches, nicht übertragbares Nutzungsrecht an dem Portal und seinen Inhalten ein. In zeitlicher Hinsicht ist das Nutzungsrecht auf die Dauer des Nutzungsvertrages beschränkt. Inhaltlich ist das Nutzungsrecht beschränkt auf die zur bestimmungsgemäßen Nutzung des Portals zweckmäßigen Nutzungen.
295 | 296 |3. Dem Nutzer ist es insbesondere untersagt, das Portal im Ganzen oder Teile davon zu vervielfältigen, zu verändern, zu dekompilieren oder unberechtigten Dritten zugänglich zu machen.
297 | 298 |4. Der Nutzer räumt LAION ein einfaches, zeitlich und räumlich unbeschränktes Nutzungsrecht an den von ihm auf dem Portal hochgeladenen Inhalten – insbesondere Texten – ein. Inhaltlich ist das Nutzungsrecht auf den Zweck des Betriebs des Portals und der (Weiter-)Entwicklung von Sprachmodellen und Trainingsdatensätzen beschränkt. Das Nutzungsrecht umfasst insbesondere:
299 |5. Der Nutzer sichert zu, dass die von ihm auf dem Portal hochgeladenen Inhalte frei von Rechten Dritter sind und er zur Einräumung der Rechte an den Inhalten befugt ist. Sollte die Betreiberin von Dritten aufgrund der Verletzung von geistigen Eigentumsrechten in Anspruch genommen werden und beruht die Inanspruchnahme auf einem schuldhaften Handeln des Nutzers, so hat der Nutzer die Betreiberin von diesen Ansprüchen freizustellen und die nach dem Rechtsanwaltsvergütungsgesetz (RVG) erstattungsfähigen Kosten der Rechtsverteidigung der Betreiberin zu übernehmen.
306 |1. Nutzer dürfen im Rahmen der Nutzung der Dienste zur Verbesserung des Sprachmodells und der Nutzung des Chatbots keine die eigene Person betreffenden personenbezogenen Daten eingeben.
313 | 314 |2. Personenbezogene Daten, die im Rahmen der Nutzung des Chatbots verarbeitet werden, umfassen die vom Nutzer eingegebenen Daten sowie Metadaten, die zur Verbesserung des Sprachmodells verwendet werden. Der Anbieter speichert diese Daten ausschließlich für die Dauer der Nutzung des Portals und löscht sie, sobald der Zweck der Verarbeitung entfällt, es sei denn, gesetzliche Aufbewahrungspflichten stehen dem entgegen.
315 | 316 |3. Die personenbezogenen Daten des Nutzers verarbeitet LAION im Einklang mit den datenschutzrechtlichen Bestimmungen, insbesondere der Europäischen Datenschutzgrundverordnung (DSGVO). Detaillierte Informationen finden sich in der Datenschutzerklärung, abrufbar unter: https://laion.ai/privacy-policy/
317 |1. LAION haftet unbeschränkt für Vorsatz und grobe Fahrlässigkeit. Für einfache Fahrlässigkeit haftet LAION nur für Schäden aus:
322 |2. Im Fall der einfach fahrlässigen Verletzung wesentlicher Vertragspflichten ist die Haftung von LAION der Höhe nach begrenzt auf den vorhersehbaren, typischerweise eintretenden Schaden.
331 | 332 |3. Im Übrigen ist die Haftung von LAION ausgeschlossen.
333 | 334 |4. Die vorstehenden Haftungsbeschränkungen gelten auch zugunsten der gesetzlichen Vertreter und Erfüllungsgehilfen von LAION.
335 | 336 |5. LAION übernimmt keine Haftung für die eingegebenen Prompts oder Spracheingaben der Nutzer, sowie bei falscher Anwendung des Chatbots. Weiterhin übernimmt LAION keine Haftung für Schäden, die durch eine unkorrekte oder missbräuchliche Verwendung der vom Chatbot generierten Inhalte entstehen.
337 |1. Für das Vertragsverhältnis gilt ausschließlich das Recht der Bundesrepublik Deutschland unter Ausschluss des UN-Kaufrechts.
342 | 343 |2. Sollten einzelne Bestimmungen dieser Nutzungsbedingungen einschließlich dieser Bestimmung ganz oder teilweise unwirksam sein oder werden, bleibt die Wirksamkeit der übrigen Regelungen unberührt. Anstelle der unwirksamen oder fehlenden Bestimmungen treten die jeweiligen gesetzlichen Regelungen.
344 | 345 |3. Ist der Kunde Kaufmann, juristische Person des öffentlichen Rechts oder öffentlich-rechtliches Sondervermögen, so ist für den Gerichtsstand aller Streitigkeiten aus und in Zusammenhang mit unter Einbeziehung dieser Nutzungsbedingungen geschlossenen Verträgen, der Sitz von LAION maßgeblich.
346 | 347 |4. Die vorliegenden Nutzungsbedingungen wurden in deutscher Sprache verfasst und sodann ins Englische übersetzt. Bei Widersprüchen oder Zweifeln über die Auslegungen geht stets die deutsche Originalfassung vor.
348 |