<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Aichat - Tag - Tracy Atteberry</title><link>https://tracyatteberry.com/tags/aichat/</link><description>Aichat - Tag - Tracy Atteberry</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>tracy@magicbydesign.com (Tracy Atteberry)</managingEditor><webMaster>tracy@magicbydesign.com (Tracy Atteberry)</webMaster><lastBuildDate>Mon, 24 Mar 2025 00:00:00 +0000</lastBuildDate><image><url>https://tracyatteberry.com/images/feed-icon.jpg</url><title>Aichat - Tag - Tracy Atteberry</title><link>https://tracyatteberry.com/tags/aichat/</link></image><atom:link href="https://tracyatteberry.com/tags/aichat/" rel="self" type="application/rss+xml"/><item><title>Aichat with local docs</title><link>https://tracyatteberry.com/posts/aichat_rag/</link><pubDate>Mon, 24 Mar 2025 00:00:00 +0000</pubDate><author>Tracy Atteberry</author><guid>https://tracyatteberry.com/posts/aichat_rag/</guid><description><![CDATA[<div class="featured-image">
                <img src="https://tracyatteberry.com/posts/aichat_rag/documents.jpg" referrerpolicy="no-referrer">
            </div><h1 id="aichat-with-local-docs">Aichat with local docs</h1>
<p>Want to chat with your proprietary documentation on your own machine with completely free tools?
Here&rsquo;s how. You will need aichat, an AI CLI tool and Ollama, a local model server. First, let&rsquo;s get
Ollama set up.</p>
<h2 id="install">Install</h2>
<p>Download and install Ollama from <a href="https://ollama.com/download" target="_blank" rel="noopener noreffer ">https://ollama.com/download</a>. Then pull a chat model and an
embedding model:</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-chevron-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">ollama pull deepseek-r1:7b
</span></span><span class="line"><span class="cl">ollama pull nomic-embed-text:latest</span></span></code></pre></div></div>
<p>That&rsquo;s it for Ollama. Now let&rsquo;s get <code>aichat</code> set up. Install it with:</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-chevron-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">brew install aichat</span></span></code></pre></div></div>
<h2 id="configure">Configure</h2>
<p>Configure <code>~/.config/aichat/config.yaml</code> with:</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-yaml">
        <span class="code-title"><i class="arrow fas fa-chevron-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="c"># see https://github.com/sigoden/aichat/blob/main/config.example.yaml</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">model</span><span class="p">:</span><span class="w"> </span><span class="l">ollama:deepseek-r1:7b</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">clients</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl">- <span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">openai-compatible</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">ollama</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">api_base</span><span class="p">:</span><span class="w"> </span><span class="l">http://localhost:11434/v1</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">  </span><span class="nt">models</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">deepseek-r1:7b</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">max_input_tokens</span><span class="p">:</span><span class="w"> </span><span class="m">131072</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">supports_reasoning</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span>- <span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">nomic-embed-text</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">embedding</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">max_tokens_per_chunk</span><span class="p">:</span><span class="w"> </span><span class="m">8192</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">default_chunk_size</span><span class="p">:</span><span class="w"> </span><span class="m">1000</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">      </span><span class="nt">max_batch_size</span><span class="p">:</span><span class="w"> </span><span class="m">50</span></span></span></code></pre></div></div>
<h2 id="run">Run</h2>
<p>Finally, run aichat in REPL mode and start a new RAG instance for your docs called <code>mydocs</code>:</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-bash">
        <span class="code-title"><i class="arrow fas fa-chevron-right fa-fw" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h fa-fw" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy fa-fw" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">aichat
</span></span><span class="line"><span class="cl">.rag mydocs</span></span></code></pre></div></div>
<p>You will now be prompted to add documents. These can be any text you want to
chat with. You can even proved a URL to pull content from. Here&rsquo;s
<a href="https://github.com/sigoden/aichat/wiki" target="_blank" rel="noopener noreffer ">an example</a> of using the aichat wiki
as rag content. To add more documents to this instance, just type
<code>.edit rag-docs</code> and add more docs to the file.</p>
<h2 id="youre-done">You&rsquo;re done!</h2>
<hr>
<blockquote>
<p>🚀 That&rsquo;s it! You&rsquo;re now chatting with your own proprietary docs.
To exit, type <code>.exit</code>. To get started again, just run <code>aichat</code> and type
<code>.rag mydocs</code>. Enjoy!</p>
</blockquote>
]]></description></item></channel></rss>