Este repositorio contiene la implementación de un agente de planificación secuencial llamado "Neoplanner". Este planificador es adecuado para entornos basados en texto con gran espacio de estado y espacio de acción. Synergize ambas búsqueda de espacio estatal con consultas a LLM fundamental para obtener el mejor plan de acción. Las señales de recompensa se utilizan cuantitativamente para impulsar la búsqueda. Se mantiene un equilibrio de exploración y explotación maximizando los límites de los valores de los estados de la confianza superiores. En lugares donde se necesita una exploración aleatoria, se consulta el LLM para generar un plan de acción. Los aprendizajes de cada prueba se almacenan como relaciones de entidad en formato de texto. Esos se utilizan en futuras consultas para el LLM para una mejora continua. Los experimentos en el entorno de ciencias del mundo revelan una mejora del 124% del mejor método actual en términos de recompensa promedio obtenida en múltiples tareas. El siguiente es la arquitectura.

Primero, clone el repositorio y navegue hacia el directorio de Neoplanner e instale los requisitos
git clone https://github.com/swarna-kpaul/neoplanner
cd neoplanner
python3 -m pip install -r requirements.txtLuego, debe modificar el archivo config/keys.py para actualizar la openAiaPikeY . Puede obtener su clave API registrándose en el portal Operai. Los usuarios por primera vez pueden obtener un crédito gratuito de $ 5 para experimentar. Puede obtener su clave API de esta URL
A partir de entonces el paquete se puede importar
from solver import neoplannerInicializar el objeto solucionador
# task is the identifier of tasks as specified in
# stmloadfile is the name of the file (with full path) that contains saved state. The state will be loaded initially. default value is None
# stmstoragefile is the name of the file (with full path) whare intermediate states can be saved. default value is None
# beliefstorefile is the name of the file (with full path) whare intermediate learnings can be saved. default value is None
# beliefloadfile is the name of the file (with full path) that contains intermediate learnings. The learnings will be loaded initially. default value is None
# sigma is exploration probability constant. Increasing its value would increase random exploration by the the LLM.
solverobj = neoplanner ( task = "2-1" , stmloadfile = None , stmstoragefile = None , beliefstorefile = None , beliefloadfile = None , sigma = 0.3 )Ejecute el solucionador.
env = solverobj . train ()
######## get actionplan from statespace graph
additionalinstructions , actionplan , _ , _ , _ = env . getinstructions ()El entrenamiento continuará funcionando hasta que se alcance el gol. Puede interrumpir el proceso de capacitación en el medio. En ese caso, asegúrese de proporcionar el STMStorageFile y BeliefstoreFile, de modo que los estados y creencias intermedios se salvan.
Puede cargar el stmstoragefile y consultar el objeto Env para obtener el plan de acción del gráfico de espacio de estado.
import pickle
from solver import scienv
env = scienv ( "2-1" )
stmstoragefile = < file name with full path >
with open ( stmstoragefile , 'rb' ) as f :
rootnodeid , invalidnodeid , DEFAULTVALUE , statespace , totaltrials , actiontrace , environment = pickle . load ( f )
env . model . rootnodeid = rootnodeid
env . model . invalidnodeid = invalidnodeid
env . model . DEFAULTVALUE = DEFAULTVALUE
env . model . statespace = statespace
env . model . totaltrials = totaltrials
env . environment = environment
env . reset ()
additionalinstructions , actionplan , _ , _ , _ = env . getinstructions ()La carpeta PretranedFiles contiene todo el espacio estadístico capacitado y archivos de aprendizaje para 7 tareas. Puede buscar el aplan de acción resuelto de las tareas utilizando el código anterior, configurando el STMStorageFile con el nombre de archivo apropiado
Los aprendizajes se pueden ver ejecutando el siguiente código
import pickle
beliefloadfile = < belief load file name >
with open ( beliefloadfile , 'rb' ) as f :
beliefaxioms , totalexplore = pickle . load ( f )
print ( beliefaxioms ) @misc{paul2023sequential,
title={Sequential Planning in Large Partially Observable Environments guided by LLMs},
author={Swarna Kamal Paul},
year={2023},
eprint={2312.07368},
archivePrefix={arXiv},
primaryClass={cs.AI}
}