Home / Companies / Stream / Blog / January 2025

January 2025 Summaries

9 posts from Stream

Filter
Month: Year:
Post Summaries Back to Blog
Kotlin, now a preferred language for Android development, offers significant features like built-in support for asynchronous and non-blocking programming through coroutines, with tools such as launch, async, and runBlocking. While runBlocking is commonly used in Kotlin's documentation to initiate coroutines, it should be used cautiously in Android development since it blocks the current thread until the coroutine's execution is complete, risking UI freezes or an Application Not Responding (ANR) when used on the main thread. The article explores the internal workings of runBlocking, demonstrating through examples how it blocks the thread and the potential deadlocks that may occur when misused, particularly with Dispatchers.Main. It emphasizes that runBlocking is more appropriately used in unit testing and controlled synchronization tasks on I/O threads where blocking is acceptable. Additionally, the article suggests alternatives like Job.join() for synchronization purposes and highlights the importance of understanding coroutines' internal mechanisms to leverage their full potential in Android development.
Jan 31, 2025 2,753 words in the original blog post.
In the digital age, content moderation has become increasingly complex, with online platforms needing to manage communications in multiple languages to enforce community guidelines effectively. The article discusses the use of advanced large language models (LLMs), like Anthropic's Claude, for automated multilingual content moderation, showcasing how these models can detect and flag inappropriate content across various languages, including Hungarian and Korean. By implementing such AI-driven moderation systems, platforms can handle messages more efficiently without specifying each language or inappropriate word, allowing for seamless moderation even when users switch languages mid-conversation. The process involves intercepting user messages, sending them to an LLM for analysis, and then deciding whether to display the original message or replace it with a "[Message removed]" tag if deemed inappropriate. The article also highlights potential improvements, such as nuanced prompting for varying levels of profanity and setting escalation protocols for different severities of language, while emphasizing the advantages of using comprehensive moderation platforms like Stream's Moderation API, which offers real-time, multilingual, and multimedia moderation capabilities.
Jan 27, 2025 1,576 words in the original blog post.
Jófogás, a prominent online marketplace in Hungary, transitioned to independence following its demerger from Adevinta, which provided an opportunity for innovation and transformation. To maintain a user-friendly and secure platform, Jófogás partnered with Stream to integrate its Chat API and moderation tools, which offered a scalable, customizable solution aligned with Jófogás's growth vision. This collaboration, marked by open communication and mutual development efforts, enabled Jófogás to enhance its platform's safety and user experience by reducing harmful behaviors and phishing attempts. Stream’s flexible architecture and developer-friendly resources facilitated a seamless integration process, positioning Jófogás for continued innovation. The partnership exemplifies how strategic technology solutions can drive long-term growth and adaptability in online marketplaces.
Jan 07, 2025 683 words in the original blog post.
Stream's Moderation API offers a comprehensive and flexible solution for developers seeking to implement content moderation within their applications, ensuring a safe and positive user experience. The API includes features such as the Moderation Check Endpoint for real-time analysis of various content types, including text, images, and videos, and provides recommendations such as keeping, flagging, removing, or shadow-blocking content based on predefined policy rules. Developers can configure moderation rules and enable specific harm detection engines like toxicity and platform circumvention prevention. Additionally, the API supports flagging content for further review, managing flagged content through a Query Review Queue, and performing actions such as deleting messages or banning users via a Submit Action endpoint. Webhooks allow for integration of custom logic for moderation events, facilitating real-time notifications and streamlined management of flagged content. By utilizing these functionalities, developers can tailor robust moderation systems to their specific needs, promoting a healthy in-app community.
Jan 06, 2025 1,104 words in the original blog post.
Integrating AI into enterprise applications can be challenging due to limitations of large language models (LLMs), which are typically trained on extensive datasets rather than specific enterprise data. This text discusses the implementation of Agentic Retrieval Augmented Generation (RAG) and vector databases to enhance search accuracy and efficiency in LLM responses, particularly through the use of a simple AI chatbot that interacts with data in PDF documents. The process involves employing frameworks such as Phidata and vector databases like LanceDB, alongside an API from providers such as OpenAI, to build a retrieval-based agent. RAG leverages knowledge bases to provide LLMs with the latest enterprise-specific information, thus minimizing issues like hallucinations or outdated responses. An advanced form, agentic RAG, allows multiple vector databases to be utilized, enhancing the LLM's ability to perform complex tasks beyond mere response generation. Key features of agentic RAG include multi-document searches, handling multipart requests, and sequential reasoning, which are crucial in enterprise applications for automating complex tasks and improving workflow efficiency. The text also provides a tutorial on building an agentic RAG system using Python, highlighting the configuration and integration steps necessary to create a functional information retrieval agent.
Jan 06, 2025 2,247 words in the original blog post.
Building on previous work to integrate authentication into an application, this guide details the development of a full-stack note-taking app that allows users to create and view notes. The process begins by introducing necessary dependencies and setting up a styling plugin with Vite, followed by creating a secure API endpoint using middleware to authorize user access through JWT tokens. A storage structure is defined using a key-value database to manage the notes. The guide then outlines the steps for setting up the API to handle GET requests for retrieving user-specific notes, ensuring secure access, and explaining how to handle unauthorized requests. On the client side, a custom React hook is created to fetch notes, utilizing session tokens for authentication. The user interface is designed with React components that manage the display of notes, error handling, and loading states. The guide also covers the creation of a note with validation using a schema and a POST request to save the note, along with a form interface on the frontend to collect note data. The article concludes by previewing further enhancements for editing and deleting notes in a future installment.
Jan 06, 2025 5,125 words in the original blog post.
The article details the enhancement of a notes application by adding full-stack functionality for editing and deleting notes. It introduces a schema for validating note IDs, sets up API endpoints for retrieving, updating, and deleting notes, and explains the creation of hooks and components to manage these actions within the application. The process includes setting up HTTP request handlers for GET, PUT, and DELETE operations, validating inputs using schemas, and ensuring only authenticated users can modify notes. The frontend application is updated with hooks to fetch and edit notes, and UI components are developed to support these functionalities, including forms for editing notes and alerts for confirming deletions. The article concludes by stating that in the next article, the API will be deployed using a cloud provider.
Jan 06, 2025 3,799 words in the original blog post.
The text discusses a project aimed at enhancing Stream AI integration by introducing multiuser functionality and retrieval-augmented generation (RAG) from PDF uploads. This initiative seeks to transform AI chats from a one-on-one experience into a collaborative team tool where members can interact with AI simultaneously, fostering shared knowledge and efficient problem-solving. The text explains the technical steps involved in implementing these features, such as extending React and Node.js components to support dynamic user identification and PDF file uploads, which are processed to provide AI with specific contextual information. By incorporating a RAGService, the AI can retrieve relevant context from PDF document embeddings stored in Pinecone, thus enabling more accurate and contextual responses during team chats. The text suggests potential future enhancements, including expanding data inputs and integrating AI with internal systems to automate tasks, thereby positioning AI as an active team member.
Jan 06, 2025 2,552 words in the original blog post.
Stream provides a comprehensive solution for enhancing internet video call quality by offering a detailed video statistics dashboard and user feedback integration. The dashboard allows developers to monitor key metrics such as latency, jitter, and connection times, using tools like WebRTC's getStats() API and Chrome's built-in debugging tools to identify and resolve issues. Stream's platform also includes a user ratings API for collecting direct feedback, enabling developers to correlate user satisfaction with technical performance data and implement improvements. The detailed insights and metrics help developers proactively manage call quality, ensuring a reliable user experience across various applications like virtual classrooms and telehealth platforms. Stream emphasizes the importance of not just relying on raw data but also considering user feedback and common sense to diagnose and address call quality issues effectively.
Jan 02, 2025 1,656 words in the original blog post.