comparison mrjunejune/README.md @ 260:1f9877b637e9

Add Copilot-powered cyberpunk JRPG chat Integrate the production JRPG chat with Seobeo streaming, Deita persistence, and a Bazel-managed Copilot SDK and LiteLLM inference stack. Co-authored-by: Copilot <[email protected]>
author MrJuneJune <mrjunejune@users.noreply.github.com>
date Wed, 05 Aug 2026 09:19:41 -0700
parents 667156fcd3e3
children b401627fc49e
comparison
equal deleted inserted replaced
259:667156fcd3e3 260:1f9877b637e9
1 # Mrjunejune 1 # Mrjunejune
2 2
3 My personal website where I post my blogs / about me and resume. 3 My personal website where I post my blogs / about me and resume.
4 4
5 ## Development-only pages 5 ## Copilot JRPG chat
6 6
7 Experimental pages are compiled and packaged only by the development target: 7 `/jrpg` streams stateful turns through Seobeo and Deita to a local Python
8 Copilot SDK/CLI runtime. The SDK uses a loopback LiteLLM Proxy configured with
9 the `github_copilot` provider.
10
11 Python, Copilot CLI, LiteLLM, the web server, and their lockfiles are all
12 managed by Bazel. Do not create a virtualenv or install packages with pip.
13
14 Authenticate LiteLLM once with the GitHub Copilot device flow:
8 15
9 ```bash 16 ```bash
10 bazel run //mrjunejune:mrjunejune_server_dev -c dbg 17 export GITHUB_COPILOT_TOKEN_DIR="$HOME/.local/state/mrjunejune/inference/litellm-copilot"
18 bazel run //mrjunejune/inference:litellm_proxy -- \
19 --authenticate \
20 --token-dir "$GITHUB_COPILOT_TOKEN_DIR"
11 ``` 21 ```
12 22
13 The production server and the bundle used by `deploy.sh` omit their route 23 Then start the complete local stack with one Bazel command:
14 registrations and static assets: 24
25 ```bash
26 LITELLM_MASTER_KEY='<local proxy key>' \
27 MRJUNEJUNE_ALLOW_ANONYMOUS_INFERENCE=1 \
28 bazel run //mrjunejune:run_inference_stack
29 ```
30
31 Keep `GITHUB_COPILOT_TOKEN_DIR` exported when starting the stack so it reads the
32 same tokens. Without an override, both commands use
33 `$XDG_STATE_HOME/mrjunejune/inference/litellm-copilot`, or
34 `~/.local/state/mrjunejune/inference/litellm-copilot` when `XDG_STATE_HOME` is
35 unset. `MRJUNEJUNE_INFERENCE_STATE` moves all service-owned state. Internal
36 processes bind to loopback. Provider keys, OAuth tokens, conversation IDs,
37 prompts, and model output must not be committed or logged.
38
39 Anonymous inference is disabled unless
40 `MRJUNEJUNE_ALLOW_ANONYMOUS_INFERENCE=1` is explicitly set. Enabling it exposes
41 paid inference without user authentication; keep the Seobeo rate/concurrency
42 limits and LiteLLM budget enabled.
43
44 The production bundle includes the pinned Python environment, Copilot CLI,
45 LiteLLM, JRPG assets, and C server:
15 46
16 ```bash 47 ```bash
17 bazel build -c opt //mrjunejune:mrjunejune_server_bundle 48 bazel build -c opt //mrjunejune:mrjunejune_server_bundle
18 ``` 49 ```
19
20 `/jrpg` is currently development-only.
21 50
22 ## WebP assets 51 ## WebP assets
23 52
24 Raster source images live under `mrjunejune/assets/png/` and `assets/png/`. 53 Raster source images live under `mrjunejune/assets/png/` and `assets/png/`.
25 Bazel converts them to WebP before they enter the server runfiles or release 54 Bazel converts them to WebP before they enter the server runfiles or release