{"id":12747,"date":"2024-02-18T09:26:56","date_gmt":"2024-02-18T08:26:56","guid":{"rendered":"https:\/\/flaven.fr\/?p=12747"},"modified":"2026-09-16T11:45:11","modified_gmt":"2026-09-16T09:45:11","slug":"simple-usecases-on-ai-prototyping-and-few-lessons-from-developing-a-webapp-api-llm-combination-for-nlp-tasks","status":"publish","type":"post","link":"https:\/\/flaven.fr\/2024\/02\/simple-usecases-on-ai-prototyping-and-few-lessons-from-developing-a-webapp-api-llm-combination-for-nlp-tasks\/","title":{"rendered":"Simple Usecases on AI Prototyping and few lessons from Developing a WebApp + API + LLM Combination for NLP Tasks"},"content":{"rendered":"<p>It&#8217;s not easy to document a process in progress, I am always late! Since what I am talking about has already become obsolete.<\/p>\n<p> <b>For this post, you can find all files for each project on my GitHub account. See <a href=\"https:\/\/github.com\/bflaven\/ia_usages\/tree\/main\/ia_llms_usecases\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/bflaven\/ia_usages\/tree\/main\/ia_llms_usecases<\/a><\/b><\/p>\n<p>Indeed, even though with the help of ChatGPT, I am in the process of making a prototype for an IA combination: &#8220;WebApp + API + LLM&#8221; to meet the AI needs that I have identified such as transcription, translation, generation using prompt and a bunch of various NLP tasks: Summary, NER, even Spelling Correction which has nothing to do with IA!<\/p>\n<p>This Prototype&#8217;s project I have already mentioned in small touches throughout the last posts on this blog and as evidenced by the GitHub directory: <a href=\"https:\/\/github.com\/bflaven\/ia_usages\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/bflaven\/ia_usages<\/a><\/p>\n<p>In this post, I will present two classic cases: News Topic Classification and Sentiment Analysis. As is often the case when we act, we find ourselves confronted with the reality of what needs to be done and the idea we have of it. What are the takeaways from these two POCs applying IA on Data.<\/p>\n<h2>What I learn from this experience?<\/h2>\n<p>I had already made such experiments but this time, somehow, I needed to present results and drew some conclusion. So, here they are:<\/p>\n<ol>\n<li>In a data-centric approach, data is key (dataset). The dataset goes through three stages: Bronze, Silver, Gold.<\/li>\n<li>80% of the work focuses on Evaluation Strategy, 20% Model Implementation<\/li>\n<li>The Data-centric approach can be summarized like so :<br \/>\n        <code>AI = Model + Data<\/code> where you mostly focus on data.\n    <\/li>\n<li><b>DATA IS A FUEL, as an input as an output<\/b><\/li>\n<\/ol>\n<p>It is quite peculiar because you can choose a model without breaking a sweat especially for classical issues such as News Topic Classification, Sentiment Analysis but you are going to bust your ass gathering the data and structuring it! In an almost caricatured manner, the workload is often distributed as follows:<\/p>\n<ul>\n<li>80% of the work is to consolidate the data and making change management. <\/li>\n<li>The resting 20% of the work is choosing Model and developing a combination <code>Webapp + API + LLM<\/code>. By the way, development that can be made by ChatGPT, Mistral, Codelama, llama2&#8230;. Choose your weapon. <\/li>\n<\/ul>\n<h2>Methodology: Some other concerns and few valuable lessons (MLOps).<\/h2>\n<p><b>There are also two major concerns to deal with: Confidentiality, Free.<\/b><\/p>\n<p>In News Topic Classification issue, USECASE_2, the fact of having replaced Mistral with ChatGPT, this was therefore done free of charge and securely.<\/p>\n<p>Finally, we followed what we call an ML-OPS process. Process which is defined as follows:<\/p>\n<blockquote><p>\n1. Ideation<br \/>\n2. Framing<br \/>\n3. Data Collection<br \/>\n4. Data Preparation<br \/>\n5. Feature Engineering<br \/>\n6. Modelling<br \/>\n7. Deployment<br \/>\n8. Change<br \/>\n9. Run\n<\/p><\/blockquote>\n<p><b>Here an illustration of the MLOps.<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"450\"\n    src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2024\/02\/mlops-loop-en_small.png\"\n    alt=\"The Al Spectrum: Unveiling Layers of Intelligent Systems\"\n    title=\"The Al Spectrum: Unveiling Layers of Intelligent Systems\"><br \/>\nSource: <a href=\"https:\/\/ml-ops.org\/content\/mlops-principles\" target=\"_blank\" rel=\"noopener\">https:\/\/ml-ops.org\/content\/mlops-principles<\/a><\/p>\n<p><b>MLOps has much in common with Design Thinking Process<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"333\"\n        src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2024\/02\/Five-steps-of-the-ideation-process_small.png\"\n        alt=\"Design Thinking Process\"\n        title=\"Design Thinking Process\"><\/p>\n<h2>Build a release, a must-have.<\/h2>\n<p>After, this framing and thinking, let do the acting. The time-to-market require to release a product as quick as possible by the end of few sprints even for a POC. Thanks to the LLM such as Mistral of ChatGTP, writing a rough combination rough for a &#8220;WebApp + API + LLM&#8221; is becoming more and more a piece of cake.<\/p>\n<p><b>You can check the directory &#8220;fastapi_usecase_1_sentiment_analysis&#8221;<\/b><\/p>\n<p><a href=\"https:\/\/github.com\/bflaven\/ia_usages\/tree\/main\/ia_llms_usecases\/fastapi_usecase_1_sentiment_analysis\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/bflaven\/ia_usages\/tree\/main\/ia_llms_usecases\/fastapi_usecase_1_sentiment_analysis<\/a><\/p>\n<p>With a series of ten or twenty prompts, you can jot a serious candidate. I beat recently my personal record with 50 prompts for a &#8220;WebApp + API + LLM&#8221; combination. The only reason why the number prompts inflates is that the number API\u2019s endpoints was higher and that induced an increase complexity for the Streamlit or Vite.js UX Webapp.<\/p>\n<h2>Find Dataset<\/h2>\n<p>Due to some confidentiality, I have substituted my datasets by some sample grabbed on Kaggle. Anyway, the principles are the same and the code is strictly identical.<\/p>\n<p>I found one by searching &#8220;News Topic Classification&#8221; and &#8220;Sentiment Analysis&#8221; on Kaggle<\/p>\n<ul>\n<li>News Topic Classification: <a href=\"https:\/\/www.kaggle.com\/datasets\/vrindakallu\/ag-news-topic-classification\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kaggle.com\/datasets\/vrindakallu\/ag-news-topic-classification<\/a><\/li>\n<li>Sentiment Analysis: <a href=\"https:\/\/www.kaggle.com\/code\/robikscube\/sentiment-analysis-python-youtube-tutorial\/input\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kaggle.com\/code\/robikscube\/sentiment-analysis-python-youtube-tutorial\/input<\/a><\/li>\n<\/ul>\n<h2>Let&#8217;s dig the usecases<\/h2>\n<p>The first case is called <b>usecase_1_sentiment_analysis<\/b>, a very classical one. You got text, most of the time comments and you want to classify if the text is negative or positive. <\/p>\n<p>My only issue was that the text was in French but for educational, i have swap the model and give now an English sample and a model trained on English. The French Model is still in the code, commented, is based on &#8220;distilcamembert-base-sentiment&#8221; found on <a href=\"https:\/\/huggingface.co\/cmarkea\/distilcamembert-base-sentiment\" target=\"_blank\" rel=\"noopener\">https:\/\/huggingface.co\/cmarkea\/distilcamembert-base-sentiment<\/a><\/p>\n<p>The English model is <a href=\"https:\/\/huggingface.co\/lxyuan\/distilbert-base-multilingual-cased-sentiments-student\" target=\"_blank\" rel=\"noopener\">https:\/\/huggingface.co\/lxyuan\/distilbert-base-multilingual-cased-sentiments-student<\/a><\/p>\n<p><b>I have also drastically reduced the sample to 1000 rows for the Sentiment Analysis because it works easily on my Mac.<\/b><\/p>\n<p>See the sample at <a href=\"https:\/\/www.kaggle.com\/code\/robikscube\/sentiment-analysis-python-youtube-tutorial\/input\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kaggle.com\/code\/robikscube\/sentiment-analysis-python-youtube-tutorial\/input<\/a><\/p>\n<p>The second case is more sophisticated than the first one: <b>usecase_2_text_classification<\/b>. It is an issue on text classification e.g. Posts made on Social Networks have to re-categorized. I have made 2 user stories on this issue that I have turned to prompts sent to Mistral.<\/p>\n<p><b>What is amazing is that with LMM is that as far you have created an API that is able to query with a prompt a LLM such as Mistral then you are good to go to implement whatever user story you want! See below, two prompts slightly different but the mechanic remains the same.<\/b><\/p>\n<pre>\r\n     V1 choice in a limited number of predefined categories\r\n    # first_prompt = ChatPromptTemplate.from_template(\r\n    #     \"Act as a highly intelligent news chatbot and classify the given news text into one of the following categories only: France, Europe Africa, America, Asia-Pacific, Middle East, Sports, Economy, Technology, Culture, Environment. Do not code. Return only one word answer with only the category name that the given news text belongs to. In the output, return the result in a field named \\\"category_predicted:\\\" and return the comment in the field \\\"category_decision:\\\" in a python Dictionary.\\t News text: {news}?\"\r\n    # ) \r\n\r\n    # V2 no choice let the LLM defined the category\r\n    first_prompt = ChatPromptTemplate.from_template(\r\n        \"Act as a highly intelligent news chatbot and classify the given news text into the most adequate single category. Do not code. Return only one word answer with only the category name that the given news text belongs to. In the output, return the result in a field named \\\"category_predicted:\\\" and return the comment in the field \\\"category_decision:\\\" in a python Dictionary.\\t News text: {news}?\"\r\n    )  \r\n<\/pre>\n<h1>Illustrations<\/h1>\n<p>I was looking for illustrations for &#8220;Data Science Process Lifecycle&#8221; and also to have a big picture on the connection between machine learning, AI&#8230;etc<\/p>\n<p>I found these 2 images that I found quite interesting mostly because it is not ugly and incidentally because it is straightforward.<\/p>\n<p><b>Data Science Lifecycle: This is pretty much all the stages of transformation that you will go through you and your data before learning anything from it.<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"603\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2024\/02\/data_science_process_lifecycle_chart_small.png\" alt=\"Data Science Lifecycle\" title=\"Data Science Lifecycle\"><\/p>\n<p><b>A classic but effective image to locate the different areas when we talk about AI.<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"511\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2024\/02\/spectrum_conceptual-framework-of-ai-machine-learning-deep-learning-and-generative-ai_small.png\" alt=\"The Al Spectrum: Unveiling Layers of Intelligent Systems\" title=\"The Al Spectrum: Unveiling Layers of Intelligent Systems\"><\/p>\n<p>I grab these pictures from these sources:<\/p>\n<ol>\n<li>Understanding the Data Science Lifecycle: <a href=\"https:\/\/www.sudeep.co\/data-science\/2018\/02\/09\/Understanding-the-Data-Science-Lifecycle.html\" target=\"_blank\" rel=\"noopener\">https:\/\/www.sudeep.co\/data-science\/2018\/02\/09\/Understanding-the-Data-Science-Lifecycle.html<\/a><\/li>\n<li>Machine Learning: A Quick Introduction and Five Core Steps: <a href=\"https:\/\/centricconsulting.com\/blog\/machine-learning-a-quick-introduction-and-five-core-steps\/\" target=\"_blank\" rel=\"noopener\">https:\/\/centricconsulting.com\/blog\/machine-learning-a-quick-introduction-and-five-core-steps\/<\/a><\/li>\n<li>Natural Language Processing and Machine Learning: <a href=\"https:\/\/www.encora.com\/insights\/natural-language-processing-and-machine-learning\" target=\"_blank\" rel=\"noopener\">https:\/\/www.encora.com\/insights\/natural-language-processing-and-machine-learning<\/a>\n<\/li>\n<li>The ai spectrum: unveilling layers of intelligent system: <a href=\"https:\/\/www.scribbr.com\/ai-tools\/deep-learning\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.scribbr.com\/ai-tools\/deep-learning\/<\/a><\/li>\n<\/ol>\n<h2>Presenting the result<\/h2>\n<p>In addition, I have made a jupyter notebook to easily present the ML process especially the data exploitation.<\/p>\n<p>You can check the file <code>usecase_1_sentiment_analysis.ipynb<\/code>. Below, you have the command to leverage on the anaconda environment created for the usecase.<\/p>\n<p>The jupyter notebook is available at <a href=\"https:\/\/github.com\/bflaven\/ia_usages\/tree\/main\/ia_llms_usecases\/usecase_1_sentiment_analysis\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/bflaven\/ia_usages\/tree\/main\/ia_llms_usecases\/usecase_1_sentiment_analysis<\/a><\/p>\n<p><b>How to launch a jupyter notebook on a specific environment?<\/b><\/p>\n<pre>\r\n# In base launch the specific sentiment_analysis with this command\r\npython -m ipykernel install --user --name=sentiment_analysis\r\n\r\n# Activate the env sentiment_analysis\r\nsource activate sentiment_analysis\r\n\r\n# Launch the jupyter notebook in this env sentiment_analysis\r\njupyter notebook\r\n\r\n# Create the virtual environment\r\nconda create -n 'environment_name'\r\n\r\n# Activate the virtual environment\r\nconda activate 'environment_name'\r\n\r\n# Make sure that ipykernel is installed\r\npip install --user ipykernel\r\n\r\n# Add the new virtual environment to Jupyter\r\npython -m ipykernel install --user --name='environment_name'\r\n\r\n# To list existing Jupyter virtual environments\r\njupyter kernelspec list\r\n\r\n# To list existing conda environments\r\nconda env list\r\n\r\n## To remove conda environment\r\nconda env remove -n 'environment_name'\r\n\r\n## To remove the environment from Jupyter\r\njupyter kernelspec uninstall 'environment_name'\r\n<\/pre>\n<p><b>Create an anaconda environment<\/b><\/p>\n<pre>\r\n[env]\r\n# Conda Environment\r\nconda create --name sentiment_analysis python=3.9.13\r\nconda info --envs\r\nsource activate sentiment_analysis\r\nconda deactivate\r\n\r\n# if needed to remove\r\nconda env remove -n [NAME_OF_THE_CONDA_ENVIRONMENT]\r\nconda env remove -n sentiment_analysis\r\nconda env remove -n faststream_kafka\r\n\r\n\r\n\r\n# update conda \r\nconda update -n base -c defaults conda\r\n\r\n# to export requirements\r\npip freeze > requirements.txt\r\n\r\n# to install\r\npip install -r requirements.txt\r\n\r\n\r\n<\/pre>\n<p><H2>More infos<\/H2><\/p>\n<ul>\n<li>Postman<br \/><a href=\"https:\/\/www.postman.com\/postman-student-programs\/workspace\/ollama-api\/documentation\/21521806-f48dc31a-a9f1-4dad-9082-fd07f5cd2fda\" target=\"_blank\" rel=\"noopener\">https:\/\/www.postman.com\/postman-student-programs\/workspace\/ollama-api\/documentation\/21521806-f48dc31a-a9f1-4dad-9082-fd07f5cd2fda<\/a><\/li>\n<li>GitHub &#8211; ggerganov\/llama.cpp: Port of Facebook&#8217;s LLaMA model in C\/C++<br \/><a href=\"https:\/\/github.com\/ggerganov\/llama.cpp\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/ggerganov\/llama.cpp<\/a><\/li>\n<li>Easy as Ollama: Running Large Language Models Locally with a Elegant Web UI | by Rob \u015aliwa | Medium<br \/><a href=\"https:\/\/medium.com\/@robjsliwa_71070\/easy-as-ollama-running-large-language-models-locally-with-a-elegant-web-ui-af3255b18141\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/@robjsliwa_71070\/easy-as-ollama-running-large-language-models-locally-with-a-elegant-web-ui-af3255b18141<\/a><\/li>\n<li>GitHub &#8211; microsoft\/classy-fire: Classy-fire is multiclass text classification approach leveraging OpenAI LLM model APIs optimally using clever parameter tuning and prompting.<br \/><a href=\"https:\/\/github.com\/microsoft\/classy-fire\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/microsoft\/classy-fire<\/a><\/li>\n<li>Six Ways of Running Large Language Models (LLMs) Locally (January 2024)<br \/><a href=\"https:\/\/kleiber.me\/blog\/2024\/01\/07\/six-ways-running-llm-locally\/\" target=\"_blank\" rel=\"noopener\">https:\/\/kleiber.me\/blog\/2024\/01\/07\/six-ways-running-llm-locally\/<\/a><\/li>\n<li>Title Not Found<br \/><a href=\"https:\/\/github.com\/search?q=ollama+python+language%3APython&#038;type=repositories&#038;l=Python&#038;p=2\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/search?q=ollama+python+language%3APython&#038;type=repositories&#038;l=Python&#038;p=2<\/a><\/li>\n<li>GPT4All<br \/><a href=\"https:\/\/gpt4all.io\/index.html\" target=\"_blank\" rel=\"noopener\">https:\/\/gpt4all.io\/index.html<\/a><\/li>\n<li>Build your own RAG and run it locally: Langchain + Ollama + Streamlit | by Duy Huynh | Medium<br \/><a href=\"https:\/\/medium.com\/@vndee.huynh\/build-your-own-rag-and-run-it-locally-langchain-ollama-streamlit-181d42805895\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/@vndee.huynh\/build-your-own-rag-and-run-it-locally-langchain-ollama-streamlit-181d42805895<\/a><\/li>\n<li>Few Shot Prompting with CodeLlama, LangChain, and MySQL | by Praveen Yerneni | Medium<br \/><a href=\"https:\/\/medium.com\/@yernenip\/few-shot-prompting-with-codellama-langchain-and-mysql-94020ee16a08\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/@yernenip\/few-shot-prompting-with-codellama-langchain-and-mysql-94020ee16a08<\/a><\/li>\n<li>Run LLMs locally | &#x1f99c;&#xfe0f;&#x1f517; Langchain<br \/><a href=\"https:\/\/python.langchain.com\/docs\/guides\/local_llms\" target=\"_blank\" rel=\"noopener\">https:\/\/python.langchain.com\/docs\/guides\/local_llms<\/a><\/li>\n<li>Ollama &#8211; running large language models on your machine | Unmesh Gundecha<br \/><a href=\"https:\/\/unmesh.dev\/post\/ollama\/\" target=\"_blank\" rel=\"noopener\">https:\/\/unmesh.dev\/post\/ollama\/<\/a><\/li>\n<li>Mixtral-46.7B &#8211; a Hugging Face Space by ehristoforu<br \/><a href=\"https:\/\/huggingface.co\/spaces\/ehristoforu\/mixtral-46.7b-chat\" target=\"_blank\" rel=\"noopener\">https:\/\/huggingface.co\/spaces\/ehristoforu\/mixtral-46.7b-chat<\/a><\/li>\n<li>How to Run Mixtral 8x7B Locally &#8211; Step by Step Tutorial<br \/><a href=\"https:\/\/anakin.ai\/blog\/how-to-run-mixtral-8x7b-locally\/\" target=\"_blank\" rel=\"noopener\">https:\/\/anakin.ai\/blog\/how-to-run-mixtral-8x7b-locally\/<\/a><\/li>\n<li>Create your first LLM playground | liteLLM<br \/><a href=\"https:\/\/docs.litellm.ai\/docs\/tutorials\/first_playground\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.litellm.ai\/docs\/tutorials\/first_playground<\/a><\/li>\n<li>Mixtral 8x7B en Local : Entra\u00eenez votre LLM avec vos Propres Donn\u00e9es | Scalastic &#x1f468;&#x1f3fb;&#x200d;&#x1f4bb;<br \/><a href=\"https:\/\/scalastic.io\/mixtral-ollama-llamaindex-llm\/\" target=\"_blank\" rel=\"noopener\">https:\/\/scalastic.io\/mixtral-ollama-llamaindex-llm\/<\/a><\/li>\n<li>Running Mixtral 8&#215;7 locally with LlamaIndex and Ollama | by LlamaIndex | Dec, 2023 | LlamaIndex Blog<br \/><a href=\"https:\/\/blog.llamaindex.ai\/running-mixtral-8x7-locally-with-llamaindex-e6cebeabe0ab\" target=\"_blank\" rel=\"noopener\">https:\/\/blog.llamaindex.ai\/running-mixtral-8&#215;7-locally-with-llamaindex-e6cebeabe0ab<\/a><\/li>\n<li>Local LLM in the Browser Powered by Ollama | by Andrew Nguonly | Medium<br \/><a href=\"https:\/\/medium.com\/@andrewnguonly\/local-llm-in-the-browser-powered-by-ollama-236817f335da\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/@andrewnguonly\/local-llm-in-the-browser-powered-by-ollama-236817f335da<\/a><\/li>\n<li>Ollama: Easily run LLMs locally \u2014 Klu<br \/><a href=\"https:\/\/klu.ai\/glossary\/ollama\" target=\"_blank\" rel=\"noopener\">https:\/\/klu.ai\/glossary\/ollama<\/a><\/li>\n<li>Ollama: Running GGUF Models from Hugging Face | Mark Needham<br \/><a href=\"https:\/\/www.markhneedham.com\/blog\/2023\/10\/18\/ollama-hugging-face-gguf-models\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.markhneedham.com\/blog\/2023\/10\/18\/ollama-hugging-face-gguf-models\/<\/a><\/li>\n<li>Running a Hugging Face Large Language Model (LLM) locally on my laptop | Mark Needham<br \/><a href=\"https:\/\/www.markhneedham.com\/blog\/2023\/06\/23\/hugging-face-run-llm-model-locally-laptop\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.markhneedham.com\/blog\/2023\/06\/23\/hugging-face-run-llm-model-locally-laptop\/<\/a><\/li>\n<li>Integrating Llama 2 with Hugging Face and Langchain&#x1f999;<br \/><a href=\"https:\/\/blog.futuresmart.ai\/integrating-llama-2-with-hugging-face-and-langchain\" target=\"_blank\" rel=\"noopener\">https:\/\/blog.futuresmart.ai\/integrating-llama-2-with-hugging-face-and-langchain<\/a><\/li>\n<li>GitHub &#8211; dennisypan\/Quick-N-Dirty-Sentiment-Analysis: Suppose you got a CSV file with rows of distinct comments and 5-stars ratings on a business (e.g. a restaurant from Yelp).  This tool will process data from this CSV input file to (1) produce an output CSV file giving each row a &#8220;Sentiment Label&#8221; and &#8220;Sentiment Score&#8221;, and (2) a statement on Command Prompt (Windows) describing the overall sentiment (Positive, Neutral, Negative) of the business.<br \/><a href=\"https:\/\/github.com\/dennisypan\/Quick-N-Dirty-Sentiment-Analysis\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/dennisypan\/Quick-N-Dirty-Sentiment-Analysis<\/a><\/li>\n<li>GitHub &#8211; raheem-m\/NYT-API-Comment-Sentiment-Analysis: This is a python program that hits the NYT article search API as well as the Community API to retrieve comments from a set of articles searched from user input. Sentiment analysis is then applied to the first 25 comments, then output to a csv file.<br \/><a href=\"https:\/\/github.com\/raheem-m\/NYT-API-Comment-Sentiment-Analysis\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/raheem-m\/NYT-API-Comment-Sentiment-Analysis<\/a><\/li>\n<li>GitHub &#8211; marcellobarile\/multilang-sentiment: Multi language AFINN-based sentiment analysis for Node.js.<br \/><a href=\"https:\/\/github.com\/marcellobarile\/multilang-sentiment\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/marcellobarile\/multilang-sentiment<\/a><\/li>\n<li>Problem-solving with ML: automatic document classification | Google Cloud Blog<br \/><a href=\"https:\/\/cloud.google.com\/blog\/products\/ai-machine-learning\/problem-solving-with-ml-automatic-document-classification\" target=\"_blank\" rel=\"noopener\">https:\/\/cloud.google.com\/blog\/products\/ai-machine-learning\/problem-solving-with-ml-automatic-document-classification<\/a><\/li>\n<li>Text Classification &#8211; &#x26a1;LangChain + Mixtral8X7B&#x26a1; | Kaggle<br \/><a href=\"https:\/\/www.kaggle.com\/code\/swathysekar\/text-classification-langchain-mixtral8x7b\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kaggle.com\/code\/swathysekar\/text-classification-langchain-mixtral8x7b<\/a><\/li>\n<li>GitHub &#8211; kodiks\/turkish-news-classification: Turkish News Category Classification Tutorial<br \/><a href=\"https:\/\/github.com\/kodiks\/turkish-news-classification\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/kodiks\/turkish-news-classification<\/a><\/li>\n<li>HuggingFace T\u00fcrk\u00e7e Veri K\u00fcmeleri. \u201cDataset is power\u201d! | by Yavuz K\u00f6me\u00e7o\u011flu | Kodiks | Medium<br \/><a href=\"https:\/\/medium.com\/kodiks\/huggingface-turkce-verikumeleri-6d213dd63966\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/kodiks\/huggingface-turkce-verikumeleri-6d213dd63966<\/a><\/li>\n<li>Turkish News Category Classification Tutorial | by Serdar Akyol | Kodiks | Medium<br \/><a href=\"https:\/\/medium.com\/kodiks\/turkish-news-category-classification-tutorial-6b9317b49915\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/kodiks\/turkish-news-category-classification-tutorial-6b9317b49915<\/a><\/li>\n<li>Title Not Found<br \/><a href=\"https:\/\/github.com\/susanli2016\/Machine-Learning-with-Python\/blob\/master\/Consumer_complaints.ipynb\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/susanli2016\/Machine-Learning-with-Python\/blob\/master\/Consumer_complaints.ipynb<\/a><\/li>\n<li>Amazon Fine Food Reviews | Kaggle<br \/><a href=\"https:\/\/www.kaggle.com\/datasets\/snap\/amazon-fine-food-reviews\/code?datasetId=18\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kaggle.com\/datasets\/snap\/amazon-fine-food-reviews\/code?datasetId=18<\/a><\/li>\n<li>Deep Learning For NLP: Zero To Transformers &#038; BERT | Kaggle<br \/><a href=\"https:\/\/www.kaggle.com\/code\/tanulsingh077\/deep-learning-for-nlp-zero-to-transformers-bert\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kaggle.com\/code\/tanulsingh077\/deep-learning-for-nlp-zero-to-transformers-bert<\/a><\/li>\n<li>Building Powerful NLP Library in Python for 2024 | by Fareed Khan | Dec, 2023 | Level Up Coding<br \/><a href=\"https:\/\/levelup.gitconnected.com\/how-i-created-the-most-powerful-nlp-library-in-python-c26d08a55809\" target=\"_blank\" rel=\"noopener\">https:\/\/levelup.gitconnected.com\/how-i-created-the-most-powerful-nlp-library-in-python-c26d08a55809<\/a><\/li>\n<li>Gemini &#8211; Google DeepMind<br \/><a href=\"https:\/\/deepmind.google\/technologies\/gemini\/#introduction\" target=\"_blank\" rel=\"noopener\">https:\/\/deepmind.google\/technologies\/gemini\/#introduction<\/a><\/li>\n<li>GitHub &#8211; rasbt\/LLMs-from-scratch: Implementing a ChatGPT-like LLM from scratch, step by step<br \/><a href=\"https:\/\/github.com\/rasbt\/LLMs-from-scratch\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/rasbt\/LLMs-from-scratch<\/a><\/li>\n<li>Build Your Own Large Language model (LLM) Model with OpenAI using Microsoft Excel file<br \/><a href=\"https:\/\/decube.substack.com\/p\/build-your-own-large-language-model\" target=\"_blank\" rel=\"noopener\">https:\/\/decube.substack.com\/p\/build-your-own-large-language-model<\/a><\/li>\n<li>The 40-hour LLM application roadmap: Learn to build your own LLM applications from scratch | Data Science Dojo<br \/><a href=\"https:\/\/datasciencedojo.com\/blog\/build-custom-llm-application\/\" target=\"_blank\" rel=\"noopener\">https:\/\/datasciencedojo.com\/blog\/build-custom-llm-application\/<\/a><\/li>\n<li>How to create a private ChatGPT with your own data | by Mick Vleeshouwer | Medium<br \/><a href=\"https:\/\/medium.com\/@imicknl\/how-to-create-a-private-chatgpt-with-your-own-data-15754e6378a1\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/@imicknl\/how-to-create-a-private-chatgpt-with-your-own-data-15754e6378a1<\/a><\/li>\n<li>Title Not Found<br \/><a href=\"https:\/\/github.com\/openai\/openai-cookbook\/blob\/main\/examples\/Question_answering_using_embeddings.ipynb\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/openai\/openai-cookbook\/blob\/main\/examples\/Question_answering_using_embeddings.ipynb<\/a><\/li>\n<li>GitHub &#8211; stochasticai\/xTuring: Build, customize and control you own LLMs. From data pre-processing to fine-tuning, xTuring provides an easy way to personalize open-source LLMs. Join our discord community: https:\/\/discord.gg\/TgHXuSJEk6<br \/><a href=\"https:\/\/github.com\/stochasticai\/xturing\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/stochasticai\/xturing<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s not easy to document a process in progress, I am always late! Since what I am talking about has already become obsolete. For this&hellip; <\/p>\n<p class=\"text-center\"><a href=\"https:\/\/flaven.fr\/2024\/02\/simple-usecases-on-ai-prototyping-and-few-lessons-from-developing-a-webapp-api-llm-combination-for-nlp-tasks\/\" class=\"more-link\">Continue reading &rarr; <span class=\"screen-reader-text\">Simple Usecases on AI Prototyping and few lessons from Developing a WebApp + API + LLM Combination for NLP Tasks<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":12749,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"bf_ai_meta_description":"AI prototyping use cases with WebApp, API, LLM for NLP tasks. See GitHub for project files and outcomes.","bf_ai_og_title":"AI Prototyping Use Cases","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3438,3437,3444,3447,3448,3449,3450,3435],"tags":[2183,3118,3125,3122,3121,3114,3117,3067,3064,3115,3040,3128,3127,3111,3120,3107,3126,3500,3494,3108,3123,3116,3124,3112,3109,3110,3094,3113,3119,3130,2793,3129,3131,795],"class_list":["post-12747","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-machine-learning","category-business-case-studies","category-programming-databases","category-technology-trends","category-tools-productivity","category-tutorials-how-to","category-ux-product-design","category-web-development","tag-api","tag-bronze","tag-change","tag-change-management","tag-data-consolidation","tag-data-centric-approach","tag-dataset","tag-deployment","tag-design-thinking-process","tag-evaluation-strategy","tag-fastapi","tag-feature-engineering","tag-framing","tag-github-directory","tag-gold-stages","tag-ia-artificial-intelligence","tag-ideation","tag-jupyter","tag-llama-cpp","tag-llm-language-model","tag-mlops-machine-learning-operations","tag-model-implementation","tag-modelling","tag-news-topic-classification","tag-nlp-natural-language-processing","tag-prototype","tag-run","tag-sentiment-analysis","tag-silver","tag-sprints","tag-streamlit","tag-time-to-market","tag-vite-js","tag-webapp"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3Vuhl-3jB","jetpack_featured_media_url":"https:\/\/flaven.fr\/wp-content\/uploads\/2024\/02\/ia_llms_usecases_b.jpg","_links":{"self":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/12747","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/comments?post=12747"}],"version-history":[{"count":19,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/12747\/revisions"}],"predecessor-version":[{"id":12772,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/12747\/revisions\/12772"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media\/12749"}],"wp:attachment":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media?parent=12747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/categories?post=12747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/tags?post=12747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}