<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="368920" data-post-id="368920">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="bradley" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bradley/120/25949_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  bradley
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yes, the idea is that there is a core <code>Store</code> interface (<a href="https://github.com/bradleygolden/ex_eval/blob/c4a835acd8137555abac22c32f34c84fc38c375c/lib/ex_eval/store.ex" rel="noopener nofollow ugc">link</a>) that can be implemented by any storage layer. I went ahead and pushed <a href="https://github.com/bradleygolden/ash_ex_eval" rel="noopener nofollow ugc">ash_ex_eval</a> for you to see. I one shotted it with claude code so it needs a lot of work but hoping it’ll demonstrate what I’m thinking.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="368920" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-is-the-community-currently-evaluating-ai-applications/71394/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-368920" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="368920"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #21"></div>
  </section>
</div>
    <div class="postbit" id="368924" data-post-id="368924">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I don’t see any code there.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="368924" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-is-the-community-currently-evaluating-ai-applications/71394/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-368924" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="368924"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="368925" data-post-id="368925">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>If the goal is to allow people to bring their own database, then you’d want to look at allowing people to swap either the Ash data layer or the Ecto repo that powers some piece of generic code IMO, as opposed to having entirely different implementations of the same app.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="368925" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-is-the-community-currently-evaluating-ai-applications/71394/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-368925" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="368925"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #23"></div>
  </section>
</div>
    <div class="postbit" id="368940" data-post-id="368940">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="bradley" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bradley/120/25949_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  bradley
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The repo is entirely a <a href="https://github.com/bradleygolden/ash_ex_eval/blob/10c59df9ac8cd1d2f11061a0ff97a0690d452273/lib/mix/tasks/ash_ex_eval.install.ex" rel="noopener nofollow ugc">mix task</a> that generates all of the resources needed for evaluations. The code also generates a <code>Store</code> implementation (<a href="https://github.com/bradleygolden/ash_ex_eval/blob/10c59df9ac8cd1d2f11061a0ff97a0690d452273/lib/mix/tasks/ash_ex_eval.install.ex#L837-L1095" rel="noopener nofollow ugc">link</a>) which then allows users to use the pipeline syntax above for doing evals.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">
  ExEval.new()
  |&gt; ExEval.put_store(MyApp.Evaluations.Store)
  |&gt; ExEval.put_dataset(dataset)
  |&gt; ExEval.put_response_fn(response_fn)
  |&gt; ExEval.put_experiment(:my_experiment)
  |&gt; ExEval.run()

</code></pre>
<p>The intention is to be able to bring my own database resources and then modify as needed, kind of like your approach with <code>mix ash_ai.gen.chat</code>.</p>
<p>Later on, there’s no reason why some web layer couldn’t just implement the pipeline syntax above, along with some of the other things provided in <code>ex_eval</code> for realtime/liveviews.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="368940" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-is-the-community-currently-evaluating-ai-applications/71394/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-368940" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="368940"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="368948" data-post-id="368948">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zachdaniel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zachdaniel/120/31980_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zachdaniel
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Ash</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Ah, sorry  I didn’t look at the mix tasks <img src="https://forum.elixirforum.com/images/emoji/apple/laughing.png?v=15" title=":laughing:" class="emoji" alt=":laughing:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="368948" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-is-the-community-currently-evaluating-ai-applications/71394/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-368948" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="368948"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #25"></div>
  </section>
</div>
    <div class="postbit" id="386756" data-post-id="386756">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="webofbits" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/webofbits/120/39173_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  webofbits
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ve been thinking about this problem from a slightly different angle and have been building Aludel<br>
( <a href="https://github.com/ccarvalho-eng/aludel" class="inline-onebox" rel="noopener nofollow ugc">GitHub - ccarvalho-eng/aludel: LLM Evaluation for Phoenix Apps · GitHub</a> ), a small Phoenix-native workbench for prompt evaluation.</p>
<p>At work, we have some services in which we’ve built some prompt management/evaluation dashboards so I’ve thought it would be nice to have something more generic that teams could re-use instead of building a dashboard each time.</p>
<p>It’s less “an ExUnit-like eval DSL” and more “a place to compare runs, track prompt versions, and execute regression suites with visibility into outputs, latency, token usage, and cost.” So it’s probably closer to app-facing eval workflow than to a general-purpose framework.</p>
<p>Still early, but the thing I’ve found useful is keeping eval work close to the app and data model rather than pushing everything into external spreadsheets or one-off scripts.</p>
<p>I’d be very interested in how others are balancing:</p>
<ul>
<li>code-driven evals vs dataset-driven evals</li>
<li>embedded-in-app workflows vs external tools</li>
<li>reproducibility vs iteration speed</li>
</ul>
<p>Thread here has been helpful for that.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386756" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-is-the-community-currently-evaluating-ai-applications/71394/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-386756" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386756"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #26"></div>
  </section>
</div>
    <div class="postbit" id="386757" data-post-id="386757">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="webofbits" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/webofbits/120/39173_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  webofbits
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This seems a great library. Will take a look!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386757" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/how-is-the-community-currently-evaluating-ai-applications/71394/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-386757" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386757"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>