Skip to content

Google Summer of Code

Simon Kelly edited this page Feb 14, 2025 · 6 revisions

Spend your summer contributing to open-source, gain valuable experience, and make a real impact with Google Summer of Code (GSoC)!
If you're passionate about conversational AI and want to enhance the Open Chat Studio platform, this is the perfect opportunity for you. Read more about the program on this page.


Announcements

Stay informed by subscribing to this discussion. Make sure to check it regularly for important updates and announcements throughout the program.


Prerequisite Task (Required)

Before applying for GSoC, you must complete a prerequisite task by submitting a pull request (PR) to the Open Chat Studio repository. This helps us evaluate your coding skills, familiarity with Git/GitHub, and overall coding style. Follow the steps below to complete this task:

  1. Visit the Open Chat Studio Good First Issues board.
  2. Choose an unassigned issue and comment .take to claim it.
  3. Discuss your solution with the Open Chat Studio developers.
  4. Implement the fix according to the OCS contribution guide.
  5. If you run into any issues, feel free to ask on the discussion forum.
  6. Create a new PR with your work.
  7. Wait for feedback and review. Your PR may be merged once it passes the review process.

Please note, completing this task is mandatory. While we may not merge all PRs, rest assured that your contribution will be reviewed and appreciated. The goal is to assess your ability to contribute to the project.


Application Template

Your application should include the following:

1. About You

  • Full name
  • University and current enrollment
  • Timezone
  • Short bio
  • Programming experience (especially in Python & Django)

2. About the Project

  • Your chosen project
  • Why you chose this specific project
  • Estimated time commitment for the project
  • Abstract of your proposed solution
  • A detailed timeline with key milestones (include expected dates)

3. General Questions

  • How did you learn about Open Chat Studio?
  • What do you know about Open Chat Studio?
  • Have you contributed to Open Chat Studio before? (please include links)
  • How will this project contribute to your professional development?
  • What other career development plans do you have for the summer besides GSoC?
  • Why should we select you for this project?

4. Tasks

  • Provide the link to your pull request for the prerequisite task (even if it has been merged or closed).

For proposal examples, check out this guide and this one. Don’t hesitate to reach out to us early to discuss your application with the mentor.


Projects for 2025

Here are some exciting projects for GSoC 2025:


Enhancing Attachment Support and Configuration in Open Chat Studio

Open Chat Studio is a platform for building conversational AI applications. This project focuses on enhancing the flexibility and functionality of the platform by enabling broader support for attachments and improving bot settings for managing uploads. Key features to be developed include:

  1. Support for Receiving Attachments Across Channels: Currently, attachments can only be received when assistants are in use. This enhancement will allow attachments (images, documents, etc.) to be received from various web and other communication channels, broadening the scope of interaction between users and the bot.

  2. Expanded Bot Settings for Upload Control: A new, more generic settings interface will be introduced to allow bots to control the types of attachments they can receive. This will include options to enable or restrict certain file types, such as images and documents, making it easier for developers to manage uploads according to their use case.

  3. LLM Runnable Update for Attachment Support: The LLM (Large Language Model) runnable will be updated to support attachments. This update will allow the system to process and utilize attachments in interactions, enhancing the ability of the AI to respond to users based on the content of the received attachments.

  4. Audio Output Configuration for LLM: The platform will be enhanced to include support for configuring audio output in LLMs. This will allow developers to customize how the bot responds with audio, opening up new possibilities for audio-driven interactions.

Expected Outcomes:

  • Improved interaction capabilities across multiple channels.
  • More control over attachment handling and configuration for developers.
  • Enhanced user experience by allowing the bot to handle different types of media and output formats.
  • A more flexible Open Chat Studio that caters to diverse use cases, from customer support to creative content generation.

Issue: Link to GitHub Issue


AI Help Integration for Open Chat Studio

This project aims to integrate AI-powered help functionality into the Open Chat Studio (OCS) platform for web users. The goal is to provide users with intelligent, context-sensitive assistance that enhances their experience, whether they need help writing code, troubleshooting issues, or navigating the platform’s documentation.

The project will involve the following key areas:

  1. Global AI Provider Integration: A key component of the project is the integration of a global AI provider that will serve as the primary help resource for users across the platform. This will be separate from the per-team LLM (Large Language Model) providers currently used in OCS. An alternative approach to consider is providing an admin view, allowing team-specific AI providers to be selected.

  2. Help Bot Framework: A basic framework will be developed to make it easy to implement and use a "help bot" within the product. This framework will ensure that the help bot is integrated seamlessly across the platform and can provide context-aware assistance.

  3. UI Toolkit for Help Bot Exposure: To expose the help bot functionality on the platform’s user interface, a UI toolkit will be developed. This toolkit may consider using existing solutions like the [Open Chat Studio Widget](https://www.npmjs.com/package/open-chat-studio-widget) to provide a general-purpose, easily deployable bot interface.

Use Cases:

  • Code Assistance: The help bot will assist users in writing code for specific languages such as Python and Node.js, offering examples and debugging help.
  • Node-Specific Help in Pipelines: The bot will provide context-specific help for users working with Node in pipelines, offering insights into common tasks and best practices.
  • General Help with Documentation: The help bot will provide answers to general questions by referencing the platform’s documentation, making it easier for users to find the information they need.

Expected Outcomes:

  • A seamless AI-powered help bot integrated into the OCS platform.
  • Flexible AI provider management with options for global and team-specific configurations.
  • Improved user experience with an easy-to-use interface for accessing help on demand.
  • Enhanced platform utility, offering help with coding, troubleshooting, and documentation navigation.

Issue: Link to GitHub Issue


Here’s a more detailed version of the task for your intern:


Track System Usage Metrics**

We need to track and analyze key usage metrics across our system to understand resource consumption, and improve visibility into system usage.

Key Metrics to Track

  1. Token Usage for LLMs

    • Track the number of input and output tokens used per request.
    • Break down usage by team, time period, chatbot, LLM provider and model.
  2. Speech-to-Text (STT) & Text-to-Speech (TTS) Usage

    • Log the duration of STT audio processed and words transcribed.
    • Track TTS output length (character count or duration).
    • Break down usage by team, time period, chatbot, and provider.
  3. Messaging Input & Output

    • Count messages sent and received.
    • Break down usage by team, time period, chatbot, and provider.

Deliverables

  • Data Mode Design

    • Design the data models necessary for storing this information bearing in mind that it should make it easy to analyze the data.
  • Implement usage recording

    • Update the OCS code with the data models
    • Design and implement the services necessary for recording the usage
  • Basic Analysis & Reporting

    • Create a basic dashboard for team based metrics.
    • Update the admin dashboard to include basic using metrics.

Contribution Guidelines

Please review our contribution guidelines before submitting your work.


Contact Us

Have questions or need help? We're here to assist you! To get in touch:

  1. Visit the Open Chat Studio Discussions tab.
  2. Start a new discussion by clicking the green "New Discussion" button (if you can't see the button, please log in).
  3. Post your question (remember, all discussions are publicly visible).

Please reach out early so we can discuss your application with a mentor. Mentors will do their best to provide feedback and support throughout the process.