parent
02979566ee
commit
6ed7b10273
@ -0,0 +1,44 @@ |
|||||||
|
## This is a fork/based from https://gist.github.com/wiseman/4a706428eaabf4af1002a07a114f61d6 |
||||||
|
|
||||||
|
from io import StringIO |
||||||
|
import sys |
||||||
|
import os |
||||||
|
from typing import Dict, Optional |
||||||
|
|
||||||
|
from langchain.agents import load_tools |
||||||
|
from langchain.agents import initialize_agent |
||||||
|
from langchain.agents.tools import Tool |
||||||
|
from langchain.llms import OpenAI |
||||||
|
|
||||||
|
base_path = os.environ.get('OPENAI_API_BASE', 'http://localhost:8080/v1') |
||||||
|
model_name = os.environ.get('MODEL_NAME', 'gpt-3.5-turbo') |
||||||
|
|
||||||
|
class PythonREPL: |
||||||
|
"""Simulates a standalone Python REPL.""" |
||||||
|
|
||||||
|
def __init__(self): |
||||||
|
pass |
||||||
|
|
||||||
|
def run(self, command: str) -> str: |
||||||
|
"""Run command and returns anything printed.""" |
||||||
|
old_stdout = sys.stdout |
||||||
|
sys.stdout = mystdout = StringIO() |
||||||
|
try: |
||||||
|
exec(command, globals()) |
||||||
|
sys.stdout = old_stdout |
||||||
|
output = mystdout.getvalue() |
||||||
|
except Exception as e: |
||||||
|
sys.stdout = old_stdout |
||||||
|
output = str(e) |
||||||
|
return output |
||||||
|
|
||||||
|
llm = OpenAI(temperature=0.0, openai_api_base=base_path, model_name=model_name) |
||||||
|
python_repl = Tool( |
||||||
|
"Python REPL", |
||||||
|
PythonREPL().run, |
||||||
|
"""A Python shell. Use this to execute python commands. Input should be a valid python command. |
||||||
|
If you expect output it should be printed out.""", |
||||||
|
) |
||||||
|
tools = [python_repl] |
||||||
|
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True) |
||||||
|
agent.run("What is the 10th fibonacci number?") |
Loading…
Reference in new issue