Nouvelle publication

查找

Article
· Mai 18, 2024 2m de lecture

Wall-M : Perform semantic queries on your email inbox and get accurate responses along with source citations

 

Introduction

With the rise of Gen AI, we believe that now users should be able to access unstructured data in a much simpler fashion. Most people have many emails that they cannot often keep track of. For example, in investment/trading strategies, professionals rely on quick decisions leveraging as much information as possible. Similarly, senior employees in a startup dealing with many teams and disciplines might find it difficult to organize all the emails that they receive. These common problems can be solved using GenAI and help make their lives easier and more organized. The possibility of hallucinations in GenAI models can be scary and that's where RAG + Hybrid search comes in to save the day. This is what inspired us to build the product WALL-M ( Work Assistant LL-M). At HackUPC 2024, we developed WALL-M as part of the InterSystems vector search challenge. It is a retrieval augmented generation (RAG) platform designed for accurate question-answering in emails with minimal hallucinations. This solution addresses the challenge of managing numerous long emails, especially in fast-paced fields like investment/trading, startups with multiple teams and disciplines, or individuals looking to manage their full inbox.   
 

What it does

You can load the emails from your inbox, and choose to filter by date and senders to define the context for the LLM. Then within the context, you can choose to make specific queries related to the chosen emails. Example 1, trading ideas based on select bank reports or investment research reports. Example 2, An employee in a company/startup can ask for a list of action items based on the work-emails they received over the last week.


After this, if you have any further questions we also added a segment to chat with Wall-M, based on the context selected using the initial query. This ensures that all the follow up questions still receive responses that do not hallucinate and include the source emails used to generate the response.

 

How we built it

Frontend: Taipy

Backend: InterSystems Database, SQL

RAG + Vector Search: InterSystems Software, ChatGPT

Tools: LangChain, LlamaIndex

 

Challenges we ran into

Learning to work with the Python full-stack framework "TaiPy" Prompt optimization to avoid hallucinations Using LangChain to get a specific template that includes citations pointing to the source of the response/claim Incompatibilities between different tools we wanted to use

What's next for Wall-M

Use the proof of concept for the specified use cases and evaluate its performance using benchmarks to validate the product's credibility. Improved integration into commonly used email applications such as Outlook and Gmail with personalized uses to improve the utility of WALL-M

Try it out 

Our Github repository : https://github.com/lars-quaedvlieg/WALL-M

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Annonce
· Mai 18, 2024

[Video] IRIS AI Studio: A detailed Functionality & Code Walkthrough

Hi Community,

This is a detailed, candid walkthrough of the IRIS AI Studio platform. I speak out loud on my thoughts while trying different examples, some of which fail to deliver expected results -  which I believe is a need for such a platform to explore different models, configurations and limitations. This will be helpful if you're interested in how to build 'Chat with PDF' or data recommendation systems using IRIS DB and LLM models.

2 Comments
Discussion (2)0
Connectez-vous ou inscrivez-vous pour continuer
Question
· Mai 18, 2024

Confusion regarding order status

Hi. I am struggling to understand the meaning of different elements of an order in my hospital's EHR.

Page: EPR > All Orders

Question: What is the difference between Start Date and Date Executed and Order End Date? If an order was started on Monday and executeed on Tuesday.. does this mean the patient received the order on Monday or Tuesday? and what is End date?

Also, how do I interpret order status? What is the difference between discontinued, verified, and executed?

Also, some  orders have a green / red / yellow bar to their left, that continues as a line under that row. What does that mean?

Thanks in advance.

2 Comments
Discussion (2)1
Connectez-vous ou inscrivez-vous pour continuer
Article
· Mai 18, 2024 3m de lecture

Enhancing Preventive Health Engagement: The Backend Powering ChatIRIS with InterSystems IRIS

ChatIRIS Health Coach, a GPT-4 based agent that leverages the Health Belief Model as a psychological framework to craft empathetic replies. This article elaborates on the backend architecture and its components, focusing on how InterSystems IRIS supports the system's functionality.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Article
· Mai 18, 2024 3m de lecture

IRIS AI Studio: Playground to explore RAG capabilities on top of IRIS DB vector embeddings

In the previous article, we saw in detail about Connectors, that let user upload their file and get it converted into embeddings and store it to IRIS DB. In this article, we'll explore different retrieval options that IRIS AI Studio offers - Semantic Search, Chat, Recommender and Similarity. 

New Updates  ⛴️ 

  • Added installation through Docker. Run `./build.sh` after cloning to get the application & IRIS instance running in your local
  • Connect via InterSystems Extension in vsCode - Thanks to @Evgeny Shvarov 
  • Added FAQ's in the home page that covers the basic info for new users

Semantic Search

Semantic Search is a data retrieval method that aims to understand the user's intent and the context of the query rather than just matching keywords. It considers the relationship between words and concepts, going beyond simple keyword matching.

Building upon the index creation and data loading into the IRIS DB covered in the previous article's Connectors code, we now start with the index and run the query engine:

Ref. to `query_llama.py`

query_engine = index.as_query_engine()
response = query_engine.query(query)

 

Chat Engine

The Chat Engine augments the loaded content and acts as a stateful version of the previous query_engine. It keeps track of the conversation history and can answer questions with past context in mind.

Ref. to `chat_llama.py`

chat_engine = index.as_chat_engine(chat_mode='condense_question')
response = chat_engine.chat(user_message)

 

Recommender 

The Recommender is similar to the recommendation systems used on e-commerce sites, where similar products are displayed below the product we look for. The Recommender and Similarity RAG falls in similar lines, but in the Recommender, you can choose the LLM ranking model to be used.

Ref. to `reco_llama.py`

if reco_type == 'cohere_rerank':
    cohere_rerank = CohereRerank(api_key=cohere_api_key, top_n=results_count)
    query_engine = index.as_query_engine(
        similarity_top_k=10,
        node_postprocessors=[cohere_rerank],
    )
    response = query_engine.query(query)

elif reco_type == 'openai_rerank':
    rankgpt_rerank = RankGPTRerank(
        llm=OpenAI(
            model="gpt-3.5-turbo-16k",
            temperature=0.0,
            api_key=openai_api_key,
        ),
        top_n=results_count,
        verbose=True,
    )
    query_engine = index.as_query_engine(
        similarity_top_k=10,
        node_postprocessors=[rankgpt_rerank],
    )
    response = query_engine.query(query)

Similarity

The Similarity feature returns a similarity score, which helps evaluate the quality of a question-answering system via semantic similarity. You can filter the results based on the minimum similarity score and the number of similar items to retrieve from the DB.

Ref. to `similarity_llama.py`

retriever = index.as_retriever(similarity_top_k=top_k)
nodes = retriever.retrieve(query)

 

By leveraging these different retrieval options at IRIS AI Studio, including Semantic Search, Chat Engine, Recommender, and Similarity, users can explore the potential of their data. These features enable advanced information retrieval, contextual question answering, personalized recommendations, and semantic similarity analysis, empowering users to derive valuable insights and make data-driven decisions (at least to build similar ones in their domain).

🚀 Vote for this application in Vector Search, GenAI and ML contest, if you find it promising!

Feel free to share any feedback or inputs you may have. Thank you.

Discussion (0)0
Connectez-vous ou inscrivez-vous pour continuer