File size: 1,246 Bytes
bee7740
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import numpy as np
import time
import streamlit as st
from scienceworld import ScienceWorldEnv

st.title("ScienceWorld interactive demo")

hash_env = lambda _: None

import os
stream = os.popen('java -version')
output = stream.read()

st.write('output')

@st.cache(allow_output_mutation=True)
def load_env():
    simplification_str = 'easy'
    task_idx = None

    print('Loading envs')
    step_limit = 100
    env = ScienceWorldEnv("", None, step_limit, 0)

    if task_idx is None:
        task_idx = 13
    if isinstance(task_idx, int):
        task_names = env.getTaskNames()
        task_name = task_names[task_idx]
    else:
        task_name = task_idx

    # Just reset to variation 0, as another call (e.g. reset_with_variation...) will setup
    # an appropriate variation (train/dev/test)
    env.load(task_name, 0, simplification_str)
    obs, info = env.resetWithVariation(0, simplification_str)

    return env, obs, info


class RandomAgent():

    def act(self, info):
        return np.random.choice(info['valid'])


num_episodes = 10
env, initial_obs, initial_info = load_env()
act = st.text_input('action to perform')
st.write(f'Action: {act}')
obs, reward, done, info = env.step(act)
st.write(f'Observation: {obs.strip()}')