MCPcopy Create free account
hub / github.com/VectifyAI/OpenKB / chat

Function chat

openkb/cli.py:1755–1827  ·  view source on GitHub ↗

Start an interactive chat with the knowledge base.

(ctx, resume, list_sessions_flag, delete_id, no_color, raw)

Source from the content-addressed store, hash-verified

1753)
1754@click.pass_context
1755def chat(ctx, resume, list_sessions_flag, delete_id, no_color, raw):
1756 """Start an interactive chat with the knowledge base."""
1757 kb_dir = _find_kb_dir(ctx.obj.get("kb_dir_override"))
1758 if kb_dir is None:
1759 click.echo("No knowledge base found. Run `openkb init` first.")
1760 return
1761
1762 from openkb.agent.chat_session import (
1763 ChatSession,
1764 delete_session,
1765 list_sessions,
1766 load_session,
1767 relative_time,
1768 resolve_session_id,
1769 )
1770
1771 if list_sessions_flag:
1772 sessions = list_sessions(kb_dir)
1773 if not sessions:
1774 click.echo("No chat sessions yet.")
1775 return
1776 click.echo(f" {'ID':<22} {'TURNS':<6} {'UPDATED':<12} TITLE")
1777 click.echo(f" {'-' * 22} {'-' * 6} {'-' * 12} {'-' * 30}")
1778 for s in sessions:
1779 rel = relative_time(s.get("updated_at", ""))
1780 title = s.get("title") or "(empty)"
1781 click.echo(f" {s['id']:<22} {s['turn_count']:<6} {rel:<12} {title}")
1782 click.echo(f"\n{len(sessions)} session(s) in {kb_dir / '.openkb' / 'chats'}")
1783 return
1784
1785 if delete_id is not None:
1786 try:
1787 resolved = resolve_session_id(kb_dir, delete_id)
1788 except ValueError as exc:
1789 click.echo(f"[ERROR] {exc}")
1790 return
1791 if not resolved:
1792 click.echo(f"No matching session: {delete_id}")
1793 return
1794 if delete_session(kb_dir, resolved):
1795 click.echo(f"Deleted session {resolved}")
1796 else:
1797 click.echo(f"Could not delete session: {resolved}")
1798 return
1799
1800 openkb_dir = kb_dir / ".openkb"
1801 config = load_config(openkb_dir / "config.yaml")
1802 _setup_llm_key(kb_dir)
1803
1804 if resume is not None:
1805 try:
1806 resolved = resolve_session_id(kb_dir, resume)
1807 except ValueError as exc:
1808 click.echo(f"[ERROR] {exc}")
1809 return
1810 if not resolved:
1811 if resume == "__latest__":
1812 click.echo("No previous chat sessions to resume.")

Callers

nothing calls this directly

Calls 12

list_sessionsFunction · 0.90
relative_timeFunction · 0.90
resolve_session_idFunction · 0.90
delete_sessionFunction · 0.90
load_configFunction · 0.90
load_sessionFunction · 0.90
run_chatFunction · 0.90
_find_kb_dirFunction · 0.85
_setup_llm_keyFunction · 0.85
newMethod · 0.80
runMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected