Skip to content

Comments

Chat: quickstart and chatbots info for students#14

Merged
neagualexa merged 16 commits intomainfrom
b595-chat-functions
Oct 16, 2025
Merged

Chat: quickstart and chatbots info for students#14
neagualexa merged 16 commits intomainfrom
b595-chat-functions

Conversation

@neagualexa
Copy link
Collaborator

@neagualexa neagualexa commented Jan 29, 2025

@neagualexa neagualexa removed the request for review from peterbjohnson March 21, 2025 16:00
Copy link
Member

@peterbjohnson peterbjohnson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've made some comments on the terminology. There's more though - to many to comment on individually. I think you need to go through just looking at what you call the things and check that you're consistent.

A couple of other minor things:

  • 'please' isn't usually necessary, just say it how it is
  • apostrophes (e.g. student's) are considered informal and to be avoided. It's the genitive case and can usually be written with 'of'.

The Chatbots have at their basis a [Large Language Model (LLM)](https://en.wikipedia.org/wiki/Large_language_model) which received information regarding:

- the details of the Question the student is on currently (the raw markdown content of the question (all parts & response areas), the question name and number, and the set name, number and description),
- the final answer, structured tutorial, and worked solutions of the Question,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For all parts?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, the markdown of the whole question (including all of its parts) is provided

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok I suggest just provide it as a list:

  • The question: all parts in markdown, etc.

('the details' is redundant, and the nested parentheses are confusing)

- the details of the Question the student is on currently (the raw markdown content of the question (all parts & response areas), the question name and number, and the set name, number and description),
- the final answer, structured tutorial, and worked solutions of the Question,
- the answer for each Response Area,
- the progress of the student on all parts of the Question,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What data is provided? What does 'progress' mean?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this has been expanded on and clarified

"conversation_history": [{"type":"user","content":"hi"}]
}
}
{"body":"{\"message\": \"hi\", \"params\": {\"conversation_id\": \"12345Test\", \"conversation_history\": [{\"type\": \"user\", \"content\": \"hi\"}]}}"}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there an issue with the commit here? I'm reviewing in GH on the browser, not sure how this will appear when rendered.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it emphasises that the body needs to be stringified

A chat function is a function which calls Large Language Models (LLMs) to respond to the messages of students given contextual data:

- question data
- user data such as past responses to the problem
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

link to the info page with a full listing?

2. **`scr/agents/{base_agent}/{base}_prompts.py`**: This is where you can write the system prompts that describe how your AI Assistant should behave and respond to the user.

3. Make sure to add your agent `invoke()` function to the `module.py` file.
3. _If you edited the chatbot agent file name_, make sure to add your chatbot `invoke()` function to the `module.py` file.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If agent is the right word, fine (because that's how it's coded), but it's still confusing

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes it has got confusing. I have noted down that once I go back to modelling the boilerplate for chat functions with Marcus, then I will update all those instructions.

```

6. In order to make your new chatbot available on the LambdaFeedback platform, you will have to get in contact with the ADMINS on the platform.
!!! example "Example Request to chatFunctionBoilerplate-dev"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you expose the real URL, then people will call it and hence use our API key. So you need to remove that part of the URL (e.g. use https://****.execute-api...). As this is a public repo, you now need to go and change the AWS addresses so that this historical commit can't be used to access our API key.

Copy link
Collaborator Author

@neagualexa neagualexa Oct 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that was a dummy url. It does not exist in our infrastructure. So no need for worry. But I removed the urls and put ***s

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, this is similar to how evaluation functions are presented

https://c1o0u8se7b.execute-api.eu-west-2.amazonaws.com/default/<function name as defined in config.json>

@peterbjohnson should I replace the url here as well? (for evaluation functions the url is now invalid)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea.

Original eval functions didn't imply such high costs (no LLM calls) but that may change.


6. Once the `dev` chat function is fully tested, you can merge the code to the default branch (`main`). This will trigger the `main.yml` workflow, which will deploy the `staging` and `prod` versions of your chat function. Please contact the ADMIN to provide the URLS for the `staging` and `prod` versions of your chat function.

6. In order to make your new chat function available on any of the environments of the Lambda Feedback platform, you will have to get in contact with the ADMINS on the platform.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Repetition?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't say it is a repetition. first point mentions the github workflow cicd and the next step describes that admins need to upload the chat function onto the platform

(I updated the step counts)

Copy link
Member

@peterbjohnson peterbjohnson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates

@neagualexa neagualexa merged commit 4e64368 into main Oct 16, 2025
1 check passed
@neagualexa neagualexa deleted the b595-chat-functions branch October 16, 2025 08:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants