chameleon / src /controllers.py
Eric Botti
reconstructed players using langchain
f596e58
raw
history blame
863 Bytes
import os
from langchain_core.runnables import RunnableLambda
from langchain_openai import ChatOpenAI
from langchain_core.messages import AIMessage
def player_input(prompt):
print(prompt)
# even though they are human, we still need to return an AIMessage, since the HumanMessages are from the GameMaster
response = AIMessage(content=input())
return response
def controller_from_name(name: str):
if name == "tgi":
return ChatOpenAI(
api_base=os.environ['HF_ENDPOINT_URL'] + "/v1/",
api_key=os.environ['HF_API_TOKEN']
)
elif name == "openai":
return ChatOpenAI(model="gpt-3.5-turbo")
# elif name == "ollama":
# return ollama_controller
elif name == "human":
return RunnableLambda(player_input)
else:
raise ValueError(f"Unknown controller name: {name}")