feat: vibed out some slop over here
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
"""Remote tool example — ask something that needs fresh info from the web.
|
||||
|
||||
Raycast's `web_search` is server-routed: pass `RemoteTool.WEB_SEARCH` in
|
||||
`tools=` and that's it. The model decides when to invoke it, the server
|
||||
runs the search, and the assistant streams the synthesised answer back.
|
||||
Nothing for the client to execute.
|
||||
|
||||
Prerequisites: same as basic_usage.py (config.json, RAYCAST_BEARER,
|
||||
RAYCAST_DEVICE_ID).
|
||||
|
||||
Run:
|
||||
python examples/web_search.py
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from raycast_api import Client, Config, Message, RemoteTool
|
||||
|
||||
CONFIG_PATH = Path(os.environ.get("RAYCAST_CONFIG", "config.json"))
|
||||
MODEL = os.environ.get("RAYCAST_MODEL", "Claude Sonnet 4.6")
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
bearer = os.environ.get("RAYCAST_BEARER")
|
||||
device_id = os.environ.get("RAYCAST_DEVICE_ID")
|
||||
if not bearer or not device_id:
|
||||
sys.exit("set RAYCAST_BEARER and RAYCAST_DEVICE_ID before running")
|
||||
if not CONFIG_PATH.is_file():
|
||||
sys.exit(f"no config at {CONFIG_PATH} — run `raycast-api init` first")
|
||||
|
||||
async with Client(
|
||||
config=Config.load(CONFIG_PATH), bearer_token=bearer, device_id=device_id
|
||||
) as client:
|
||||
result = await client.chat.complete(
|
||||
model=MODEL,
|
||||
messages=[
|
||||
Message.user(
|
||||
"What's the most recent stable Python release? "
|
||||
"Reply with just the version number."
|
||||
)
|
||||
],
|
||||
tools=[RemoteTool.WEB_SEARCH],
|
||||
)
|
||||
print(result.text)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user