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}") |