-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbasics.py
55 lines (45 loc) · 1.3 KB
/
basics.py
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
###### Parsers, Formats, Utils
import logging
###### Blue
from blue.agent import Agent
from blue.session import Session
# set log level
logging.getLogger().setLevel(logging.INFO)
# create a session
session = Session()
prefix = session.cid + ":" + "AGENT"
# create a user agent
user_agent = Agent(name="USER", prefix=prefix, session=session)
# user initiates an interaction
user_agent.interact("hello world!", eos=False)
user_agent.interact("i am an agent")
# sample func to process data for counter
stream_data = []
def processor(message, input=None, properties=None, worker=None):
if message.isEOS():
# print all data received from stream
print("Stream Data:")
print(stream_data)
# compute length of the stream data
l = len(stream_data)
print(l)
# output to stream
return l
elif message.isData():
# store data value
data = message.getData()
print(data)
stream_data.append(data)
return None
# create a counter agent in the same session
properties = {
"listens": {
"DEFAULT": {
"includes": [
"USER"
],
"excludes": []
}
}
}
counter_agent = Agent(name="COUNTER", prefix=prefix, properties=properties, session=session, processor=processor)