temperature config for expert
This commit is contained in:
1 parent
39fa4f1123
commit
26aa137c98
3 files changed
+34
-4
No files matched your search
@@ -20,6 +20,7 @@ class ExpertAgent(Agent):
|
|||||||
schema_fields = [
|
schema_fields = [
|
||||||
AgentField('system_prompt', 'string', default="You are an expert AI assistant."),
|
AgentField('system_prompt', 'string', default="You are an expert AI assistant."),
|
||||||
AgentField('model', 'model_id', default=None),
|
AgentField('model', 'model_id', default=None),
|
||||||
|
AgentField('temperature', 'number', default=None),
|
||||||
]
|
]
|
||||||
|
|
||||||
def __init__(self, app, data):
|
def __init__(self, app, data):
|
||||||
@@ -56,7 +57,14 @@ class ExpertAgent(Agent):
|
|||||||
model_engine = db_model.value["engine"]
|
model_engine = db_model.value["engine"]
|
||||||
|
|
||||||
if model_engine == "llama-cpp":
|
if model_engine == "llama-cpp":
|
||||||
response = await inference.local_chat_completion(self.app, messages, model=db_model.value['model'])
|
response = await inference.local_chat_completion(
|
||||||
|
self.app,
|
||||||
|
messages,
|
||||||
|
model=db_model.value['model'],
|
||||||
|
opts={
|
||||||
|
'temperature':self.config.get('temperature')
|
||||||
|
}
|
||||||
|
)
|
||||||
elif model_engine == "replicate":
|
elif model_engine == "replicate":
|
||||||
response = await inference.replicate_llama_completion(self.app, messages, model=db_model.value['model'])
|
response = await inference.replicate_llama_completion(self.app, messages, model=db_model.value['model'])
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -33,15 +33,20 @@ async def local_chat_completion(app, messages, model, opts={}):
|
|||||||
else:
|
else:
|
||||||
llm = Llama(
|
llm = Llama(
|
||||||
model_path=f"{app.data_directory}/models/{model}",
|
model_path=f"{app.data_directory}/models/{model}",
|
||||||
# n_gpu_layers=-1, # Uncomment to use GPU acceleration
|
n_gpu_layers=-1, # Uncomment to use GPU acceleration
|
||||||
# seed=1337, # Uncomment to set a specific seed
|
# seed=1337, # Uncomment to set a specific seed
|
||||||
# n_ctx=2048, # Uncomment to increase the context window
|
n_ctx=2048, # Uncomment to increase the context window
|
||||||
)
|
)
|
||||||
model_cache[model] = llm
|
model_cache[model] = llm
|
||||||
|
|
||||||
|
temp = opts.get("temperature")
|
||||||
|
if temp is None:
|
||||||
|
temp = 0.25
|
||||||
|
|
||||||
# With stream=True, returns an iterator that infers tokens on demand (openai compatible)
|
# With stream=True, returns an iterator that infers tokens on demand (openai compatible)
|
||||||
llm_output = llm.create_chat_completion(
|
llm_output = llm.create_chat_completion(
|
||||||
messages = [{'role': msg.role, 'content': msg.content} for msg in messages],
|
messages = [{'role': msg.role, 'content': msg.content} for msg in messages],
|
||||||
|
temperature = temp,
|
||||||
stream = True,
|
stream = True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -195,7 +195,23 @@
|
|||||||
const dataObject = {};
|
const dataObject = {};
|
||||||
for (let field of configFields.value) {
|
for (let field of configFields.value) {
|
||||||
if (field.enabled) {
|
if (field.enabled) {
|
||||||
dataObject[field.name] = field.value;
|
let value = field.value;
|
||||||
|
if (field.kind == 'number') {
|
||||||
|
try {
|
||||||
|
value = parseFloat(value);
|
||||||
|
} catch (e) {
|
||||||
|
ui.alert("bad number at field " + field.name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else if (field.kind != 'string') {
|
||||||
|
try {
|
||||||
|
value = JSON.parse(value);
|
||||||
|
} catch (e) {
|
||||||
|
ui.alert("bad JSON value at field " + field.name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dataObject[field.name] = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -348,6 +364,7 @@
|
|||||||
<option v-if="!modelList.length" disabled>empty</option>
|
<option v-if="!modelList.length" disabled>empty</option>
|
||||||
<option :value="model.id" v-for="model in modelList">{{ model.name }}</option>
|
<option :value="model.id" v-for="model in modelList">{{ model.name }}</option>
|
||||||
</select>
|
</select>
|
||||||
|
<input v-else-if="configField.kind=='number'" type="number" v-model="configField.value" class="config-input" :disabled="!configField.enabled"/>
|
||||||
<textarea v-else v-model="configField.value" class="config-input" :disabled="!configField.enabled"/>
|
<textarea v-else v-model="configField.value" class="config-input" :disabled="!configField.enabled"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user