feat: initial text-summarize v0.1.0 (text.summarize@0.1.0)
All checks were successful
CI / Linux x86_64 (Forgejo) (push) Successful in 1m32s
All checks were successful
CI / Linux x86_64 (Forgejo) (push) Successful in 1m32s
Ollama-backed summarisation module — fourth real F∆I capability,
following text.extract / llm.chat / text.translate. Completes
the text-processing trio for compose-grade workflows
(extract -> translate -> summarise, or any subset).
Capability:
Inputs:
text : text (source text)
style : text (e.g. "one paragraph", "three bullets";
defaults to "one paragraph")
language : text (output language hint; empty = source)
endpoint : text (Ollama /api/chat URL)
model : text
api_key : text (optional)
Outputs:
summary : text
style : text (echo for audit)
language : text (echo for audit)
model_endpoint : text
model_name : text
model_digest : text (Ollama /api/show probe; empty for
non-Ollama or transient failures)
Permissions: net to localhost / 127.0.0.1 / api.openai.com /
api.anthropic.com.
System prompt is conservative: faithful, neutral, preserves
named entities, no editorialising, no metadata. Reuses the LLM
client + digest-probe pattern from llm-chat / text-translate;
the duplication is acceptable at four modules and will be
factored into a shared crate when a fifth lands.
15 host-side tests cover prompt-building (style + language +
empty-language), Ollama-shaped response parsing, URL transform,
digest extraction, end-to-end success / probe-failure / non-
Ollama paths.
Wasm artifact: 118 KB. Built with v1.0 fai:platform imports.
Bootstrapped via 'fai new module text.summarize'.
Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
commit
3422fe526d
11 changed files with 1445 additions and 0 deletions
46
README.md
Normal file
46
README.md
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# text-summarize
|
||||
|
||||
Provides the `text.summarize` capability for F∆I Platform.
|
||||
|
||||
## Build
|
||||
|
||||
```bash
|
||||
cargo build --release --target wasm32-wasip2
|
||||
```
|
||||
|
||||
## Test
|
||||
|
||||
```bash
|
||||
cargo test # host-side unit + integration tests
|
||||
fai test . # load the wasm component in the runtime sandbox
|
||||
```
|
||||
|
||||
## Authoring with fai-module-sdk
|
||||
|
||||
The module body is one decorated function:
|
||||
|
||||
```rust
|
||||
#[fai_module]
|
||||
pub fn invoke(_ctx: Context, inputs: Inputs) -> Result<Outputs, ModuleError> {
|
||||
let message = inputs.require_text("message")?;
|
||||
Ok(Outputs::new().with_text("reply", format!("got: {message}")))
|
||||
}
|
||||
```
|
||||
|
||||
The macro hides the wit_bindgen call, the Guest impl, the
|
||||
Payload variant matching, and the `wit_bindgen::export!`
|
||||
invocation. See `fai-module-sdk` documentation for the full
|
||||
surface.
|
||||
|
||||
## SDK source
|
||||
|
||||
The Cargo.toml git-deps `fai-module-sdk` from
|
||||
`https://git.flemming.ws/fai/module-sdk.git`. If your environment requires
|
||||
authentication for that host (e.g. Forgejo with
|
||||
`REQUIRE_SIGNIN_VIEW=true`), set up `git config insteadOf` with
|
||||
your PAT, or use `cargo:net.git-fetch-with-cli=true` plus a
|
||||
credential helper.
|
||||
|
||||
## License
|
||||
|
||||
Apache-2.0
|
||||
Loading…
Add table
Add a link
Reference in a new issue