You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
import logging
|
|
import subprocess
|
|
import socket
|
|
import openai
|
|
|
|
|
|
def run_in_subprocess(cmd):
|
|
try:
|
|
with subprocess.Popen(
|
|
cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE
|
|
) as return_info:
|
|
while True:
|
|
next_line = return_info.stdout.readline()
|
|
return_line = next_line.decode("utf-8", "ignore").strip()
|
|
if return_line == "" and return_info.poll() != None:
|
|
break
|
|
if return_line != "":
|
|
logging.info(return_line)
|
|
|
|
err_lines = ""
|
|
while True:
|
|
next_line = return_info.stderr.readline()
|
|
return_line = next_line.decode("utf-8", "ignore").strip()
|
|
if return_line == "" and return_info.poll() != None:
|
|
break
|
|
if return_line != "":
|
|
logging.info(return_line)
|
|
err_lines += return_line + "\n"
|
|
|
|
return_code = return_info.wait()
|
|
if return_code:
|
|
raise RuntimeError(err_lines)
|
|
except Exception as e:
|
|
raise e
|
|
|
|
|
|
def simple_openai_api(model):
|
|
openai.api_base = "http://localhost:8000/v1"
|
|
openai.api_key = "none"
|
|
|
|
# create a request not activating streaming response
|
|
response = openai.ChatCompletion.create(
|
|
model=model,
|
|
messages=[{"role": "user", "content": "你好"}],
|
|
stream=False,
|
|
stop=[], # You can add custom stop words here, e.g., stop=["Observation:"] for ReAct prompting.
|
|
)
|
|
print(response.choices[0].message.content)
|
|
|
|
|
|
def TelnetPort(server_ip, port):
|
|
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
sk.settimeout(1)
|
|
connect_flag = False
|
|
try:
|
|
sk.connect((server_ip, port))
|
|
connect_flag = True
|
|
except Exception:
|
|
connect_flag = False
|
|
sk.close()
|
|
return connect_flag
|