Skip to content

Commit 6499b85

Browse files
committed
fix: make env a list for passing to gptscript
Signed-off-by: Donnie Adams <[email protected]>
1 parent aac46af commit 6499b85

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

gptscript/gptscript.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def __init__(self, opts: GlobalOptions = None):
4141
stdin=PIPE,
4242
stdout=PIPE,
4343
stderr=PIPE,
44-
env=self.opts.Env,
44+
env={e.split("=", 1)[0]: e.split("=", 1)[1] for e in self.opts.Env},
4545
text=True,
4646
encoding="utf-8",
4747
)

gptscript/opts.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ def __init__(
1515
self.BaseURL = baseURL
1616
self.DefaultModel = defaultModel
1717
self.DefaultModelProvider = defaultModelProvider
18-
self.Env = env
18+
if env is None:
19+
env = os.environ
20+
env_list = [f"{k}={v}" for k, v in env.items()]
21+
self.Env = env_list
1922

2023
def merge(self, other: Self) -> Self:
2124
cp = self.__class__()
@@ -25,21 +28,21 @@ def merge(self, other: Self) -> Self:
2528
cp.BaseURL = other.BaseURL if other.BaseURL != "" else self.BaseURL
2629
cp.DefaultModel = other.DefaultModel if other.DefaultModel != "" else self.DefaultModel
2730
cp.DefaultModelProvider = other.DefaultModelProvider if other.DefaultModelProvider != "" else self.DefaultModelProvider
28-
cp.Env = {**(self.Env or {}), **(other.Env or {})}
31+
cp.Env = (other.Env or []).extend(self.Env or [])
2932
return cp
3033

3134
def toEnv(self):
3235
if self.Env is None:
33-
self.Env = os.environ.copy()
36+
self.Env = [f"{k}={v}" for k, v in os.environ.items()]
3437

3538
if self.APIKey != "":
36-
self.Env["OPENAI_API_KEY"] = self.APIKey
39+
self.Env.append(f"OPENAI_API_KEY={self.APIKey}")
3740
if self.BaseURL != "":
38-
self.Env["OPENAI_BASE_URL"] = self.BaseURL
41+
self.Env.append(f"OPENAI_BASE_URL={self.BaseURL}")
3942
if self.DefaultModel != "":
40-
self.Env["GPTSCRIPT_SDKSERVER_DEFAULT_MODEL"] = self.DefaultModel
43+
self.Env.append(f"GPTSCRIPT_SDKSERVER_DEFAULT_MODEL={self.DefaultModel}")
4144
if self.DefaultModelProvider != "":
42-
self.Env["GPTSCRIPT_SDKSERVER_DEFAULT_MODEL_PROVIDER"] = self.DefaultModelProvider
45+
self.Env.append(f"GPTSCRIPT_SDKSERVER_DEFAULT_MODEL_PROVIDER={self.DefaultModelProvider}")
4346

4447

4548
class Options(GlobalOptions):

tests/test_gptscript.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -430,8 +430,8 @@ async def test_tool_chat(gptscript):
430430
async def test_file_chat(gptscript):
431431
inputs = [
432432
"List the 3 largest of the Great Lakes by volume.",
433-
"What is the volume of the second in the list in cubic miles?",
434-
"What is the total area of the third in the list in square miles?",
433+
"For the second one in the list, what is the volume in cubic miles?",
434+
"For the third one in the list, what is the total area in square miles?",
435435
]
436436
expected_outputs = [
437437
"Lake Superior",

0 commit comments

Comments
 (0)