feat(api): add createEmbeddingForPart function #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit adds a new function
createEmbeddingForPart
to the chat API route. This function takes a part and creates an embedding using the OpenAI API. The result is an array of numbers. The function is used to calculate the cosine similarity between the user's input and various parts of a mecha.The cosineSimilarity function has been added as well to calculate the cosine similarity between two arrays of numbers. The function checks if the lengths of the arrays are equal and appends zeros to the shorter array if needed. Then it calculates the dot product and norms of the arrays to determine the similarity.
The POST handler in the chat API route has been updated to use the new functions. It creates an embedding for the user's input and calculates the cosine similarity between the user's input and various parts of the mecha. It then selects the top 5 parts with the highest similarity scores and includes them in the response to the user.
In the page component, a new import statement has been added to import the
parts
module from the DB.