add-assistant #31

Open
Ari wants to merge 8 commits from Jam-Master/Altium-archimajor-3d-printer-driver-demo:add-assistant into main
3 changed files with 38 additions and 13 deletions
Showing only changes of commit d12a3a0f4b - Show all commits

View File

@ -69,7 +69,7 @@ class ConfigureAssistant:
instructions=AI_ASSISTANT_INSTRUCTIONS, instructions=AI_ASSISTANT_INSTRUCTIONS,
model="gpt-4o", model="gpt-4o",
temperature=0.1, temperature=0.1,
tools=[{"type": "file_search"}, {"type": "code_interpreter"}], tools=[{"type": "file_search"}, ], # {"type": "code_interpreter"}], # Code interpreter doesn't seem to return a delta properly
) )
def get_file_paths(self, excluded_folders=None): def get_file_paths(self, excluded_folders=None):
@ -101,10 +101,16 @@ class ConfigureAssistant:
# TO DO: Preprocess Outjob and PcbDoc files into something OpenAI (or future vector DB) can understand # TO DO: Preprocess Outjob and PcbDoc files into something OpenAI (or future vector DB) can understand
excluded_extensions = ["schdoc", "exe", "so", "dll", "outjob", "pcbdoc", "png"] excluded_extensions = ["schdoc", "exe", "so", "dll", "outjob", "pcbdoc", "png"]
if extension in self.SUPPORTED_FORMATS and extension not in excluded_extensions: # If the extension is not in supported formats and not in excluded extensions, rename the file
return os.path.basename(file_path), True if extension not in self.SUPPORTED_FORMATS and extension not in excluded_extensions:
new_file_path = f"{file_path}.txt"
os.rename(file_path, new_file_path)
print(f"Renamed unsupported file: {file_path} to {new_file_path}")
return new_file_path, True
elif extension in self.SUPPORTED_FORMATS:
return file_path, True
else: else:
print(f"Skipping unsupported file: {file_path}") print(f"Skipping excluded file: {file_path}")
return file_path, False return file_path, False
def create_vector_store(self): def create_vector_store(self):
@ -127,10 +133,10 @@ class ConfigureAssistant:
if not should_upload: if not should_upload:
continue continue
try: try:
with open(path, "rb") as file_stream: with open(new_filename, "rb") as file_stream:
file_content = file_stream.read() file_content = file_stream.read()
spoofed_file = io.BytesIO(file_content) spoofed_file = io.BytesIO(file_content)
spoofed_file.name = new_filename # Spoof the filename spoofed_file.name = os.path.basename(new_filename) # Spoof the filename
# Upload the file to the vector store # Upload the file to the vector store
file_batch = ( file_batch = (
self.client.beta.vector_stores.file_batches.upload_and_poll( self.client.beta.vector_stores.file_batches.upload_and_poll(

View File

@ -1,7 +1,8 @@
import os
import logging
import pandas as pd
from openai import OpenAI from openai import OpenAI
import argparse
import logging
import os
import pandas as pd
import textwrap import textwrap
class OpenAIResourceManager: class OpenAIResourceManager:
@ -167,12 +168,30 @@ class OpenAIResourceManager:
print("") print("")
self.show_all_files() self.show_all_files()
if __name__ == "__main__":
def main():
"""
Main function that either shows or deletes resources based on the command line arguments.
"""
parser = argparse.ArgumentParser(
description="Displays or deletes all resources associated with the OpenAI account."
)
parser.add_argument(
"--delete", action="store_true", help="Flag to delete resources instead of showing them."
)
args = parser.parse_args()
# Get the OpenAI API key from the environment variables # Get the OpenAI API key from the environment variables
api_key = os.getenv("OPENAI_API_KEY") api_key = os.getenv("OPENAI_API_KEY")
# Create an instance of the OpenAIResourceManager # Create an instance of the OpenAIResourceManager
manager = OpenAIResourceManager(api_key=api_key) manager = OpenAIResourceManager(api_key=api_key)
# Show or delete all resources in tables # Delete resources conditionally
if args.delete:
manager.delete_all_resources()
manager.show_all_resources() manager.show_all_resources()
# manager.delete_all_resources()
if __name__ == "__main__":
main()

View File

@ -189,7 +189,7 @@ if __name__ == "__main__":
parser.add_argument( parser.add_argument(
"--assistant_id", "--assistant_id",
type=str, type=str,
default="asst_JUXTF2T6n3RFDjkolNqdtPxj", default="asst_W20wgEl0ZModBiMWzcgC0E3E",
help="The assistant ID to use.", help="The assistant ID to use.",
) )
parser.add_argument( parser.add_argument(