From 0018ccd15abbad86ec5a24e059c534628072b876 Mon Sep 17 00:00:00 2001 From: Hunter Date: Tue, 30 Jul 2024 18:17:49 -0400 Subject: [PATCH] openai testing --- llm_ingest.py | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 llm_ingest.py diff --git a/llm_ingest.py b/llm_ingest.py new file mode 100644 index 0000000..bd25148 --- /dev/null +++ b/llm_ingest.py @@ -0,0 +1,183 @@ +from openai import OpenAI + +client = OpenAI() + +tools = [ + { + "type": "function", + "function": { + "name": "make_shelling_experiment", + "description": "This function creates a shelling experiment with defined variables that can later take exerimental data", + "parameters": { + "type": "object", + "properties": { + "date": { + "type": "string", + "description": "The datetime of the experiment", + }, + "drum-rpm": { + "type": "number", + "description": "The speed of the drum in RPM", + }, + "paddle-shaft-rpm": { + "type": "number", + "description": "The speed of the paddle shaft in RPM", + }, + "ring-gap": { + "type": "number", + "description": "The gap between the drum and the ring in mm", + }, + "tilt-angle": { + "type": "number", + "description": "The angle of the drum in degrees", + }, + "moisture-content": { + "type": "number", + "description": "The moisture content of the material in %", + }, + "feed-rate": { + "type": "number", + "description": "The rate at which material is fed into the drum in kg/h", + }, + }, + "required": [ + "drum-rpm", + "paddle-shaft-rpm", + "ring-gap", + "tilt-angle", + "moisture-content", + ], + }, + }, + }, + { + "type": "function", + "function": { + "name": "take_measurement", + "description": "This function takes a measurement of a shelling experiment for a given output parameter", + "parameters": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the experiment", + }, + "value": { + "type": "number", + "description": "The measured value", + }, + }, + "required": ["name", "value"], + }, + }, + }, +] + +prompt = """ +Based on the text provided to you by the user, use the provided tools to create a new experiment and ingest the data. +""" + +user_prompt = """ +7-19-2024 + +Meyer Exp. +0.290 displacement +6.7% moisture +0.45 Ring Gap + + +Batch 1 + +600 paddle +35 drum +Tilt angle 3.5 +Input: 33.45 +Discharge: +5.84 +Throughput: 17.5% +Final Discharge: 5.22 +Output 1: 4.16 | 15.9% +Output 2: 5.80 | 22.1% +Output 3: 16.27 | 62% + +Loss %: 5.97% + +Half Yield Percentage: + +Output 1: +50.76 +53.70 +50.13 +54.65 +Avg: 52.31% + +Output 2: +54 +71.31 +62.33 +122.29 +Avg: 77.48% + +Output 3: +69.43 +61.56 +67.27 +72.82 +Avg: 67.77% + +Batch - 2 + +400 paddle +35 drum +Tilt angle 3.5 +Input: 32.2 +Discharge: +6.92 +6.68 +7.28 +6.58 +6.74 +5.82 +6 +Discharge Throughput: 142.9% +Final Discharge: 5.08 +Output 1: 5.86 | 24.2% +Output 2: 5.34 | 22.1% +Output 3: 12.97 | 53.7% + +Loss %: 9.2% + + +Half Yield Percentage: + +Output 1: +67.67 +69 +69.71 +62.65 +Avg: 67.26% + +Outpu 2: +82.88 +73.53 +82.07 +68.48 +Avg: 76.74% + +Output 3 +61.63 +70.58 +76.61 +73.32 +Avg: 70.64% +""" + +response = client.chat.completions.create( + model="gpt-4o", + messages=[ + {"role": "system", "content": prompt}, + {"role": "user", "content": user_prompt}, + ], +) + +print(response.choices[0].message.content)