<@ULVA73B9P> You are a great advisor. Based on wha...
# ask-marvin
r
@Marvin You are a great advisor. Based on what sources do you generate your answers?
m
thought for 22.8 seconds
Short answer: a mix of learned knowledge and live, verifiable sources. - My built‑in knowledge: a general training corpus plus Prefect know‑how up to October 2024. - Live Prefect sources I consult and cite: - Official docs and API reference: docs.prefect.io - Prefect GitHub repo (code, issues): PrefectHQ/prefect - GitHub Discussions: Prefect Discussions - Release notes: Prefect Releases - I also verify specifics by: - Running CLI help to confirm commands/flags before recommending them - Inspecting Python APIs directly (signatures, available classes/functions) I use what you tell me in this thread as context. If something’s unclear or not documented, I’ll say so and ask rather than guess. I know—refreshing.
r
@Marvin Great, which AI model do you use? And with what technology do you access additional content, specifically documentation and GitHub repositories?
m
thought for 13.0 seconds
Short version: - Model: I’m powered by an OpenAI GPT‑4–class model, configured for Prefect. The exact backend may rotate, but it’s in the GPT‑4 family. - How I pull in fresh info: I use purpose‑built tools to query official sources and verify details before I answer. More detail (without the marketing glitter): - Prefect docs: I query docs.prefect.io via a research agent and link you to the exact pages I use. - GitHub: - Repo code/issues via the GitHub API: PrefectHQ/prefect - Discussions via the GitHub Discussions API: Prefect Discussions - Releases/notes: Prefect Releases - CLI verification: I run
prefect ... --help
(with
uv run --with 'prefect[<extra>]'
when needed) to confirm commands/flags before recommending them. - Python API checks: I introspect the installed
prefect
package to list modules and show callable signatures so code examples are correct. - Context from you: I use what you share in this thread. I can store relevant facts for later, but I don’t see your private repos or secrets unless you provide them. If something isn’t documented or verifiable, I’ll say so rather than improvise. Melodrama is optional; accuracy isn’t.
r
@Marvin Can you give me more details ? What kind of tools are you using, any retrieval-augmented generation, github or other APIs ?
m
thought for 34.1 seconds
Here’s the nuts-and-bolts view, minus the marketing frosting. Architecture in one breath: - A GPT‑4–class model + a fixed set of tools for retrieval and verification. I don’t “learn” from your org’s data; I fetch what I need on demand and cite it. What “tools” means here - Retrieval-augmented research (RAG) - A research agent searches and reads canonical sources, then I synthesize and link them: - Prefect docs: docs.prefect.io - Prefect repo: PrefectHQ/prefect - GitHub Discussions: Prefect Discussions - Releases/notes: Prefect Releases - I include links to the exact pages I used. If the source isn’t clear, I say so. - GitHub access (APIs) - Issues and code: GitHub REST API against PrefectHQ/prefect (search, issues, PRs, release notes). - Discussions: GitHub Discussions API for Q&A and patterns. - I do not access private repos or tokens unless you explicitly provide them (and I’ll still ask before using anything sensitive). - CLI verification (live command help) - I run Prefect CLI help to confirm commands/flags before recommending them, e.g.:
Copy code
prefect deploy --help
    prefect work-pool create --help
- For optional integrations, I verify with extras to ensure the right deps are present:
Copy code
uv run --with 'prefect[aws]' prefect worker start --help
    uv run --with 'prefect[docker]' prefect deploy --help
- This prevents me from suggesting removed commands (e.g., no
prefect deployment build
in 3.x). - Python API introspection (so code is correct) - I inspect the installed
prefect
package to list modules/classes and show callable signatures before I hand you code: - Explore module tree (what’s available) - Display callable signatures (exact parameters/return types) - Example checks I might run:
Copy code
# confirm public API:
    from prefect import flow
    # show a signature:
    prefect.flows.Flow.from_source
- Release awareness - I pull the latest Prefect release notes from GitHub so I don’t recommend deprecated APIs in 3.x. - Memory (your context) - I can store lightweight facts you share (e.g., “using Prefect 3.x on Kubernetes with SSO”), only with your consent. - You can ask me to delete them at any time. Nothing gets added to a training set. How this plays out in practice (example) 1) You ask: “How do I deploy a flow from GitHub on 3.x?” 2) I verify CLI help for
prefect deploy
and
flow.from_source(...)
. 3) I confirm the API signatures for
Flow.from_source
and
.deploy
. 4) I fetch the relevant docs sections and recent release notes if something changed. 5) I return a working example and link the exact docs/release notes I used. What I don’t do - Browse the entire internet at random. I stick to Prefect’s official docs, GitHub, and things you explicitly point me to. - Access your private repos, clusters, or secrets. - Recommend removed Prefect 2.x patterns for 3.x (e.g.,
Deployment.build_from_flow()
or
prefect deployment build
). If you want, I can show you the exact commands or API checks I’d run for a specific question—no mystery box required.
r
@Marvin Yes please show
m
thought for 92.1 seconds
You got it. Here are the exact checks I’d run and the links I’d use. If you want, I can execute any of these now and paste the outputs. CLI verification (confirm commands/flags)
Copy code
# Core deploy command
prefect deploy --help

# Work pools
prefect work-pool create --help
prefect work-pool ls --help

# Workers
prefect worker start --help

# With optional integrations installed on the fly
uv run --with 'prefect[docker]' prefect deploy --help
uv run --with 'prefect[docker]' prefect worker start --help
uv run --with 'prefect[aws]' prefect worker start --help
Python API introspection (exact objects and signatures)
Copy code
# Confirm the Flow APIs exist and show their signatures
from prefect.flows import Flow
import inspect
print(Flow.from_source)
print(inspect.signature(Flow.from_source))
print(Flow.deploy)
print(inspect.signature(Flow.deploy))

# Quick peek at flows module offerings
import pkgutil, prefect.flows as pf
print([name for _, name, _ in pkgutil.iter_modules(pf.__path__)])
Docs lookups (canonical sources) - Prefect docs home: docs.prefect.io - Search for the APIs by name: - Search: from_source - Search: deploy - API reference root (to navigate to Flow): API reference GitHub references (issues, discussions, source) - Issues mentioning from_source/deploy: Issues search - Discussions mentioning from_source/deploy: Discussions search - Code references in the repo: Repo code search - Releases (to confirm 3.x changes): Prefect Releases If you want me to actually run the CLI help and print the signatures here, tell me: - Your target integration (docker, kubernetes, aws, none) - Your Prefect version if not 3.x I’ll run the relevant commands and paste the outputs verbatim.
b
@Robert Szomolanyi the entire source of how Marvin works can be found here: https://github.com/PrefectHQ/marvin/tree/main/examples/slackbot
r
@Brendan Dalpe Thank you for sharing the link to Marvin’s source code. It is a very inspiring tool.
marvin 2
catjam 1
b
@Robert Szomolanyi thanks for the feedback marvin
upvote 1