Compare commits
35 Commits
min
...
a873e5cbf1
| Author | SHA1 | Date | |
|---|---|---|---|
|
a873e5cbf1
|
|||
|
d1fba083b4
|
|||
|
b5dd740541
|
|||
|
5824c42e8b
|
|||
|
63b24c7e1e
|
|||
|
9519c8c477
|
|||
|
da45b31029
|
|||
|
653814ee70
|
|||
|
09483cfb7e
|
|||
|
586e16cc54
|
|||
|
80cd0888f3
|
|||
|
6b3be20a5f
|
|||
|
48e5d3bc82
|
|||
|
06ccae58a2
|
|||
|
ff09594801
|
|||
|
06ca713dc8
|
|||
|
a2dda25ab6
|
|||
|
d91c37d73a
|
|||
|
a5ef15e4ee
|
|||
|
968ea019a6
|
|||
|
b2f36073ec
|
|||
|
12797dde7f
|
|||
|
1ec04deb9c
|
|||
|
cc11fb8d3f
|
|||
|
49f4b71866
|
|||
|
e4cae37e4b
|
|||
|
59b79d5098
|
|||
|
39308cdc85
|
|||
|
a77dde0366
|
|||
|
1d3aa51fb6
|
|||
|
6f5290753d
|
|||
|
e8cf46465f
|
|||
|
676c8942de
|
|||
|
623fe61468
|
|||
|
ce00222537
|
@@ -1,3 +1,12 @@
|
||||
# LMS Translation API
|
||||
TRANSLATE_URL=http://127.0.0.1:1234/v1
|
||||
TRANSLATE_MODEL=plamo-2-translate
|
||||
|
||||
# Chat API
|
||||
CHAT_URL=http://127.0.0.1:1234/v1
|
||||
CHAT_MODEL=gpt-oss-20b
|
||||
# CHAT_MAX_TOKENS=2048
|
||||
|
||||
# Character/system prompt (choose one)
|
||||
# CHAT_SYSTEM="You are ai, a friendly AI assistant."
|
||||
# CHAT_SYSTEM_FILE=./character.txt
|
||||
|
||||
2
.github/workflows/deploy.yml
vendored
@@ -2,7 +2,7 @@ name: Deploy to GitHub Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
branches: [min]
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
|
||||
1
.gitignore
vendored
@@ -7,3 +7,4 @@ node_modules
|
||||
package-lock.json
|
||||
Cargo.lock
|
||||
.env
|
||||
.mcp.json
|
||||
|
||||
@@ -22,3 +22,4 @@ dirs = "5.0"
|
||||
chrono = { version = "0.4", features = ["serde"] }
|
||||
rand = "0.8"
|
||||
dotenvy = "0.15"
|
||||
rustyline = "15"
|
||||
|
||||
13
index.html
@@ -1,13 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>syui.ai</title>
|
||||
<link rel="stylesheet" href="/src/styles/main.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.ts"></script>
|
||||
</body>
|
||||
</html>
|
||||
72
lexicons/ai.syui.log.chat.json
Normal file
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"lexicon": 1,
|
||||
"id": "ai.syui.log.chat",
|
||||
"defs": {
|
||||
"main": {
|
||||
"type": "record",
|
||||
"description": "Record containing a chat message in a conversation.",
|
||||
"key": "tid",
|
||||
"record": {
|
||||
"type": "object",
|
||||
"required": ["content", "author", "createdAt"],
|
||||
"properties": {
|
||||
"content": {
|
||||
"type": "string",
|
||||
"maxLength": 100000,
|
||||
"maxGraphemes": 10000,
|
||||
"description": "The content of the message."
|
||||
},
|
||||
"author": {
|
||||
"type": "string",
|
||||
"format": "did",
|
||||
"description": "DID of the message author."
|
||||
},
|
||||
"root": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "AT-URI of the root message in the thread."
|
||||
},
|
||||
"parent": {
|
||||
"type": "string",
|
||||
"format": "at-uri",
|
||||
"description": "AT-URI of the parent message being replied to."
|
||||
},
|
||||
"createdAt": {
|
||||
"type": "string",
|
||||
"format": "datetime",
|
||||
"description": "Client-declared timestamp when this message was created."
|
||||
},
|
||||
"lang": {
|
||||
"type": "string",
|
||||
"maxLength": 10,
|
||||
"description": "Language code of the original content (e.g., 'ja', 'en')."
|
||||
},
|
||||
"translations": {
|
||||
"type": "ref",
|
||||
"ref": "#translationMap",
|
||||
"description": "Translations of the message in other languages."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"translationMap": {
|
||||
"type": "object",
|
||||
"description": "Map of language codes to translations.",
|
||||
"properties": {
|
||||
"en": { "type": "ref", "ref": "#translation" },
|
||||
"ja": { "type": "ref", "ref": "#translation" }
|
||||
}
|
||||
},
|
||||
"translation": {
|
||||
"type": "object",
|
||||
"description": "A translation of a chat message.",
|
||||
"properties": {
|
||||
"content": {
|
||||
"type": "string",
|
||||
"maxLength": 100000,
|
||||
"maxGraphemes": 10000
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,14 +4,16 @@
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"prebuild": "ailog index 2>/dev/null || true",
|
||||
"build": "tsc && vite build",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@atproto/api": "^0.15.12",
|
||||
"@atproto/lexicon": "^0.6.0",
|
||||
"@atproto/oauth-client-browser": "^0.3.19",
|
||||
"marked": "^15.0.6",
|
||||
"highlight.js": "^11.11.1"
|
||||
"highlight.js": "^11.11.1",
|
||||
"marked": "^15.0.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "^5.7.3",
|
||||
|
||||
BIN
public/card/0.webp
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
public/card/1.webp
Normal file
|
After Width: | Height: | Size: 90 KiB |
BIN
public/card/10.webp
Normal file
|
After Width: | Height: | Size: 152 KiB |
BIN
public/card/100.webp
Normal file
|
After Width: | Height: | Size: 130 KiB |
BIN
public/card/101.webp
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
public/card/102.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
public/card/103.webp
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
public/card/104.webp
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
public/card/105.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
public/card/106.webp
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/card/107.webp
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
public/card/108.webp
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
public/card/109.webp
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/card/11.webp
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
public/card/110.webp
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/card/111.webp
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
public/card/112.webp
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
public/card/113.webp
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
public/card/114.webp
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/card/115.webp
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/card/116.webp
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
public/card/117.webp
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
public/card/118.webp
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
public/card/119.webp
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/card/12.webp
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
public/card/120.webp
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
public/card/121.webp
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/card/122.webp
Normal file
|
After Width: | Height: | Size: 124 KiB |
BIN
public/card/123.webp
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
public/card/124.webp
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
public/card/125.webp
Normal file
|
After Width: | Height: | Size: 103 KiB |
BIN
public/card/126.webp
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
public/card/127.webp
Normal file
|
After Width: | Height: | Size: 221 KiB |
BIN
public/card/128.webp
Normal file
|
After Width: | Height: | Size: 166 KiB |
BIN
public/card/129.webp
Normal file
|
After Width: | Height: | Size: 112 KiB |
BIN
public/card/13.webp
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
public/card/130.webp
Normal file
|
After Width: | Height: | Size: 205 KiB |
BIN
public/card/131.webp
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
public/card/132.webp
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
public/card/133.webp
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
public/card/134.webp
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
public/card/14.webp
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/card/15.webp
Normal file
|
After Width: | Height: | Size: 126 KiB |
BIN
public/card/16.webp
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
public/card/17.webp
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
public/card/18.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
public/card/19.webp
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
public/card/2.blend
Normal file
BIN
public/card/2.webp
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
public/card/20.webp
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
public/card/200.webp
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
public/card/21.webp
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
public/card/22.webp
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
public/card/23.webp
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
public/card/24.webp
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
public/card/25.webp
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/card/26.webp
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
public/card/27.webp
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
public/card/28.webp
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
public/card/29.webp
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
public/card/3.webp
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
public/card/30.webp
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
public/card/300.webp
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/card/301.webp
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
public/card/31.webp
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
public/card/32.webp
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
public/card/33.webp
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
public/card/34.webp
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
public/card/35.webp
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
public/card/36.webp
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
public/card/37.webp
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
public/card/38.webp
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/card/39.webp
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
public/card/4.webp
Normal file
|
After Width: | Height: | Size: 119 KiB |
BIN
public/card/40.webp
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
public/card/41.webp
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
public/card/42.webp
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
public/card/43.webp
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
public/card/44.webp
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
public/card/45.webp
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
public/card/46.webp
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
public/card/47.webp
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
public/card/48.webp
Normal file
|
After Width: | Height: | Size: 81 KiB |
BIN
public/card/49.webp
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
public/card/5.webp
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
public/card/50.webp
Normal file
|
After Width: | Height: | Size: 81 KiB |
BIN
public/card/51.webp
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
public/card/52.webp
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
public/card/53.webp
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
public/card/54.webp
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
public/card/55.webp
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
public/card/56.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
public/card/57.webp
Normal file
|
After Width: | Height: | Size: 45 KiB |