small changes

softchris-patch-4
chris 1 week ago
parent 8bc12b4a89
commit 4bc1fb5314

@ -4,7 +4,9 @@ This chat project shows how to build a Chat Assistant using GitHub Models.
Here's what the finished project looks like: Here's what the finished project looks like:
![Chat app](./assets/screenshot.png) <div>
<img src="./assets/screenshot.png" alt="Chat app" width="600">
</div>
Some context, building Chat assistants using generative AI is a great way to start learning about AI. What you'll learn is to integrate generative AI into a web app throughout this lesson, let's begin. Some context, building Chat assistants using generative AI is a great way to start learning about AI. What you'll learn is to integrate generative AI into a web app throughout this lesson, let's begin.
@ -12,11 +14,16 @@ Some context, building Chat assistants using generative AI is a great way to sta
For the backend, we're using GitHub Models. It's a great service that enables you to use AI for free. Go to its playground and grab code that corresponds to your chosen backend language. Here's what it looks like at [GitHub Models Playground](https://github.com/marketplace/models/azure-openai/gpt-4o-mini/playground) For the backend, we're using GitHub Models. It's a great service that enables you to use AI for free. Go to its playground and grab code that corresponds to your chosen backend language. Here's what it looks like at [GitHub Models Playground](https://github.com/marketplace/models/azure-openai/gpt-4o-mini/playground)
![Playground](./assets/playground.png) <div>
<img src="./assets/playground.png" alt="GitHub Models AI Playground" with="600">
</div>
As we said, select the "Code" tab and your chosen runtime. As we said, select the "Code" tab and your chosen runtime.
![Playground choice](./assets/playground-choice.png) <div>
<img src="./assets/playground-choice.png" alt="playground choice" with="600">
</div>
In this case we select Python, which will mean we pick this code: In this case we select Python, which will mean we pick this code:
@ -81,7 +88,7 @@ def call_llm(prompt: str, system_message: str):
With this function `call_llm` we can now take a prompt and a system prompt and the function ends up returning the result. With this function `call_llm` we can now take a prompt and a system prompt and the function ends up returning the result.
### customize ### Customize AI Assistant
If you want to customize the AI assistant you can specify how you want it to behave by populating the system prompt like so: If you want to customize the AI assistant you can specify how you want it to behave by populating the system prompt like so:
@ -161,7 +168,7 @@ To integrate *llm.py* here's what we need to do:
Great, now we have done what we need. Great, now we have done what we need.
### cors ### Configure Cors
We should call out that we set up something like CORS, cross-origin resource sharing. This means that because our backend and frontend will ron on different ports, we need to allow the frontend to call into the backend. There's a piece of code in *api.py* that sets this up: We should call out that we set up something like CORS, cross-origin resource sharing. This means that because our backend and frontend will ron on different ports, we need to allow the frontend to call into the backend. There's a piece of code in *api.py* that sets this up:
@ -174,7 +181,7 @@ CORS(app) # * example.com
Right now it's been set up to allow "*" which is all origins and that's a bit unsafe, we should restrict it once we go to production. Right now it's been set up to allow "*" which is all origins and that's a bit unsafe, we should restrict it once we go to production.
## all together ## Run your project
Ok, so we have *llm.py* and *api.py*, how can we make this work with a backend? Well, there's two things we need to do: Ok, so we have *llm.py* and *api.py*, how can we make this work with a backend? Well, there's two things we need to do:
@ -208,7 +215,7 @@ app.js
styles.css styles.css
``` ```
Let's start with *index.html*: Let's start with **index.html**:
```html ```html
<html> <html>
@ -228,6 +235,8 @@ Let's start with *index.html*:
This above is the absolute minimum you need to support a chat window, as it consists of a textarea where messages will be rendered, an input for where to type the message and a button for sending your message to the backend. Let's look at the JavaScript next in *app.js* This above is the absolute minimum you need to support a chat window, as it consists of a textarea where messages will be rendered, an input for where to type the message and a button for sending your message to the backend. Let's look at the JavaScript next in *app.js*
**app.js**
```js ```js
// app.js // app.js
@ -304,12 +313,14 @@ Let's look at styling next, here's where you can go really crazy and make it loo
background: blue; background: blue;
} }
.message: assistant: grey; .message.assistant {
background: grey;
}
``` ```
With these three classes, you will style messages different depending on where they come from an assistant or you as a user. If you want to be inspired, check out the `frontend/` folder. With these three classes, you will style messages different depending on where they come from an assistant or you as a user. If you want to be inspired, check out the `solution/frontend/styles.css` folder.
### base url ### Change Base Url
There was one thing here we didn't set and that was `BASE_URL`, this is not known until your backend is started. To set it: There was one thing here we didn't set and that was `BASE_URL`, this is not known until your backend is started. To set it:
@ -322,11 +333,11 @@ Create your own folder *project* with content like so:
```text ```text
project/ project/
frontend/ frontend/
index.html index.html
app.js app.js
styles.css styles.css
backend/ backend/
api.py api.py
llm.py llm.py
``` ```
@ -349,5 +360,5 @@ Change also the CSS and text to your liking, so do changes in *index.html* and *
## Summary ## Summary
Great, you've learned from scratch how to create a personal assistant using AI. We'v done so using GitHub Models, a backend in Python and a frontend in HTML, CSS and JavaScript Great, you've learned from scratch how to create a personal assistant using AI. We've done so using GitHub Models, a backend in Python and a frontend in HTML, CSS and JavaScript

Loading…
Cancel
Save