Skip to content

Commit

Permalink
fix image paths
Browse files Browse the repository at this point in the history
  • Loading branch information
lwcarani committed May 23, 2024
1 parent cf60508 commit 9c6e769
Show file tree
Hide file tree
Showing 15 changed files with 11 additions and 11 deletions.
4 changes: 2 additions & 2 deletions _posts/2024-05-01-aimessages-reflections-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ date: 2024-05-01 12:00:00 +0500
categories: [Software Engineering, aiMessages]
tags: [programming, typescript, iOS]
image:
path: /assets/img/aimessages/aiMessagesIcon.png
path: /assets/img/aiMessagesIcon.png
alt: aiMessages
---

In March of 2023, I partnered with my good friend [Jake Taylor](https://github.com/jakee417/) to build an iOS App that did two things:
1. Bring the ChatGPT "Large Language Model" (LLM) experience to iMessage (both in private and group chats)
2. Allow users to generate photo-realistic images with generative AI via an iMessage Extension App

In our infinite cleverness, we named this app ["aiMessages"](https://sites.google.com/view/aimessagesapp/home). We launched on the Apple App Store June 2023 and at the time of writing this post (May 2024) it is still available for [download](https://apps.apple.com/us/app/aimessages/id6446336518).
In our infinite cleverness, we named this app ["aiMessages"](https://sites.google.com/view/aimessagesapp/home). We launched on the Apple App Store June 2023 and at the time of writing this post (May 2024) it is still available for [download](https://apps.apple.com/us/app/id6446336518).

As I continue to learn and grow as a software developer / engineer, I try to consume information from a variety of sources: textbooks, online courses, podcasts, blogs, etc., but I've always found that the most effective form of learning for me is through actually building real software. This project was no exception. Most (if not all) parts of our final tech stack I had never used before this project. Building this app with Jake was deeply satisfying (and at times addicting), and through the process Irew as a software engineer.

Expand Down
2 changes: 1 addition & 1 deletion _posts/2024-05-08-aimessages-reflections-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ date: 2024-05-08 12:00:00 +0500
categories: [Software Engineering, aiMessages]
tags: [programming, typescript, iOS]
image:
path: /assets/img/aimessages/aiMessagesIcon.png
path: /assets/img/aiMessagesIcon.png
alt: aiMessages
---

Expand Down
6 changes: 3 additions & 3 deletions _posts/2024-05-15-aimessages-reflections-3.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ categories: [Software Engineering, aiMessages]
tags: [programming, typescript, iOS, LoopMessage]
mermaid: true
image:
path: /assets/img/aimessages/aiMessagesIcon.png
path: /assets/img/aiMessagesIcon.png
alt: aiMessages
---

Expand Down Expand Up @@ -395,7 +395,7 @@ export const WELCOME_MESSAGE_NEW_GROUP: string =
"(that's aiMessages if you haven't given me one yet), " +
"to anyone with an aiMessages account.\n\n" +
"Oh! And if you don't have the app yet, follow the link 👇 to get started! " +
"https://apps.apple.com/us/app/aimessages/id6446336518";
"https://apps.apple.com/us/app/id6446336518";
```

Function for sending welcome message:
Expand Down Expand Up @@ -704,7 +704,7 @@ To this end, in the frontend iOS portion of the app, we allowed users to specify

Below you can see two examples of the user selecting a personality for their chatbot. In the first example, the user selected "hamster" as the personality for their chatbot. In the second, they selected "Grinning," which you can see along with the personality description.

![alt](/assets/img/aimessages/personality_example_2.png){: .shadow } | ![alt](/assets/img/aimessages/personality_example_1.png){: .shadow }
![alt](/assets/img/personality_example_2.png){: .shadow } | ![alt](/assets/img/personality_example_1.png){: .shadow }

> Every emoji actually represented a different personality. So, to select a new personality for their bot, users just selected an emoji, and every emoji had a unique, pre-generated personality description associated with it. We actually used ChatGPT to generate all of the personalities associated with each emoji!
{: .prompt-info }
Expand Down
2 changes: 1 addition & 1 deletion _posts/2024-05-20-aimessages-reflections-4.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ date: 2024-05-20 12:00:00 +0500
categories: [Software Engineering, aiMessages]
tags: [programming, typescript, iOS, OpenAI]
image:
path: /assets/img/aimessages/aiMessagesIcon.png
path: /assets/img/aiMessagesIcon.png
alt: aiMessages
---

Expand Down
8 changes: 4 additions & 4 deletions _posts/2024-05-22-aimessages-reflections-5.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ date: 2024-05-22 12:00:00 +0500
categories: [Software Engineering, aiMessages]
tags: [programming, typescript, iOS, Stability AI, Clipdrop]
image:
path: /assets/img/aimessages/aiMessagesIcon.png
path: /assets/img/aiMessagesIcon.png
alt: aiMessages
---

Expand Down Expand Up @@ -707,7 +707,7 @@ The text to image API was the most popular functionality in the app. In it, user

Below you can see an example of the functionality in action. The user generated an image with the prompt "A cool sun wearing blue sunglasses," and the resultant image is shown below. This image can then easily be shared with friends directly through iMessage, or by converting into a sticker.

![alt](/assets/img/aimessages/exampleExtension.png){: w="300" h="600" .normal .shadow}
![alt](/assets/img/exampleExtension.png){: w="300" h="600" .normal .shadow}

And here's the full `generateResponseWithStabilityAiTextToImageApi` function we used to call the API and convert a user's `prompt` into a new `image`:

Expand Down Expand Up @@ -898,7 +898,7 @@ Below you can see an example of the functionality in action. The image on the le

Initial Image | After Applying Mask
- | -
![alt](/assets/img/aimessages/image_mask_before.png){: .shadow } | ![alt](/assets/img/aimessages/image_mask_after.png){: .shadow }
![alt](/assets/img/image_mask_before.png){: .shadow } | ![alt](/assets/img/image_mask_after.png){: .shadow }

And here's the full `generateResponseWithStabilityAiImageToImageWithMaskApi` function we used to call the API and convert a user's `image` and `prompt` into a new `image`:

Expand Down Expand Up @@ -997,7 +997,7 @@ Below you can see some examples of the functionality in action. First, a doodle

Skyline Doodle | Resultant Image | Forest Doodle | Resultant Image
- | - | - | -
![alt](/assets/img/aimessages/skyline_before.png){: .shadow } | ![alt](/assets/img/aimessages/skyline_after.png){: .shadow } | ![alt](/assets/img/aimessages/forest_before.png){: .shadow } | ![alt](/assets/img/aimessages/forest_after.png){: .shadow }
![alt](/assets/img/skyline_before.png){: .shadow } | ![alt](/assets/img/skyline_after.png){: .shadow } | ![alt](/assets/img/forest_before.png){: .shadow } | ![alt](/assets/img/forest_after.png){: .shadow }

And here's the full `generateResponseWithClipdropSketchToImageApi` function we used to call the API and convert a user's `sketch` + `prompt` into a new `image`:

Expand Down
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes

0 comments on commit 9c6e769

Please sign in to comment.