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