Solutions are always tailored to specific problems. There’s no one-size-fits-all approach. The techniques vary depending on needs like the level of customization, available data sources, and system complexity. The strategy should be based on these factors. Here are a few alternative approaches we can consider, if RAG is optional:
Embedding-Based Search with Pretrained Models: This is a relatively easy approach to implement, but it doesn’t offer the same capabilities as RAG. It works well when simple retrieval is enough and there’s no need for complex reasoning.
– Knowledge Graphs with AI Integration: Best for situations where structured reasoning and relationships are key. It requires manual effort and can be tricky to integrate, but it offers powerful semantic search capabilities and supports reasoning tasks.
– Fine-Tuned Language Models: This is ideal for stable, well-defined datasets where real-time data isn’t crucial. Since the data is straightforward, generating responses is easier. It performs well when the data is comprehensive but may struggle with queries outside the trained data.
– Hybrid Models: A mix of retrieval and in-context learning. While it’s a bit more complex to implement, it delivers high accuracy and flexibility because it combines different techniques. Use this when you need high accuracy and rich content.
– Multi-Modal Models: These models handle different types of data (eg., images, text) and provide combined insights. For example, they can retrieve images from documents and analyze them. However, they require solid infrastructure, which can get expensive.
– Rule-Based Systems: These expert systems rely on predefined rules to generate responses. They’re great for regulated industries like finance & legal, as they offer transparency and auditability. However, they’re typically not scalable and may not handle unstructured data effectively.
– End-to-End Neural Networks (for Q&A): These models are trained specifically for question-answering tasks. They perform well for defined tasks like Q&A and give concise answers without the need for complex pipelines. But they require large, annotated datasets and may underperform if there isn’t enough related data.
Since this field is still evolving, it’s important to stay on the lookout for new or improved techniques based on the specific requirements
300 technical phrases to sound outsmart in your daily conversations and meetings
Technically, I am not a fan of this but tired of laughing without facial expressions throughout my career, especially when talking to sales teams. Thanks to ChatGPT, here is the most abused jargons.
- Edge case
- Low-hanging fruit
- Leverage synergies
- Move the needle
- Quick win
- Paradigm shift
- Boil the ocean
- Blue-sky thinking
- Circle back
- Drill down
- Push the envelope
- Scalable solution
- Out-of-the-box thinking
- Core competency
- Pain point
- Big picture
- Synergize efforts
- Strategic alignment
- Actionable insights
- MVP (Minimum Viable Product)
- Ecosystem approach
- Data-driven decision-making
- Critical path
- Hit the ground running
- Robust architecture
- Seamless integration
- Optimize for performance
- In the weeds
- Future-proof
- Stakeholder buy-in
- Granular level
- At scale
- Cross-functional collaboration
- High-level overview
- Vertical integration
- Closing the loop
- Mission-critical
- Value proposition
- Game changer
- Lean process
- Disruptive innovation
- Pain points mitigation
- Agile mindset
- Best practices
- Customer-centric approach
- Best-in-class
- Low-risk, high-reward
- Fail-fast approach
- Digital transformation
- Continuous improvement
- Go-to-market strategy
- Technical debt
- Cloud-native architecture
- Holistic approach
- Bandwidth constraints
- Action plan
- Operationalize the process
- Right-sizing the solution
- Minimal footprint
- Shift left
- High-touch approach
- Business as usual (BAU)
- KPI (Key Performance Indicators)
- Thought leadership
- Single source of truth
- Deliverables alignment
- Fast-tracking initiatives
- Technical enablement
- Customer journey mapping
- Product-market fit
- Tipping point
- Pushing the boundaries
- Burning platform
- Clear path forward
- Closing the gap
- Data democratization
- Real-time optimization
- Heads-down execution
- Proof of concept (POC)
- Double down on effort
- Down the line
- Capacity planning
- Bulletproof strategy
- Architecture runway
- Ready for primetime
- Iterate quickly
- Low-fidelity prototype
- Growth hacking
- Agile workflow
- Full-stack solution
- Resource constraints
- Automation at scale
- Failover mechanism
- Big data insights
- Architectural pivot
- Tech stack enhancement
- Greenfield development
- Heavy lifting
- Blockers and enablers
- Delivery roadmap
- Value-added services
- Time to market
- Low-hanging opportunities
- Heavy technical lift
- Business agility
- Moving parts
- Hit capacity
- Micro-optimization
- Vertical scalability
- Horizontal scaling
- DevOps pipeline
- Customer pain points
- Hyperautomation
- Functional decomposition
- Lean methodology
- Resource allocation
- Feedback loop
- Plug-and-play
- Zero-touch automation
- Feature parity
- Speed to value
- Containerization strategy
- Feature flagging
- Technical feasibility
- Seamless migration
- Decision matrix
- Frictionless experience
- Just-in-time (JIT) delivery
- SLA (Service Level Agreement)
- Rollback strategy
- Self-service capabilities
- Hyper-scale infrastructure
- Platform agnostic
- Capacity optimization
- Risk mitigation plan
- Digital footprint
- Shift-right testing
- Resilient architecture
- Quicksilver solutions
- Bottleneck identification
- Infrastructure as code
- The North Star metric
- Plug-in architecture
- Service orchestration
- Operational efficiency
- Customizable framework
- Proactive monitoring
- Single pane of glass
- Empowered teams
- Decoupled architecture
- Multi-cloud strategy
- Intent-based networking
- Battle-tested solutions
- Data governance
- Heuristic approach
- Data-driven automation
- Light-touch deployment
- RACI matrix
- Edge-to-cloud strategy
- Enhanced user experience
- Cloud-agnostic deployment
- Pushing the roadmap
- Hyper-personalization
- Accelerated growth
- Outcome-based approach
- Hyper-focused execution
- Multi-threaded approach
- In-flight initiatives
- Strong backlog
- Low-code/no-code solutions
- Distributed architecture
- Decentralized management
- Decision-making at the edge
- Shift towards automation
- Application lifecycle management
- Full-stack visibility
- Low-latency applications
- Blockchain integration
- Continuous deployment
- Zero-downtime deployment
- Stack trace analysis
- Technical validation
- Converged infrastructure
- Architectural refactoring
- Guardrails for development
- Next-gen solution
- Multi-tenant architecture
- Consumption-based pricing
- Solution scalability
- Technical roadmap
- Fine-tuning processes
- Zero-day exploits
- Collaborative tooling
- Secure-by-design architecture
- Real-time data ingestion
- Failsafe mechanisms
- Pushing to production
- Cross-pollination of ideas
- Enterprise-grade solutions
- Silo-breaking collaboration
- Mission alignment
- Architectural governance
- Problem-solution fit
- Self-healing systems
- Industry best practices
- Continuous integration (CI)
- DevSecOps practices
- Scalability roadmap
- Infrastructure modernization
- Innovation pipeline
- Customer-first mindset
- Digital-first approach
- Operational resilience
- Microservices orchestration
- Security by default
- Automation-first approach
- Just-in-time scalability
- Business continuity planning
- Lean architecture
- End-to-end visibility
- Resource elasticity
- Self-managed infrastructure
- Holistic monitoring
- Technical pivot
- Shift-left testing
- Container orchestration
- Context switching
- Golden path for developers
- Cloud-native applications
- Software-defined infrastructure
- Autonomous systems
- Open-source innovation
- Dynamic provisioning
- Always-on availability
- Full-stack observability
- Right-sizing infrastructure
- Seamless user onboarding
- Continuous feedback loop
- Elastic workload management
- Test-driven development (TDD)
- Decentralized control
- Feedback-driven iteration
- Hyper-growth phase
- Automated workflows
- Proactive governance
- Modular architecture
- Collaborative delivery
- Business impact analysis
- Go-forward strategy
- Technical deep dive
- Dynamic scaling
- Systems interoperability
- Thought-partnering
- Time-boxing
- Outcome-driven development
- High-availability systems
- Data sovereignty
- Cost optimization strategies
- Capacity on demand
- Architecture governance
- Cloud-first strategy
- End-to-end automation
- Infrastructure uplift
- Latency-sensitive workloads
- Real-time decision-making
- Data integrity checks
- Service-level objectives (SLOs)
- Governance at scale
- Throughput optimization
- Enabling cross-team collaboration
- Code quality assurance
- Performance benchmarking
- Cloud bursting
- Stateless applications
- Version control best practices
- User-centric design
- Technical enablers
- On-demand scalability
- Data lifecycle management
- Automated scaling
- Next-gen platforms
- Continuous performance monitoring
- Resilience engineering
- Horizontal infrastructure
- High-touch services
- Technical grooming
- Infrastructure rationalization
- Resiliency testing
- Pre-mortem analysis
- Security-first mindset
- Operational scalability
- Converging infrastructure
- API-first design
- Autonomous infrastructure
- Service-level agreements (SLAs)
- Data-driven architecture
- Fault-tolerant systems
- Infrastructure harmonization
- Pipeline as code
- Lean thinking for innovation
Organized the Microsoft Season of AI event in Kochi
Google UX Design Cerfied now!
Verify Credential: https://coursera.org/share/04a64b6baff82d00ce17a04e94726d31
How to attach a file to HubSpot contact through APIs, in Power Automate
With this article, the issues and solutions I am trying to address are:
- How to use HubSpot APIs
- How to upload a file to HubSpot
- How to make association between a Contact and the uploaded file
- How to achieve all of these using Power Automate
On a high level, below is the list of API tasks we have to do to achieve this. We have to make requests to three calls (one less if you have Customer ID already).
High level Power Automate flow
See below the high level flow I have created to demonstrate:
Prerequisites
- Basic knowledge in HubSpot. We would be interacting the CRM Contacts and Library
- Good knowledge in Power Automate
- A HubSpot account – Sandbox / Developer
- Create a Private App in HubSpot
- Get an Access Token
- Create a sample contact in HubSpot (for testing)
- Create a folder in the HubSpot Library (optional)
Detailed Flow
In this example, I am using a HTTP Request Trigger, which starts when we POST a file and a email-id (I used it to represent a customer in HubSpot contact form). I am doing some
Set the stage
For those struggling to get few items from the POST’ed content, find below details for your reference.
Using Postman to trigger a Power Automate HTTP flow
A. Get File content
triggerOutputs()['body']['$multipart'][0]['body']
B. Get filename
Honestly, I am not sure if there is a straight forward method available. This is my way of parsing filename from the Content-Disposition string:
// Input sample: "headers": {
// "Content-Disposition": "form-data; name=\"email\"",
// "Content-Length": "25"
// }
// Power fx
trim(concat(split(split(triggerOutputs()['body']['$multipart'][0]['headers']['Content-Disposition'], 'filename="')[1], '"')[0]))
C. Get Email
triggerOutputs()['body']['$multipart'][1]['body']['$content']
HubSpot API Calls
Since the APIs for fetching Contact ID and Uploaded File ID are independent tasks, I am executing them in parallel.
A. Upload file, and get file id
I have used only minimum number parameters to avoid the confusion. I am uploading the file to a folder in the library.
Find the POST’ing JSON script for the Body. I see many people are struggling to make this correct.
{
"$content-type": "multipart/form-data",
"$multipart": [
{
"headers": {
"Content-Disposition": "form-data; name=\"folderPath\""
},
"body": "/Sample Folder"
},
{
"headers": {
"Content-Disposition": "form-data; name=\"file\"; filename=\"@{variables('Filename')}\""
},
"body": @{variables('file')}
},
{
"headers": {
"Content-Disposition": "form-data; name=\"options\""
},
"body": {
"access": "PRIVATE"
}
}
]
}
Upon successful upload, you will be receiving a JSON response with File ID.
B. Get the Customer ID of a contact using email as parameter.
This is a straight forward task. Just call the API using GET. Example: https://api.hubapi.com/crm/v3/objects/contacts/john@mathew.com?idProperty=email
C. Create Contact-File association
Once you have FileID and Contact ID, now you can POST a create-note API call to https://api.hubapi.com/crm/v3/objects/notes
Below is the JSON body you have to use:
{
"properties": {
"hs_timestamp": "2024-07-30T10:30:00.000Z",
"hs_attachment_ids": "<File ID>"
},
"associations": [
{
"to": {
"id": "<Customer ID>"
},
"types": [
{
"associationCategory": "HUBSPOT_DEFINED",
"associationTypeId": 10
}
]
}
]
}
Note: associationTypeId is the magic number which tells the API to make Contact-File association. Please check the documentation for more association types.
Find the Power Automate action view:
Verify if the flow has worked
Go to HubSpot, select contact and you should be able to see the file attached.
Additionally, if you go to the Library -> Files -> Sample Folder, you can see the same file appearing there.
.NET Aspire workshop @ K-MUG
I will be discussing on Azure, Cloud-Native, Dotnet advancements and then the .NET Aspire.
Register if you are intersted – https://www.meetup.com/kmug-meetup/events/302074333/
Article: Target Fixation Problem in IT
Views on how target fixation problem can be compared to impacting your career journey
The other day, I was reading about target fixation problem in vehicle driving and it occurred to me I have met many people in Information Technology field also with such a problem. Target fixation as per Wikipedia:
“an attentional phenomenon observed in humans in which an individual becomes so focused on an observed object that they inadvertently increase their risk of colliding with the object.”
In the fast-paced world of IT, it’s easy to get caught up in the rush of achieving specific career goals. One of the main problems with this is burnout. When an individual is too focused on climbing the corporate ladder or mastering a particular technology, they might end up working long hours without taking necessary breaks. This can lead to physical and mental exhaustion, ultimately affecting their productivity and health. Surprisingly, most of the time this is happening subconsciously so we don’t even think about it because it is a blind spot. One of my friend was so addicted to Microsoft SharePoint technologies and was really an expert in that. But he did not bother upskill even when Microsoft decided to strengthen its future by introducing Power Platform elements, such as Power Apps or Power Automate. For him those were alien tracks because he believed SharePoint is never outdated and never it will.
Moreover, target fixation can strain personal relationships. IT professionals who are constantly chasing their career goals might neglect their family and social life. This imbalance can lead to feelings of isolation and dissatisfaction, both personally and professionally. It’s essential to remember that a successful career should not come at the expense of one’s well-being and relationships.
Well, how do we overcome this problem?
Unfortunately, it doesn’t have a silver bullet fix. Recognizing and accepting the reality is the first step.
We have to adopt a balanced approach to cure this. Then set realistic and flexible career goals (SMART goals). Instead of obsessing over a single target, one should aim for a broader vision that includes professional growth, skill development, and personal happiness. Regularly reassessing and adjusting these goals can help in staying on the right track. Additionally, one should cultivate a diverse skill set. In the ever-evolving field of IT, being adaptable is key. By learning new technologies and exploring different roles, professionals can stay relevant and open to various opportunities. This not only reduces the pressure of achieving a single target but also enhances overall career prospects. Additionally, seeking support from mentors and peers can provide valuable insights and encouragement.
In conclusion, while setting career targets is essential, it’s equally important to avoid the pitfalls of target fixation. A balanced approach, continuous learning, and prioritizing well-being can help IT professionals achieve long-term success and fulfillment. Remember, a fulfilling career is one that grows harmoniously with personal happiness and health.
URL: https://www.linkedin.com/pulse/target-fixation-problem-career-praveen-nair–dwpac
Speaking session @ Global AI Bootcamp on 23 Mar 2023
Certified: AI for Product Management
I’m happy to share that I’ve obtained a new certification: AI for Product Management from Pendo.io!
Verify: https://www.credly.com/badges/10e7acce-1f49-49f4-b348-33e3568f7c29/public_url