File size: 983 Bytes
f596e58 c68d320 f596e58 c2392fe f596e58 |
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 |
import os
from langchain_core.runnables import RunnableLambda
from langchain_openai import ChatOpenAI
from langchain_core.messages import AIMessage
def player_input(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
MAX_TOKENS = 50
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", max_tokens=MAX_TOKENS)
elif name == "ollama":
return ChatOpenAI(model="mistral", openai_api_key="ollama", openai_api_base="http://localhost:11434/v1", max_tokens=MAX_TOKENS)
elif name == "human":
return RunnableLambda(player_input)
else:
raise ValueError(f"Unknown controller name: {name}") |