Compare commits

...

3 Commits

Author SHA1 Message Date
Micheal Smith
a3ebca0bb2 Added some release optimizations. 2025-10-31 13:55:57 -05:00
Micheal Smith
8fa79932d6 Removed unnecessary use. 2025-10-31 05:36:55 -05:00
Micheal Smith
9719d9203c Fixed multiline handling, and did a cargo fmt. 2025-10-31 05:34:34 -05:00
6 changed files with 52 additions and 90 deletions

93
Cargo.lock generated
View File

@@ -90,7 +90,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -237,7 +237,7 @@ dependencies = [
"heck",
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -402,7 +402,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -413,7 +413,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
dependencies = [
"darling_core",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -452,7 +452,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -463,7 +463,7 @@ checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
"unicode-xid",
]
@@ -506,7 +506,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -518,24 +518,6 @@ dependencies = [
"const-random",
]
[[package]]
name = "dotenvy"
version = "0.15.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b"
[[package]]
name = "dotenvy_macro"
version = "0.15.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb0235d912a8c749f4e0c9f18ca253b4c28cfefc1d2518096016d6e3230b6424"
dependencies = [
"dotenvy",
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]]
name = "dyn-clone"
version = "1.0.20"
@@ -773,7 +755,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -1476,7 +1458,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -1596,7 +1578,7 @@ dependencies = [
"pest_meta",
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -1626,7 +1608,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -1838,7 +1820,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -1921,7 +1903,6 @@ dependencies = [
"color-eyre",
"config",
"directories",
"dotenvy_macro",
"futures",
"genai",
"human-panic",
@@ -2126,7 +2107,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -2200,7 +2181,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -2229,15 +2210,6 @@ version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "signal-hook-registry"
version = "1.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b"
dependencies = [
"libc",
]
[[package]]
name = "slab"
version = "0.4.11"
@@ -2278,17 +2250,6 @@ version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "syn"
version = "2.0.108"
@@ -2317,7 +2278,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -2359,7 +2320,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -2370,7 +2331,7 @@ checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -2456,9 +2417,7 @@ dependencies = [
"bytes",
"libc",
"mio",
"parking_lot",
"pin-project-lite",
"signal-hook-registry",
"socket2",
"tokio-macros",
"windows-sys 0.61.2",
@@ -2472,7 +2431,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -2655,7 +2614,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -2882,7 +2841,7 @@ dependencies = [
"bumpalo",
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
"wasm-bindgen-shared",
]
@@ -2958,7 +2917,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -2969,7 +2928,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -3221,7 +3180,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
"synstructure",
]
@@ -3242,7 +3201,7 @@ checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]
[[package]]
@@ -3262,7 +3221,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
"synstructure",
]
@@ -3302,5 +3261,5 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.108",
"syn",
]

View File

@@ -10,11 +10,18 @@ clap = { version = "4.5", features = [ "derive" ] }
color-eyre = "0.6.3"
config = { version = "0.15", features = [ "toml" ] }
directories = "6.0"
dotenvy_macro = "0.15"
futures = "0.3"
human-panic = "2.0"
genai = "0.4.3"
irc = "1.1"
tokio = { version = "1", features = [ "full" ] }
tokio = { version = "1", features = [ "macros", "rt-multi-thread" ] }
tracing = "0.1"
tracing-subscriber = "0.3"
[profile.release]
strip = true
opt-level = "z" # Optimize for size
lto = true # Link-time optimization
codegen-units = 1
# Comment this if unwinding is needed. Compiling without release works too.
panic = "abort"

View File

@@ -6,10 +6,7 @@ use color_eyre::{
},
};
// Lots of namespace confusion potential
use crate::{
commands,
qna::LLMHandle,
};
use crate::qna::LLMHandle;
use config::Config as MainConfig;
use futures::StreamExt;
use irc::client::prelude::{
@@ -31,10 +28,7 @@ pub struct Chat {
// Need: owners, channels, username, nick, server, password
#[instrument]
pub async fn new(
settings: &MainConfig,
handle: &LLMHandle,
) -> Result<Chat> {
pub async fn new(settings: &MainConfig, handle: &LLMHandle) -> Result<Chat> {
// Going to just assign and let the irc library handle errors for now, and
// add my own checking if necessary.
let port: u16 = settings.get("port")?;
@@ -81,13 +75,20 @@ impl Chat {
if let Command::PRIVMSG(channel, message) = message.command
&& message.starts_with("!gem")
{
let msg = self.llm_handle.send_request(message).await?;
event!(Level::INFO, "Message received.");
let msg = self.llm_handle.send_request(&message).await?;
event!(Level::INFO, "Asked: {}", message);
event!(Level::INFO, "Answered: {}", msg);
// Send responses as one PRIVMSG per line.
let mut lines = msg.lines();
while let Some(line) = lines.next() {
client
.send_privmsg(channel, msg)
.send_privmsg(&channel, line)
.wrap_err("Couldn't send response to channel.")?;
}
}
}
Ok(())
}

View File

@@ -1,6 +1,7 @@
use color_eyre::Result;
use std::{
path::{Path, PathBuf},
use std::path::{
Path,
PathBuf,
};
#[derive(Clone, Debug)]

View File

@@ -43,7 +43,6 @@ async fn main() -> Result<()> {
fs::chroot(&chroot_path)
.wrap_err_with(|| format!("Failed setting chroot '{}'", chroot_path))?;
std::env::set_current_dir("/").wrap_err("Couldn't change directory after chroot.")?;
}
// Setup root path for commands.

View File

@@ -70,11 +70,6 @@ impl LLMHandle {
while let Some(Ok(stream_event)) = stream.next().await {
if let ChatStreamEvent::Chunk(StreamChunk { content }) = stream_event {
text.push_str(&content);
} else if let ChatStreamEvent::End(end) = stream_event {
let texts = end.captured_texts().unwrap();
for text in texts.into_iter() {
info!("An answer: {}", text);
}
}
}