temperature config for expert

This commit is contained in:
Shivering Ocelot committed 2026-01-22 12:24:45 -05:00
1 parent 39fa4f1123
commit 26aa137c98
3 files changed
+34 -4

No files matched your search

+9 -1
View File
@@ -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:
+7 -2
View File
@@ -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,
) )
+18 -1
View File
@@ -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>