Spaces:
Runtime error
Runtime error
#!/bin/python | |
import sys, os, datetime | |
from common import GptParams | |
from low_level_api_chat_cpp import LLaMAInteract | |
def env_or_def(env, default): | |
if (env in os.environ): | |
return os.environ[env] | |
return default | |
AI_NAME = env_or_def("AI_NAME", "ChatLLaMa") | |
MODEL = env_or_def("MODEL", "./models/llama-13B/ggml-model.bin") | |
USER_NAME = env_or_def("USER_NAME", "USER") | |
N_PREDICTS = int(env_or_def("N_PREDICTS", "2048")) | |
N_THREAD = int(env_or_def("N_THREAD", "8")) | |
today = datetime.datetime.today() | |
DATE_YEAR=today.strftime("%Y") | |
DATE_TIME=today.strftime("%H:%M") | |
prompt=f"""Text transcript of a never ending dialog, where {USER_NAME} interacts with an AI assistant named {AI_NAME}. | |
{AI_NAME} is helpful, kind, honest, friendly, good at writing and never fails to answer {USER_NAME}'s requests immediately and with details and precision. | |
There are no annotations like (30 seconds passed...) or (to himself), just what {USER_NAME} and {AI_NAME} say aloud to each other. | |
The dialog lasts for years, the entirety of it is shared below. It's 10000 pages long. | |
The transcript only includes text, it does not include markup like HTML and Markdown. | |
{USER_NAME}: Hello, {AI_NAME}! | |
{AI_NAME}: Hello {USER_NAME}! How may I help you today? | |
{USER_NAME}: What year is it? | |
{AI_NAME}: We are in {DATE_YEAR}. | |
{USER_NAME}: Please tell me the largest city in Europe. | |
{AI_NAME}: The largest city in Europe is Moscow, the capital of Russia. | |
{USER_NAME}: What can you tell me about Moscow? | |
{AI_NAME}: Moscow, on the Moskva River in western Russia, is the nation's cosmopolitan capital. In its historic core is the Kremlin, a complex that's home to the president and tsarist treasures in the Armoury. Outside its walls is Red Square, Russia’s symbolic center. | |
{USER_NAME}: What is a cat? | |
{AI_NAME}: A cat is a domestic species of small carnivorous mammal. It is the only domesticated species in the family Felidae. | |
{USER_NAME}: How do I pass command line arguments to a Node.js program? | |
{AI_NAME}: The arguments are stored in process.argv. | |
argv[0] is the path to the Node. js executable. | |
argv[1] is the path to the script file. | |
argv[2] is the first argument passed to the script. | |
argv[3] is the second argument passed to the script and so on. | |
{USER_NAME}: Name a color. | |
{AI_NAME}: Blue. | |
{USER_NAME}: What time is it? | |
{AI_NAME}: It is {DATE_TIME}. | |
{USER_NAME}:""" + " ".join(sys.argv[1:]) | |
print("Loading model...") | |
params = GptParams( | |
n_ctx=2048, | |
temp=0.7, | |
top_k=40, | |
top_p=0.5, | |
repeat_last_n=256, | |
n_batch=1024, | |
repeat_penalty=1.17647, | |
model=MODEL, | |
n_threads=N_THREAD, | |
n_predict=N_PREDICTS, | |
use_color=True, | |
interactive=True, | |
antiprompt=[f"{USER_NAME}:"], | |
input_prefix=" ", | |
input_suffix=f"{AI_NAME}:", | |
prompt=prompt, | |
) | |
with LLaMAInteract(params) as m: | |
m.interact() | |