manage histories of LLM applied applications
91
stars
68
commits
Python
primary language
Nov 17, 2023
updated
PingPong is a simple library to manage pings(prompt) and pongs(response). The main purpose of this library is to manage histories and contexts in LLM applied applications such as ChatGPT.
The basic motivations behind this project are:
### Instruction:, ### Response:, and ### Input: are given while StackLLaMA works when Question: and Answer: are given even though the underlying pre-trained LLM is the same LLaMA.$ pip install bingbong
from pingpong import PingPong
from pingpong.gradio import GradioAlpacaChatPPManager
from pingpong.context import CtxAutoSummaryStrategy
from pingpong.context import CtxLastWindowStrategy
from pingpong.context import CtxSearchWindowStrategy
ppmanager = GradioAlpacaChatPPManager()
strategies = [
CtxAutoSummaryStrategy(2),
CtxLastWindowStrategy(1),
CtxSearchWindowStrategy(1)
]
for i in range(3):
ppmanager.add_pingpong(PingPong(f"ping-{i}", f"pong-{i}"))
for strategy in strategies:
if isinstance(strategy, CtxAutoSummaryStrategy):
sum_req, to_sum_prompt = strategy(ppmanager)
if sum_req is True:
# enough prompts are accumulated
...
elif isinstance(strategy, CtxLastWindowStrategy):
last_convs = strategy(ppmanager)
# I am only interested in the last 1 conversations
...
elif isinstance(strategy, CtxSearchWindowStrategy):
for cur_win in strategy(ppmanager):
# looking the entire conversation through
# a sliding window, size of 1
# find out relevant history to the recent conversation
...
65 commits
3 commits
Python
99.6%
manage histories of LLM applied applications
91
stars
68
commits
Python
primary language
Nov 17, 2023
updated
PingPong is a simple library to manage pings(prompt) and pongs(response). The main purpose of this library is to manage histories and contexts in LLM applied applications such as ChatGPT.
The basic motivations behind this project are:
### Instruction:, ### Response:, and ### Input: are given while StackLLaMA works when Question: and Answer: are given even though the underlying pre-trained LLM is the same LLaMA.$ pip install bingbong
from pingpong import PingPong
from pingpong.gradio import GradioAlpacaChatPPManager
from pingpong.context import CtxAutoSummaryStrategy
from pingpong.context import CtxLastWindowStrategy
from pingpong.context import CtxSearchWindowStrategy
ppmanager = GradioAlpacaChatPPManager()
strategies = [
CtxAutoSummaryStrategy(2),
CtxLastWindowStrategy(1),
CtxSearchWindowStrategy(1)
]
for i in range(3):
ppmanager.add_pingpong(PingPong(f"ping-{i}", f"pong-{i}"))
for strategy in strategies:
if isinstance(strategy, CtxAutoSummaryStrategy):
sum_req, to_sum_prompt = strategy(ppmanager)
if sum_req is True:
# enough prompts are accumulated
...
elif isinstance(strategy, CtxLastWindowStrategy):
last_convs = strategy(ppmanager)
# I am only interested in the last 1 conversations
...
elif isinstance(strategy, CtxSearchWindowStrategy):
for cur_win in strategy(ppmanager):
# looking the entire conversation through
# a sliding window, size of 1
# find out relevant history to the recent conversation
...
65 commits
3 commits
Python
99.6%