answerer-api / main.py
DaniilAlpha's picture
Update main.py
05dc8f9
raw
history blame
1.22 kB
from fastapi import FastAPI, WebSocket
from fastapi.responses import HTMLResponse
from answerer import Answerer
answerer = Answerer(
repo="BlinkDL/rwkv-5-world",
filename="RWKV-5-World-3B-v2-20231118-ctx16k",
vocab="rwkv_vocab_v20230424",
strategy="cpu bf16",
ctx_limit=16*1024,
)
app = FastAPI()
HTML = """
<!DOCTYPE HTML>
<html>
<body>
<form action="" onsubmit="sendMessage(event)">
<input id="prompt" type="text" autocomplete="off" />
<br>
<input type="submit" value="SEND" />
</form>
<p id="output"></p>
<script>
const prompt = document.getElementById("prompt");
const output = document.getElementById("output");
const ws = new WebSocket("ws://huggingface.co/spaces/DaniilAlpha/answerer-api:8000/answer");
ws.onmessage = function (event) => output.innerText = event.data;
function ask(event) {
ws.send(prompt.value);
event.preventDefault();
}
</script>
</body>
</html>
"""
@app.get("/")
async def index():
return HTMLResponse(HTML)
@app.websocket("/answer")
async def answer(ws: WebSocket):
await ws.accept()
input = await ws.receive_text()
stream = answerer(input, 256)
for el in stream:
await ws.send_text(el)