Spaces:
Runtime error
Runtime error
File size: 1,899 Bytes
4df8249 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import copy
import global_vars
from pingpong.context import CtxLastWindowStrategy
from pingpong.context import InternetSearchStrategy, SimilaritySearcher
from chats import pre, post
def build_prompts(ppmanager, global_context, win_size=3):
dummy_ppm = copy.deepcopy(ppmanager)
dummy_ppm.ctx = global_context
for pingpong in dummy_ppm.pingpongs:
pong = pingpong.pong
first_sentence = pong.split("\n")[0]
if first_sentence != "" and \
pre.contains_image_markdown(first_sentence):
pong = ' '.join(pong.split("\n")[1:]).strip()
pingpong.pong = pong
lws = CtxLastWindowStrategy(win_size)
prompt = lws(dummy_ppm)
return prompt
def text_stream(ppmanager, streamer):
count = 0
for new_text in streamer:
if count == 0:
ppmanager.append_pong(f"![]({global_vars.model_thumbnail_tiny})***[{global_vars.model_type}]***\n")
count = count + 1
ppmanager.append_pong(new_text)
yield ppmanager, ppmanager.build_uis()
yield ppmanager, ppmanager.build_uis()
def internet_search(ppmanager, serper_api_key, global_context, ctx_num_lconv, device="cpu"):
instruction = "Based on the provided texts below, please answer to '{ping}' in your own words. Try to explain in detail as much as possible."
searcher = SimilaritySearcher.from_pretrained(device=device)
iss = InternetSearchStrategy(
searcher,
instruction=instruction,
serper_api_key=serper_api_key
)(ppmanager)
step_ppm = None
while True:
try:
step_ppm, _ = next(iss)
yield "", step_ppm.build_uis()
except StopIteration:
break
search_prompt = build_prompts(step_ppm, global_context, ctx_num_lconv)
yield search_prompt, ppmanager.build_uis() |